地理信息系统

制图师,地理学家和GIS专业人员的问答

9
从.shp到.kml到.shp而不会丢失属性
我已经将带有属性的shapefile转换为客户端的.kml。然后在Google Earth中编辑.kml和属性。我收到了更新的.kml,现在需要将其恢复为.shp。问题是:我的所有属性现在都为html格式,这使Google Earth中的弹出信息框成为可能。当我尝试转换回.shp时,我的属性会集中到一个(由Google创建的)“说明”字段中。而且我所有的属性和信息都集中在一个单元格中。有什么方法可以从“描述”字段中提取数据。即使我这样做,是否有一种简单的方法可以摆脱html格式并使其可用? 这是我在某些论坛上找到的“融合表”方法所得到的。您可以在左侧看到html,它继续显示。 我正在使用ArcGIS Desktop 10.2。

1
GRASS可以计算输入图的折线图表示吗?
我对计算输入图的折线图感兴趣,最好是在GRASS中,因为我以后将使用其他GRASS网络分析工具。我在GRASS文档中找不到对折线图的任何引用。我应该在搜索中使用其他术语还是会创建此类图形的隐藏函数? 对于上下文: 无向图G的线图是另一个图L(G),它表示G的边之间的邻接。 资料来源:http : //en.wikipedia.org/wiki/Line_graph
10 grass  network  graph 

2
用线切割线串吗?
我正在检查按点切割线串的最佳方法。 场景是:很多街道,需要用相交点切开的线段,例如: 我有 线串(完全未切分)表 st_intersection点表 我需要获取由交点表剪切的独立线串段。 我正在使用PostGIS函数,并发现了几种方法,但是每种方法都给我带来了某种问题。 这是我已经测试过的: 1个 折线表:1行,st_memunion 1200行折点表:1700行(点) 不好的是:确实需要大量时间和内存刷新。无法同时创建多个表,导致内存无法处理。结果是脏乱的。而不是给我正确的行号,我需要稍后进行清理(在这里很好地解释了在相交点处分割线) CREATE TABLE lines_with_messy_result AS ( SELECT ((ST_DUMP(ST_SPLIT(a.geom,b.ix))).geom) as geom FROM st_union_lines a INNER JOIN lots_of_points b ON ST_INTERSECTS(a.geom, b.ix) ); --then need to clean this up create table lines_segments_cleaned as ( SELECT DISTINCT ON (ST_AsBinary(geom)) geom FROM lines_with_messy_result …

1
在可及区域上建立多边形
我目前在等时线和基础算法领域中工作。现在引起问题的不是等位线本身的计算,而是结果的可视化。 我的等时线算法的结果是点和边。实际上,我确实有一个可行的解决方案,但是对于3873个边缘和1529个节点而言,事情似乎要花很多时间(在装有2015 Core i7 CPU和相当快的SSD的Lenovo T440s笔记本电脑上大约需要2.0秒)。而不是几秒钟,我想要的更像是msec :-)。 也许有人可以帮助我减少构建可视化可到达区域的多边形所需的计算时间。 但是等一下……第一件事! 这是等边线的计算结果, 这些边线是我的可视化效果: 这些边线存储在PostGIS数据库表中,是简单的线串。 我要向用户显示的内容如下所示: 请注意图片最南端和最东端的断开区域。这些应绘制为单独的区域(因此此处不允许合并:-) 目前,我正在使用此查询: SELECT ST_AsGeoJson(St_Transform(ST_Multi(ST_Collect(polygons)), 4326)) AS coverage FROM ( SELECT ST_MakePolygon(ST_ExteriorRing(ST_GeometryN(segments, generate_series(1, ST_NumGeometries(segments))))) AS polygons FROM ( SELECT ST_Union(ST_Buffer("GEOMETRY", 20, 'quad_segs=2')) AS segments FROM my_edges AS a ) AS b ) AS c 我已经做了一些实验,并且阅读了很多文档,但是我找不到更好的解决方案。 在我眼中,最大的问题是ST_Union的用法(如docs中所述,此功能可能很慢)。有趣的是,用ST_Collect替换它似乎会减慢ST_Buffer的计算,因此以下所有查询甚至花费更长的时间,尽管它不会填充边缘之间的区域(它只会在线条周围创建缓冲区): SELECT ST_AsGeoJson(St_Transform(ST_Multi(ST_Collect(polygons)), …

2
使用ArcGIS Desktop将动态页面的数量减至最少以映射散点?
我有时会制作地图册以显示兴趣点。使用常规网格创建页面的第一步: 我不喜欢该解决方案,因为a)有些页面上的单点(例如第25页)位于边缘,并且b)太多的页面。 第一个问题很容易使用代码来解决,-将页面范围的矩形移动到相关点范围的中心: 我仍然不喜欢它,因为页面数保持不变,所以看起来非常拥挤。请记住,它们最终都是多份报告!的实际A3纸页。 因此,我编写了减少页数的代码。在此示例中,从45到34。 我不确定这是否可以达到最佳结果, 什么是最好的策略(伪代码,出版物,Python库),请通过点排序以最小化给定大小的矩形以捕获所有点的数量?当然,有人在游戏理论,军事艺术或捕鱼业中发现了它 这是原始问题的更新: 这显示了所需的实际范围和页面大小: 放大显示164页中的10页: 采样点要素类 矩形大小只要保持在限制范围内即可更改,即可以较小。

3
将地图从ArcGIS Pro作为地图服务发布到ArcGIS Server?
去年5月,在Esri博客文章“ 宣布ArcGIS Pro beta程序宣布”中,有人发表了评论: 我认为不可能将地图作为地图服务从ArcGIS Pro共享到ArcGIS Server。为此,我们必须使用常规的ArcMap Desktop产品。 我似乎没有找到答案,在ArcGIS Pro 1.0界面中,将地图发布到ArcGIS Online或Portal for ArcGIS似乎很容易,但是没有提到ArcGIS Server。 是否可以将地图从ArcGIS Pro作为地图服务发布到ArcGIS Server?

2
如何创建动态领导线?
除了QGIS“移动标签”工具之外,我还尝试使用PostGIS视图创建动态引线。 CREATE VIEW leader_line AS SELECT gid, ST_MakeLine(geom, ST_SetSRID(ST_MakePoint(xcord_label, ycord_label), SRID))::geometry(linestring, SRID) AS geom FROM point WHERE xcord_label IS NOT NULL; 这适用于所有标签,WHERE ST_X(geom) < xcord_label但会为标签创建错误的引出线WHERE ST_X(geom) > xcord_label。 有谁知道如何正确放置标签的引线WHERE ST_X(geom) > xcord_label?有什么方法可以引用标签的xmax坐标吗?

1
与Leaflet一起使用的D3.brush()的任何示例吗?
我有一个传单地图,已使用传单覆盖窗格将SVG放置在其上方。我想将D3画笔添加到覆盖窗格中,然后将更新单独的图表。我到处寻找同时D3.brush()和传单示例的任何示例,但似乎找不到任何示例。 我找到的最接近的东西是这个https://github.com/mbostock/d3/issues/1321和这个https://www.mapbox.com/mapbox.js/example/v1.0.0/timeline-scaled-markers/(这是在刷图表而不是在刷地图)。 我想知道是否: 任何人都知道任何例子,或者 任何人都知道这是否可能/合理地直接,或者 如果可能的话,任何人都有关于我可能会遇到的问题的任何提示。
10 leaflet  d3 


3
如何创建复合山体阴影?
复合山坡的概念是将多个具有不同阳光方向的山坡结合起来,以避免盲点。它需要将3个山体阴影图像分别与315⁰(NW阳光,默认层),+355⁰层和+275⁰阳光合并。如下所示,这增加了细节和美观。此处提供了完整的非GIS 描述。 使用任何srtm文件,可以通过以下三种方式完成3个初始山体阴影: gdaldem hillshade input.tif hillshades_A.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges gdaldem hillshade input.tif hillshades_B.tmp.tif -s 111120 -z 5 -az 355 -alt 60 -compute_edges gdaldem hillshade input.tif hillshades_C.tmp.tif -s 111120 -z 5 -az 275 -alt 60 -compute_edges

2
启用即时CRS转换时,QGIS区域计算有所不同
当我打开QGIS,添加图层并通过字段计算器计算shapefile的面积时,我得到的面积与打开QGIS并选中“启用CRS动态转换”并计算面积的面积不同。尽管要确保项目和图层具有相同的坐标系(相同的EPSG编号),但这仍然可行。我究竟做错了什么? 我有一个shapefile,其中包含使用ArcGIS进行面积计算的信息(不是我自己,数据是交给我的,我不知道使用ArcGIS计算面积的CRS)。形状文件层CRS是EPSG:21781(瑞士)。在QGIS中,如果我不更改OTF设置并将项目CRS保留为EPSG:4326(WGS84),则得到的值与ArcGIS区域值相同。但是,如果在将图层添加到EPSG之前更改了OTF:21781,则会得到不同的面积值。据我了解,这表明ArcGIS Area是使用CRS EPSG:4326计算的。 第一个工作流程: 打开QGIS 项目CRS:EPSG 4326 添加层 项目CRS自动适应,现在为EPSG 21781 使用字段计算器计算$ area 第二个工作流程: 打开QGIS 项目CRS:EPSG 4326 打开OTF,将项目CRS设置为EPSG 21781 添加层 使用字段计算器计算$ area 第一和第二个工作流程的步骤5不要产生相同的区域。

4
为多波段栅格设置NoData吗?
我有一个具有黑色区域而不是NoData的RGB正射影像,如下图所示: 当我使用SetNull工具时,它确实删除了黑色区域,但是随后将其变成了灰度正射影像,这不是我想要的。 我知道可以使用“裁剪(数据管理)”工具将栅格裁剪为其自身,并且可以在其中将NoData值设置为黑格的值(0),以解决此问题。但是,我正在为学生创建一个工作坊,我想使用一种不太直观的方法。 当然,可以选择在每个频段上分别运行NoData工具,然后将三个频段组合在一起,但是我需要有一个条件,即band1,band2和band3都等于0才能将其设置为NoData。能够在ModelBuilder中执行此操作将是理想的选择,但使用ArcPy对其进行脚本编写也将是不错的选择。 我正在使用具有高级许可证的ArcGIS 10.2 Desktop。

1
相交线以使用带有QGIS的Python进行交叉?
我有一组代表公交线路的线路。一些线重叠并且走相同的路。 我能够提取节点。 但是我对仅提取这样的交叉点感兴趣: 我怎样才能做到这一点?我正在寻找QGIS或Python的方法。 我尝试了GDAL Python 的交集方法,但这基本上只返回了顶点。 如果有两条线交叉,则QGIS的“ 线交叉点”方法会返回交叉点。但是,如果两条公交线路在同一条道路上走得很远,这并不能给我他们指向合并的位置。

4
使用R将Geotiff图像的RGB值分配给LiDAR数据
我已经在UTM坐标中给出了Geotiff图像及其对应的激光雷达数据(x,y,z)。我需要将激光雷达数据与图像中的RGB值合并。 这意味着,最后,我需要绘制(3D)LiDAR云颜色的每个点,并用Geotiff图像中的相应RGB值进行编码。 我使用QGIS将Lidar数据转换为shapefile。接下来我该怎么办? 在R中,我尝试了该plot3D函数,但是没有用。我要附加文本doc,shapefile和tif图像 编辑: 我已经完成了以下程序,如下所示: require(raster) require(maptools) # to take shape files #require(car) # for scatter3D require(plot3Drgl) ##setwd("C:\\Users\\Bibin Wilson\\Documents\\R") ##source('Lidar.r') data = read.csv("C:\\Users\\Bibin Wilson\\Desktop\\Lidar\\lidardata.csv") #nr = nrow(data) nc = ncol(data) nr = 500 require(rgdal) X = readGDAL("C:\\Users\\Bibin Wilson\\Desktop\\Lidar\\image.tif") topx = 4.968622208855732e+05; topy = 5.419739403811632e+06; final = matrix(nrow = nr, …
10 raster  r  3d  lidar  3d-model 

2
如何数字化具有正交边缘的建筑占地面积?
使用QGIS,我试图数字化旧的栅格地图,并且由于我最终希望将这些2d图层加载到草图中以转换成3D模型,因此我需要将所有东西都摆成正方形。 这是我正在使用的地图的示例: 您可以看到的绿线是我已经使用线的几何形状数字化的铁路轨道的矢量层,其余的是我正确地以地理参考的基于栅格的层,并且是每层背后的背景。 我的目标是捕获建筑物的占地面积,以我的示例为例,并使用普通的捕获多边形工具,如下所示: 尽管这足以生成2D矢量地图(例如:显示为Web地图图块或在QGis中使用),但对于将其导出为KML,然后导入Sketch-up并没有好处,因为所有内容都不都是100%正方形的,更困难的是要使事情100%平方。 从QGis中的工具可以看到,我已经安装了数字化矩形,并安装了cad-tools插件,但这对我需要做的事情没有好处,例如,如果我们使用正交多边形捕获工具: 我可以从需要的角度开始绘制第一条线,但是一旦按CTRL键使内容与第一条线成直角和/或直角,一切都会出错,因为插件没有考虑到建筑物的旋转角度,这意味着通过专用的北/东水平/垂直方向,任何附加点都是正确的,并且与那些轴成90度。 如果我要追查的建筑物在那些轴上,那么没问题,一切都很好,但是其中许多都不是,在综合大楼周围有各种角度(这是我正在数字化的大型工厂现场) 完美的工具类似于草图中的原点工具,您要做的是将原点放置在一个角上,然后拉伸彼此成90度角的X和Y,并在前面面,左面向下,您随后捕捉到的这些原点或从中衍生的任何参考线都将自动与其他直线成90度角,但需要根据需要将旋转因子考虑在内,如下图所示: 在不先使用QGis的情况下,当然可以在草图中捕获和数字化多边形,但是如果我这样做,我就不能对其进行地理参考,它们只会以0,0为中心生成标准世界坐标 在QGis中对它们进行数字化处理,以确保其在空间中的位置正确且符合OSGB36投影。 Sketch-up也不会遵循背景地图中的地理参考,当我尝试导入时,它会将左下角固定在0,0处,然后要求我对其进行适当缩放。 我发现将地理参考地图绘制成草图的唯一方法是使用Google地球工具中的捕获区域。但是,从SK版本8或更高版本开始,执行此操作只会导入基本的Google Earth Ariel摄影图像,而不会导入您可能已显示的任何自定义叠加层,这意味着,如果我加载了georef,则当我尝试捕获它时会被忽略。地理位置参考位置。 Sketch-up V7及更低版本不会忽略自定义图像,但是V7不再可供下载,即使您找到了副本,它也不会运行,因为auth服务器将不再对其密钥进行身份验证... :-( 终极问题 因此,本质上,我要问的是,有没有人知道QGis的插件,该插件为我提供了与草绘中相似的功能,如果没有,那么任何人都无法提出一种方法(或工作流程)以使我能够捕获建筑物足迹,同时保持边缘彼此正交,但不像当前工具那样被锁定在水平和垂直方向。 即使以某种方式提供一个可捕捉的网格(我至少可以将这些点与建筑物的角点对齐)也会有所改善。 如果没有,那么看来我将必须学习QGis插件api并编写自己的插件。
10 qgis  digitizing 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.