地理信息系统

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

3
通过属性选择特征(如果在Python列表中)?
我正在尝试在Python中根据属性是否存在于列表中的查询来完成按属性选择。 最简单的查询应该是这样的: qry = " \"OBJECTID\" in oid_list" arcpy.SelectLayersByAttribute_management(inft, "NEW_SELECTION", qry) 但是该方法返回无效的表达式错误。 过去,对于这种类型的查询,我不得不使用更复杂的语法,例如: sqlQuery2 = "nid in (" + ','.join(["'"+x+"'" for x in delta_list]) +")" 但是改编此代码段似乎对我也不起作用,即: "OBJECTID_1 in (" + ','.join(["'"+str(x)+"'" for x in oid_list]) +")" 我在这里想念什么?

2
如何获取GDAL以在Python中为GTiff创建统计信息
我定期使用GDAL在Python中创建自己的GeoTIFF栅格,例如: from osgeo import gdal from numpy import random data = random.uniform(0, 10, (300, 200)) driver = gdal.GetDriverByName('GTiff') ds = driver.Create('MyRaster.tif', 200, 300) band = ds.GetRasterBand(1) band.WriteArray(data) ds = band = None # save, close 但是,当使用ArcCatalog / ArcGIS查看结果时,由于没有统计信息,因此显示为黑色或灰色。可以通过右键单击栅格并在ArcCatalog中选择“计算统计信息...”(还有其他几种方法来解决此问题),也可以在命令提示符下使用gdalinfo来解决此问题: gdalinfo -stats MyRaster.tif 将生成MyRaster.tif.aux.xml,ArcGIS会使用来正确缩放栅格。PAM(永久辅助元数据)文件包含统计信息,最值得注意的是最小值和最大值: <PAMDataset> <PAMRasterBand band="1"> <Metadata> <MDI key="STATISTICS_MINIMUM">0</MDI> <MDI key="STATISTICS_MAXIMUM">10</MDI> …

4
导出带有附件的特征以在ArcGIS之外使用?
ArcGIS 10具有新增功能,可将附件添加到单个要素以添加到地理数据库中存储的要素类。这样做的一种用途是将多个图片添加到一个特定的位置,消火栓似乎是一个受欢迎的例子(重要的是,我想知道您是否是互联网上的狗,需要进站。) 在数据库中,启用附件的要素类的结构是双重的: 要素类本身, 一个包含附件和相关元数据(文件名,大小等)的表,以及 定义两者之间的一对多关系的关系类。 我的问题是:如何导出这些数据(要素类,附件,附件元数据)以在 Arcgis 之外使用? 导出FC很容易,FeatureClassToFeatureClass的工作原理与未启用附件的FC相同。导出附件表?没那么多。TableToTable到output.dbf提取附加文件的元数据而已,到output.csv错误了不支持的字段类型,并输出信息表失败,一般字段错误。 这并不奇怪,因为那些文件类型不支持二进制blob数据类型。我期望/希望找到一种将附加的二进制文件转换为其原始格式的工具,例如 那么,如何呢?我需要怎么做才能取出数据? * 具有讽刺意味的是,我当时产生此Q的项目是导出以在Arcgis中使用,而不是在Arcgis Desktop中使用...

2
如何在PostGIS中获得两个几何之间的测距仪值?
我有一个关于在PostGIS中计算距离的简单问题。 我想得到两个几何之间的距离。我正在使用此sid:4269以米为单位我现在正在做的是:ST_Distance((a.geom,b.geom)) FROM ...但是我得到的结果是以度为单位。我认为我应该处理地理问题,但是如何将地理模型转换为地理?我尝试了(a.geom :: geography),但出现错误。 我该怎么做才能以米为单位得出结果? 谢谢


2
在R中的地图上绘制条形图?
我使用的是plotrix在R绘制美国的一个州级地图。它具有出色的功能,floating.pie可以将饼图放在每个状态上。 我想知道plotrix软件包中是否有类似功能可以在每种状态下显示条形图?(我看了一下文档,处理条形图的功能似乎没有这种可能性,但是我只是想确定一下。)如果可能,我更喜欢在plotrix包中工作,但可以随意命名其他套餐。 举例来说,我将有兴趣制作与此类似的地图(但针对美国): 对于我的美国地图,将有50个条形图,每个州一个。 我从/programming/20465070/barplots-on-a-map上获得了这张地图,但是ggsubplot似乎不适用于我的R版本(类似于其他人在帖子中所说的内容) )。
14 r  statistics  chart 


4
更改Leaflet标记上的弹出位置?
我想在Leaflet的标记图标底部打开一个弹出窗口。 我的代码: var mymap = L.map('mapid').setView([51.505, -0.09], 13); L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpandmbXliNDBjZWd2M2x6bDk3c2ZtOTkifQ._QA7i5Mpkd_m30IGElHziw', { maxZoom: 18, attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' + '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' + 'Imagery © <a href="http://mapbox.com">Mapbox</a>', id: 'mapbox.streets' }).addTo(mymap); var lati = 51.51; var longi = -0.09; var popupLocation1 = new L.LatLng(lati, longi); var popupContent1 = 'This …
14 leaflet  popup 

4
使用R或Python将大栅格转换为折线的最快方法?
我有一个很大的栅格文件(129600 x 64800像素),其中包含全球水域(1位值0和1),并尝试提取海洋和内陆水岸线。 我曾尝试使用ArcGIS和QGIS将栅格从栅格转换为折线,但是这需要花费一定的时间。 有谁知道更好/更快的方式(Python或R)或更好的工具来完成此任务? 更新资料 R:rasterToContour可能是快速而精确的,但是如果您有一个非常大的数据集(如我的(8,398,080,000像素)),则需要非常大量的RAM(超过16GB),或者强制R在硬盘驱动器上进行更多处理,也将需要一段时间。 Python / GDAL:gdal_poligonize创建多边形而不是折线 更新2 R rasterToContour:rasterToContour不提供所需的结果。与ArcGIS(栅格到多边形,然后要素到线)相比,它没有提取确切的像素轮廓,如以下示例所示。 rasterToContour结果 ArcGIS结果 更新3 Python / GDAL:我已经在命令行上在测试数据集上针对ArcGIS运行gdal_polygonize,结果非常清晰: gdal:49秒 ArcGIS:1.84秒
14 python  r  performance 

4
导入.shp到PostgreSQL吗?
我想将一个shp文件导入postgreSQL。首先,我创建sql文件,然后运行PostgreSQL。要创建sql文件,我在Windows cmd中运行以下命令: shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql 然后运行: psql -d postgres -U postgres -p 4321 -f worldcountries.sql 但结果是: psql:worldcountries.sql:21:错误:函数addGeometrycolumn(未知,未知,未知,未知,未知,整数)不存在

5
从线段创建voronoi图
我正在寻找一种基于线段而不是点创建voronoi图的方法。请参见下面的示例(摘自本演示文稿)。 理想情况下,我希望可以使用Python编写脚本,但是使用ArcGIS或类似工具的解决方案也是可以接受的。 到目前为止,我发现的唯一可以做到这一点的库是openvoronoi,它看起来很有希望。还有其他吗?

2
R中的SpatialPointsDataFrame属性和运算符
我已经SpatialPointsDataFrame使用spR中的包创建了一个类型为对象的对象。但是,对于@, $, . and []操作符以及何时使用它们来访问对象的不同属性,我感到困惑。这是我的示例代码: library(sp) library(rgdal) #creating a SpatialPointsDataFrame with sample points in UTM x <- c(15.2, 15.3, 15.4, 15.5, 15.7) y <- c(50.4, 50.2, 50.3, 50.1, 50.4) v1 <- c(1.0, 2.0, 3.0, 4.0, 5.0) v2 <- c("a","b","b","c","a") attributes <- as.data.frame(cbind(v1,v2)) xy <- cbind(x,y) locationsDD <- SpatialPointsDataFrame(xy, attributes) proj4string(locationsDD) …
14 r  syntax 

1
PostGIS:计算表中线和面的顶点数
我在PostGIS模式中有23个表,我需要计算其顶点数。这些表是线和面的混合体,因此意识到我需要使用ST_NPoints(geom) 所以我跑了以下查询 SELECT count(ST_NPoints(geom) FROM lines; 结果/计数等于该表中要素的数量,而不是该表中所有要素的顶点总数。 我一定想念一些东西,但无法弄清楚(必须是星期一早上;)
14 postgis 


2
Python,GDAL和构建栅格属性表
我有一个整数栅格,我想使用Python和GDAL为其构建栅格属性表。我可以在Python中创建GDAL栅格属性表,如下所示: >>> rat = gdal.RasterAttributeTable() 如我们所见,这很好用: >>> rat <osgeo.gdal.RasterAttributeTable; proxy of <Swig Object of type 'GDALRasterAttributeTableShadow *' at 0x0000000002A53D50> > 这样创建的表没有行或列: >>> rat.GetRowCount() 0 >>> rat.GetColumnCount() 0 我创建了一个名为“值”的列,以将唯一值存储在栅格中: >>> rat.CreateColumn("Value", gdalconst.GFT_Integer, gdalconst.GFU_MinMax) 0 很好,并且列数已更新: >>> rat.GetColumnCount() 1 现在,我必须将值(记录)添加到该列中才能使用。我可以从栅格波段中获得唯一值的列表,如下所示: >>> data = band.ReadAsArray(0, 0, dataset.RasterXSize, dataset.RasterYSize) >>> vals = list(numpy.unique(data)) >>> …

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.