地理信息系统

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

1
如何在Leaflet中获得layerGroup的边界?
首先,将多个geoJSON图层添加到我的地图,方法是将它们添加到LayerGroup,然后将layerGroup添加到地图。 现在我想用所有图层的合并边界在地图上调用fitBounds,问题是layerGroup没有getBounds方法 我能做什么?
12 leaflet 

1
在同一台计算机上使用ArcPy和ArcGIS Pro和ArcGIS Desktop?
我只是第一次尝试ArcGIS Pro,不得不将PYTHONPATH更改为python34 现在,每次打开“分析”选项卡时,ArcGIS Pro都可以正常运行而不会崩溃。但是,当我尝试在ArcMap 10.3.1中运行进程时,出现了各种python错误;使用半小时前使用完全相同的数据输入的工具。 由于ArcGIS 10.3.1使用2.7,这在python版本中是否存在冲突? 即使各自使用不同的python版本,有没有办法使ArcGIS Pro和ArcGIS 10.3.1在同一台计算机上同时运行?


4
ArcMap中多少层是多少层?
我在工作中使用Citrix虚拟软件连接在ArcGIS上工作。有时,它非常慢,而且没有对我正在处理的MXD进行任何更改,一分钟ArcMap可以以合理的速率运行,而下一分钟它可能会缓慢爬行。IT部门认为问题的原因是我的地图中的图层太多。我有一个预感,问题可能是硬件或软件配置,或者仅仅是我们首先使用Citrix的事实。 无论如何,在用于编辑的标准MXD中,我有57个SDE图层和2个文件地理数据库图层。绝大多数是我需要检查以进行编辑的图层。我必须检查每个图层是否存在任何数据,因为它们需要针对每个管道建设项目进行编辑和质量控制。只有几层是底图图层,我需要定期参考。 IT部门希望我将使用的层数减少到10个。在理想情况下,这很好。但是在现实世界中,这是不实际的。有了这样的建议,我将不得不使用大约5种不同的MXD来执行给定项目的编辑任务。我已经尝试过仅使用10层,这是严重的限制。我缺少与其他数据相关的数据上下文,因此必须多次重新访问同一区域,以确保所有数据都已更新。所有这些仅会稍微改善性能,并适度减少编辑时的崩溃次数。 所以我要问,是否有理想的层数?多少太多?

1
PyQGIS将栅格另存为渲染图像,然后在其上使用GDAL工具
我尝试使用QGis的“将栅格保存为渲染图像”中的代码。i是栅格图层: pipelayer = i pipeextent = pipelayer.extent() pipewidth, pipeheight = (pipelayer.width(), pipelayer.height()) piperenderer = pipelayer.renderer() pipeprovider = pipelayer.dataProvider() crs = pipelayer.crs().toWkt() pipe = QgsRasterPipe() pipe.set(pipeprovider.clone()) pipe.set(piperenderer.clone()) pipedFile = os.path.join(tempfile.gettempdir(), safeLayerName + '_pipe.tif') print pipedFile file_writer = QgsRasterFileWriter(pipedFile) file_writer.writeRaster(pipe, pipewidth, pipeheight, pipeextent, pipelayer.crs()) in_raster = pipedFile prov_raster = os.path.join(tempfile.gettempdir(), 'json_' + …

2
太阳同步卫星的通过时间有多精确?
顾名思义,太阳同步卫星在一天中的同一太阳时间经过同一位置时会获取场景。根据此站点,通过利用节点回归并将卫星发射到轨道上,从而实现了太阳共时性,在该轨道上,节点回归几乎完全抵消了地球上任何点引起的太阳位置的每日变化绕太阳公转。事实证明,这取决于卫星的高度,约为95到100度。 卫星描述文件中通常会提到下降节点的本地时间(或立交时间)。我想知道这些说明性文件中提供的太阳时间实际上有多精确,以及如何根据可能影响的参数(海拔,纬度,经度,一年中的天数,卫星的年龄)提高这一精度。我的理解是,主要区别来自当地的太阳时间与平均太阳时间(请参见时间方程,最多18分钟),但我正在寻找宣布的立交时间与道路通行时间之间其他差异来源的数量级。世界上任何地方的实际本地太阳能。 我有几个卫星(前哨,MODIS,Landsat等),但是我对PROBA-V特别感兴趣。PROBA-V在太阳同步轨道上以820公里的高度飞行,并在发射10:45 h时具有本地立交时间。由于该卫星没有机载推进剂,因此预计过桥时间将与发射时的值逐渐不同。还欢迎对Sentinel-2等卫星进行漂移校正的示例。

3
在PostGIS中构建Voronoi图
我正在尝试使用此处的修改代码从点网格构造voronoi图。这是我修改后的SQL查询: DROP TABLE IF EXISTS example.voronoi; WITH -- Sample set of points to work with Sample AS (SELECT ST_SetSRID(ST_Union(geom), 0) geom FROM example."MeshPoints2d"), -- Build edges and circumscribe points to generate a centroid Edges AS ( SELECT id, UNNEST(ARRAY['e1','e2','e3']) EdgeName, UNNEST(ARRAY[ ST_MakeLine(p1,p2) , ST_MakeLine(p2,p3) , ST_MakeLine(p3,p1)]) Edge, ST_Centroid(ST_ConvexHull(ST_Union(-- Done this …

5
将.SVG文件转换为GeoJSON的方法
题 如何将SVG文件转换为GeoJSON格式? 期望的结果: 我想使用D3.js之类的文件或任何其他库来制作一个Choropleth映射。 挑战: 我有一个SVG文件,可以从特定国家/地区的特定省份的行政区域的公共领域中获取。我相信我需要先将其转换为GeoJSON,然后才能在我知道的库中使用它。
12 geojson  svg  d3 

5
鱼眼状投影
为了在海报上有效展示,我需要特殊的投影。我想以整个欧洲的背景来介绍研究区域(捷克共和国),以使捷克共和国占据中心区域最多的区域(例如70%),而欧洲其他地区则围绕着该区域,但荒唐可笑。也就是说,当像鱼眼镜头一样,当将它们靠近某个物体时,它们会像捷克眼镜那样对捷克共和国造成巨大的扭曲,并且与周围环境相比,它们会放大很多倍。 我可以在Quantum GIS中使用任何投影吗?欢迎使用EPSG或标准公式(可在QGIS中使用)。

4
从不相交的多边形创建像Voronoi Diagram这样的镶嵌图
下图显示了该问题: 如(a)中所示,我有一组不相交的多边形,如 PostGIS中的几何。我需要像(b)这样的一组多边形的 “马赛克”,并根据“影响区域”标准进行构建...就像是Voronoi构造(由(c)所示):实际上,如果多边形是要点,影响区域是沃罗诺伊。 总结:我需要一种SQL算法(或一些特定于PostGIS的算法)来生成一组不相交的多边形的“马赛克”。 (也许是一个小的ST_Buffer和ST_Difference操作的循环) PS:我需要像Voronoi一样,忽略空间定界((b)中的方形框)。 这个问题和其他有关线路的问题类似。 编辑(@FelixIP评论后) 我倾向于留在向量宇宙中,以免失去精度(例如,使用ST_DelaunayTriangles并通过原始多边形添加和减去内部,它们采用对偶图解决方案)...一些简单而自动的程序包,例如pprepair(如QGIS拓扑工具那样辅助使用)不是自动的)。但是栅格也许更简单,并且占用更少的CPU。 该“ GRID过程”图示也可以作为解决方案,前提是它可以允许相同的精度和“欧几里得影响区域增长”。 在ARCGIS中,存在着一种称为欧几里得分配的空间分析工具,因此,也许有一种PostGIS类似的解决方案,它从一组多边形开始(对多边形进行分类,栅格化和重新制作)。

2
重叠点的标签可以合并/合并为一个标签吗?
我有代表样本位置的点。通常,多个样本将在同一位置获取:具有相同位置但具有不同样本ID和其他属性的多个点。我想用一个标签标记所有位于同一位置的点,并用堆叠文本列出该点所有点的所有示例ID。 在ArcGIS中使用常规标签引擎或Maplex可以做到吗?我知道可以通过在一个属性值中为每个位置创建一个包含所有样本ID的新层来解决此问题,但我想避免创建仅用于标记的新数据。 基本上我想从这里开始: 为此(最重要的一点): 无需对标签进行任何手动编辑。

2
使用gSimplify简化了带有空间多边形的writeOGR
我正在使用gSimplify(rgeos包)来简化shapefile的几何形状。该功能运行良好,但现在我无法在新的shapefile中写入输出。我尝试了一些方法: writeOGR(simplyshape, file, driver="ESRI Shapefile", layer='test') 我懂了 obj必须是SpatialPointsDataFrame,SpatialLinesDataFrame或SpatialPolygonsDataFrame 与: writePolyShape(simplyshape, file) 我得到: 错误:is(x,“ SpatialPolygonsDataFrame”)不是TRUE
12 shapefile  r  simplify  rgdal 

3
横断面的3D地质模型,最好使用开源软件
我从事工程地质工作,我的工作流程包括使用地图,野外作业(露头)和钻孔中的数据制作给定站点的许多横截面。 我正在寻找的是一种使用开源软件来截取许多横截面并制作3D模型的方法,即使有大量(CAD)绘图工作,但最好是很少的代码或编程知识。 因此,当我第一次注意到该软件(GSI3D)时,它采用了许多横截面(实际上是围栏图)并给出了由实体而不是仅由曲面构成的3D模型,我认为这将是理想的软件。下图来自软件网站。 鉴于我没有足够的资源来购买它,所以我在考虑是否没有这种方法的免费替代品(开源软件)。 所以我认为方法是: 取(CAD绘制的)横截面,并在GIS软件中将它们组合在一起,生成围栏图; 在所有横截面之间进行插值,以生成表面或什至更好的固体,每个固体代表地质层或岩性; 在以前的横截面之间制作新的横截面,以细化和调整模型。 因此,我认为第3步意味着不需要(非常)复杂的插值算法,因为地质复杂性将来自人为制造的横截面,而不是由计算机制造的插值。 该方法将是第一个简单的计算机制作的插值,并通过手动调整进行完善。 更清楚地说,我不是在寻找一种通过复杂的插值算法制作3D地质模型的方法来为我完成所有工作。我不介意有很多横截面迭代来调整和完善3D模型,但是我需要一个第一个(简单)插值以便可以使用它。GSI3D方法似乎就是它(我没有使用过该软件,但这就是我所了解的)。 我读了: 寻找免费的3D可视化程序 是否存在QGIS插件以允许3D可视化地质钻孔数据,类似于Target for ArcGIS的功能? 使用开源GIS软件进行3D可视化 合并地质网格并在它们之间拉伸? 一个论坛讨论 一篇论文(看起来不错,但是作者没有使用GIS) 在其他GIS资料中,似乎GRASS是最好的选择,但是讨论(使用GRASS时)似乎总是关于一种算法,该算法可以完成艰苦的工作或使用昂贵的专有软件。 如果答案是GRASS,那么将使用什么工具(就像我早些时候感到难过的那样,仅需少量编程知识就可以做到这一点)?

1
用gdal拼接图像时能否保留褪色的alpha图层?
我正在用gdal镶嵌一些图像,并想通过朝每个图像的边缘使用淡入/渐变Alpha层来消除马赛克中间的尖锐边缘来改善最终结果。我遇到的问题是,每个带有渐变Alpha层的图像的一部分在最终的镶嵌图中都将其下方的图像掩盖了,而不是半透明的,如下所示: 理想情况下,我希望使用这种渐变透明度将一张图像逐渐淡入另一张图像。 我执行的生成镶嵌的步骤如下: 将gcps添加到原始图像以对其进行地理位置定位和正确定向(依次对每个图像进行处理): gdal_translate -of GTiff -a_srs EPSG:4326 -a_srs EPSG:4326 -gcp 1616 0 -88.2728612066 40.5175787437 -gcp <etc., etc.> <original_image_with_gradual_alpha>.tif <image_with_gradual_alpha_and_gcps>.tif 将图像扭曲到正确定向的新geotiff(依次对每个图像执行): gdalwarp -s_srs EPSG:4326 -t_srs EPSG:4326 -dstnodata 0 <image_with_gradual_alpha_and_gcps>.tif <warped_geotiff_with_alpha>.tif 将所有变形的图像合并到一个马赛克中: gdalbuildvrt -srcnodata 0 mosaic.vrt <warped_geotiff_with_alpha_root>*.tif gdal_translate mosaic.vrt mosaic.tif 我链接的图像是mosaic.tif。 gdalinfo提供样本输入文件: Driver: GTiff/GeoTIFF Files: dsc00562.tif Size is 1616, 1080 …

1
为什么RasterLayer的@ data @ values插槽仅包含逻辑(0)而不包含实际值?
试图弄清楚为什么,当我在读取NDVI栅格时,@ data @ values插槽不包含实际值,除非手动设置它们。例如: NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84") NDVI@data@values ## returns: logical(0) 使用相同方法加载的其他栅格并没有发生这种情况,因此感到困惑。我希望我可以更具体一些,但我不记得之前做过任何不同的事情。使用以下命令手动获取值很容易: NDVI1@data@values <- getValues(NDVI19east) 但是,对于每个文件都必须这样做。因此,分为两部分: 为什么首先发生这种情况?我知道这可能与栅格文件的存储方式有关(即是否存储在内存中),但是我真的不明白这将如何改变我应该使用的访问数据的方法... 是否有一种方法可以自动执行此过程(也许使用类似于lapply的方法)以将文件读取为RasterLayers并访问这些文件的值?我目前的项目涉及一次读取6-10个文件以获取NDVI,降雨和其他环境变量,以将它们组合并执行一些加权叠加。自动化导入数据的过程将很有帮助。
12 raster  r  memory 

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.