地理信息系统

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

1
将栅格从纬度/经度重新投影到R中的UTM?
我必须将其转换为UTM才能使缓冲区正常工作。 wets<-readOGR(dsn=".",layer="shapefile") r.raster <- raster() extent(r.raster) <- extent(wets) res(r.raster) <- 100 wets.r <- rasterize(wet,r.raster) plot(wets.r) wetsbuf<-buffer(wets.r,width=500) 在缓冲区创建过程中(这是代码的最后一行),它给出以下警告: Warning message: In couldBeLonLat(x) : raster has a longitude/latitude CRS, but coordinates do not match that 这是信息 summary(wets.r) layer Min. 1 1st Qu. 1 Median 2 3rd Qu. 9 Max. 11 NA's 52629 …



1
使用核密度计算R中的道路密度?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我有一个很大的道路图形文件(约70MB),并希望将其转换为每个单元格中具有道路密度的栅格。理想情况下,如有必要,我想在R中与GDAL命令行工具一起使用。 我最初的方法是按照此线程直接计算每个单元格中线段的长度。这样可以产生所需的结果,但是即使对于比我的小得多的shapefile也非常慢。这是一个非常简单的示例,其正确的单元格值显而易见: require(sp) require(raster) require(rgeos) require(RColorBrewer) # Create some sample lines l1 <- Lines(Line(cbind(c(0,1),c(.25,0.25))), ID="a") l2 <- Lines(Line(cbind(c(0.25,0.25),c(0,1))), ID="b") sl <- SpatialLines(list(l1,l2)) # Function to calculate lengths of lines in given raster cell lengthInCell <- function(i, r, l) { r[i] <- 1 rpoly <- rasterToPolygons(r, na.rm=T) lc …

1
为什么在独立的PyQGIS处理脚本中导入顺序很重要?
在运行独立的PyQGIS处理脚本时遇到了一个奇怪的问题。脚本中的导入顺序会影响其正常执行。 您可以通过打开Python控制台并输入以下脚本(我使用GNU / Linux,QGIS 2.6.1,处理插件v.2.2.0-2和Python 2.7.3)来重现该问题: # Prepare the environment import sys from qgis.core import QgsApplication from PyQt4.QtGui import QApplication app = QApplication([]) QgsApplication.setPrefixPath("/usr", True) QgsApplication.initQgis() # Prepare processing framework sys.path.append('/home/YOUR_USER/.qgis2/python/plugins') from processing.core.Processing import Processing Processing.initialize() print Processing.getAlgorithm("qgis:creategrid") # Exit applications QgsApplication.exitQgis() QApplication.exit() 您应该获得: ALGORITHM: Create grid HSPACING <ParameterNumber> VSPACING …

2
使用Psycopg2从Postgis将栅格数据下载到python中
我在postgres表中有栅格数据,我想以numpy数组的形式进入python。我正在使用psycopg2连接到数据库。我可以下载数据,但它以字符串形式返回(可能是序列化的二进制文件)。 有谁知道如何获取此字符串并将其转换为numpy数组吗? 我探索了其他下载栅格的选项,例如使用st_astiff并编码以下载hex文件并使用xxd,但这没有用。我不断收到错误消息“ rt_raster_to_gdal:无法加载输出GDAL驱动程序”,并且我没有权限设置环境变量以能够打开驱动程序。 TL,DR:想将栅格数据导入numpy数组(使用python)。

5
从遥感数据(视觉图像和LiDAR)中提取树冠区域
我正在寻找一种处理遥感图像并从图像中提取单个树木的树冠区域的方法。 我既有可见波长的面影像,又有该区域的激光雷达数据。所讨论的位置是沙漠地区,因此树木的覆盖范围不如森林区域那么茂密。航拍图像的分辨率为0.5英尺乘0.5英尺。激光雷达的分辨率约为1 x 1英尺。视觉数据和激光雷达均来自亚利桑那州的皮马县数据集。我在这篇文章的末尾有一个关于航空影像类型的样本。 这个问题在ArcMap中检测单树吗?似乎是同一个问题,但似乎没有一个好的答案。 通过使用Arcmap中的Iso聚类分类,我可以获得该地区的植被类型的合理分类(以及有关总覆盖率的信息),但这几乎没有提供有关单个树木的信息。我最想要的是通过Arcmap中的栅格转多边形功能将等容集分类的输出传递给结果的结果。问题在于该方法将树木附近合并为一个多边形。 编辑:我可能应该包括有关我所拥有的更多细节。我拥有的原始数据集是: 完整的las数据,以及从中生成的tiff栅格。 视觉图像(如所示的示例图像,但覆盖的范围更大) 手动直接测量该地区树木的子集。 从这些我生成: 地面/植被分类。 DEM / DSM栅格。

1
获得OBJECTID名称的最佳方法是什么?
获取要素类的OBJECTID名称的最佳方法是什么? 我知道您可以在光标中使用“ OID @”来获取该字段,但是您也可以从中获取名称吗? 我正在编写脚本,并且需要考虑将在查询中使用的各种OBJECTID名称,例如OBJECTID_2,OBJECTID_12,FID等。 使用Describe是获得名称的唯一方法吗? 例如: oid_field = [field.name for field in arcpy.ListFields("FC") if field.type == "OID"] 我只是想知道是否还有另一种方式。 谢谢。
13 arcpy  objectid 

1
如何使用ST_DelaunayTriangles构造Voronoi图?
(编辑2019)ST_VoronoiPolygons 自PostGIS v2.3 起可用! 在PostGIS 2.1+中,我们可以使用ST_DelaunayTriangles()生成Delaunay三角剖分,这是其Voronoi图的对偶图,并且从理论上讲,它们具有精确且可逆的转换。 是否有安全的 SQL标准的脚本与优化的算法存在这个PostGIS2德劳内到维诺转换? 其他裁判:1,2

1
选择用于投影美国所有州的投影坐标系?
我在进行一个项目,要求集成美国所有州的数据。这意味着我有两个道路数据集,并且我将一个数据集中的道路属性分配给另一个数据集中的相同道路(类似于空间连接)。每个状态都是一个独立的shapefile,我需要在最后将它们全部合并以生成最终产品。 我想知道在这种情况下应该使用哪个投影坐标系?还是根本没有关系,因为它不会影响地理处理的结果?在过去的工作中,我只绘制了很小的区域,所以我选择了特定区域的状态平面NAD 83作为投影系统。

9
在ArcGIS for Desktop中手动对超出范围的分级数据进行分类?
我有两个shapefile代表网格,这些网格的值用渐变的颜色符号表示,如下所示: 您可以看到两个shapefile包含相似的数据范围,但是为这些数据中的范围分配了略有不同的颜色。我想对两个shapefile的每个范围使用相同的颜色来表示相同的范围,从而使文件之间的比较更加容易,并允许使用单个图例。 但是,当我尝试使用手动间隔对范围进行分类时,ArcGIS会强制将最大范围包括在数据集中的最小值。您可以在下面左侧数据框的“ -81.64-10.00”范围内看到它。这迫使整个图层都用该颜色符号化。 本质上,ArcGIS要求将数据集中的最小值用作范围之一中的值。 有没有办法避免此功能?

3
使用R中的Polygon shapefile从栅格中提取栅格
我是R的新手,正在使用raster包。我从现有栅格文件中提取多边形时遇到问题。如果我用 extract(raster, poly_shape) 栅格上的函数始终会创建包含数据的列表。我真正想要的是提取另一个可以再次使用ArcGIS加载的栅格文件。阅读更多内容后,我认为裁剪功能才是我真正需要的。但是当我尝试使用此功能时 crop(raster, poly_shape) 我收到此错误: Error in .local(x, y, ...) : extents do not overlap In addition: Warning message: In intersect(extent(x), extent(y)) : Objects do not overlap 这两个函数的文件raster和poly_shape相同。你能告诉我这里有什么问题吗?裁剪功能创建另一个栅格而不是列表是否正确? 编辑:range()函数不适用于我。我仍然遇到相同的错误。但是我确信这两个数据集会重叠!随着 extract(raster, poly_shape) 我从中得到正确的数据。只是列表而不是像我想要的栅格一样。我之前只是将数据集加载到ArcGIS中,它们非常吻合,所以我没有检查投影。现在我尝试 projection(raster) # "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs" projection(poly_shape) # "+proj=utm +zone=32 +ellps=GRS80 +units=m …
13 raster  shapefile  r  line 

3
量化多边形边界的不均匀度?
我有两个多边形:多边形1和多边形2。 我想使用面积和周长两个指标,定量地表示多边形1的周长/锯齿形/不规则周长比多边形2大。 每个多边形具有相同的周长,但每个覆盖的区域却截然不同。为了量化每个多边形的不平坦/锯齿/不规则性,计算应为: area/perimeter 要么 perimeter/area 我以为是perimeter/area,但是后来我找到了这篇博客文章,其中使用area/perimeter:http : //www.r-bloggers.com/measuring-the-gerrymander-with-spatstat/

1
通过ID在R中子集一个SpatialPolygonsDataFrame?
我使用了包中的gIntersect函数rgeos来确定两个SpatialPolygonsDataFrames(spdfs)中哪些多边形相交。结果是一个逻辑矩阵,其行名包含sfdf#1中的多边形ID,并使用spdf#2中的多边形ID同名。我想使用此矩阵将两个原始spdf分为子集,然后在使用function之前省略那些没有重叠的多边形gIntersection。我可以轻松地将逻辑矩阵转换为两个ID向量(每个spdf一个),这些向量表示那些至少具有一定重叠的多边形。 我的问题是-我可以使用多边形ID的向量来包含spdf吗?如果是这样,它将正确地对@data插槽中的值进行子集化吗?我知道我通常可以使用以下语法对spdf进行子集化: spdf[spdf@data$myVariable[someVector], ] 这对于ID无效,因为它们被深埋在spdf列表结构中。
13 r 

2
在QGIS中使用WKT将几何创建为CSV(选择字段定界符)
在QGIS中以wkt导出几何图形的CSV时,是否可以选择字段定界符? 我有一个带有甜甜圈孔的shapefile,我想将其导出为CSV。适用于数据库不支持空间数据的合作伙伴。 我遵循了Greg Krakow的方法,将WKT字段添加到导出的文件中(导出到csv时,GEOMETRY=AS_WKT在“ Layer”字段中添加,但是导出的字段定界符是逗号: 问题是我的多边形的每个坐标对(而且我怀疑线的坐标对也是一样)也被逗号隔开,所以我无法将数据导入回QGIS 使用point shapefile时,它就像一个魅力。 有人知道导出到CSV时是否可以选择定界的字段吗?例如选择一个分号? 我在网上搜索和QGIS文档,但没有找到任何东西。
13 qgis  export  csv  wkt 

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.