地理信息系统

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

2
使用GDAL用Python重新投影WGS 1984 Web Mercator(EPSG:3857)
我正在使用GDAL在python中重新投影栅格。我需要将多个tiff从地理WGS 84坐标投影到WGS 1984 Web Mercator(辅助领域),以便以后在Openlayers中与OpenStreetMap以及Google地图一起使用。我从这里开始使用Python 2.7.5和GDAL 1.10.1 ,并从这里开始使用建议转换坐标(我的代码在下面)。简而言之,我导入了osgeo.osr并使用了ImportFromEPSG (code)和CoordinateTransformation(from,to)。 我首先尝试EPSG(32629),这是UTM区29和得到这个投影光栅(或多或少罚款),所以代码似乎是正确的: 然后我用EPSG(3857) ,因为我读过这个和这个问题,并发现这是正确的最近有效密码。但是创建的栅格完全没有空间参考。它在WGS 84数据帧中距离很远(但是如果我将数据帧切换到Web Mercator,就可以了)。 使用EPSG(900913),输出已进行地理参考,但向北移动了约3个栅格像元: 当我使用ArcGIS重新投影栅格时(在WGS_1984_Web_Mercator_Auxiliary_Sphere中导出),结果几乎是正确的: 当我使用旧代码102113(41001,54004)时,结果是完美的: 使用所有代码的测试摘要: 3857: far away up (missing georeference) 3785: far away up (like 3857) 3587: far away right 900913: slightly jumped up 102100: python error 102113: perfect 41001: perfect 54004: perfect ArcGIS (web merc. …


1
寻找最接近的线段以定型使用?
背景 从一个已知的点开始,我需要针对MultiLineStrings表建立最近的周围“可见周长”,如图所示。 我在此站点上搜索了许多术语(例如,最小边,最小周长,最近的邻居,剪辑,包含多边形,可见性,捕捉,切割节点,光线跟踪,洪水填充,内部边界,路线,凹面船体),但是找不到与该场景匹配的任何先前问题。 图表 绿色圆圈是已知点。 黑线是已知的MultiLineStrings。 灰线表示从已知点开始的径向扫描。 红点是径向扫描和MultiLineStrings的最近交点。 参量 该点永远不会与MultiLineStrings相交。 该点将始终名义上位于MultiLineString中。 MultiLineString将永远不会完全包围该点,因此周长将为MultiLineString。 将有一个包含大约1,000个MultiLineString的表(通常包含大约100点的单行)。 考虑的方法 通过从已知点构造一系列线(例如,以1度为增量)进行径向扫描。 用MultiLineStrings建立每个径向扫掠线的最近交点。 当一条径向扫掠线不与任何MultiLineString相交时,这将指示周长中的间隙,该间隙将容纳在周长MultiLineString结构中。 摘要 尽管此技术将找到最接近的相交点,但不一定要找到所有最接近的周界节点,这取决于径向扫描的分辨率。谁能推荐一种替代方法来建立所有周界点,或以某种形式的缓冲,扇形或偏移来补充径向扫描技术? 软件 我的首选是使用SpatiaLite和/或Shapely作为解决方案,但是欢迎可以使用开源软件实现的任何建议。 编辑:工作解决方案(基于@gene的回答) from shapely.geometry import Point, LineString, mapping, shape from shapely.ops import cascaded_union from shapely import affinity import fiona sweep_res = 10 # sweep resolution (degrees) focal_pt = Point(0, 0) …

1
使用ogr2​​ogr通过属性选择特征?
经过一些处理后,我正在编写一个shapefile。但是,在最后一步中,我需要根据shapefile中的属性进行选择。 我正在外壳程序中使用该命令,目的是在工作时在Python脚本中使用它。 ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp 我收到错误消息: FAILURE: Unable to open datasource `Downloads' with the following drivers. 我可能做错了什么?

6
使用QGIS计算选定多边形的边界框坐标
我只是手动(而且我肯定有点不准确)检索了县多边形的边界框坐标,这是从较大的县形状图层中选择的。我希望能够使用QGIS插件或其他功能来快速而又不手动地进行计算。几乎可以肯定这是可能的,但我无法通过Google搜索找到任何东西
17 qgis  extents 

2
了解Esri的.asc文件吗?
阅读ArcGIS帮助:受支持的栅格数据集文件格式,我了解到ASCII Grid文件类型使用单数文件扩展名.asc来寻址16位带符号整数(用于离散数据)和32位浮点文件(用于连续数据) )。 他们在Esri网格格式部分中说: 网格是Esri固有的栅格数据存储格式。有两种类型的网格:整数网格和浮点网格。 然后描述两种格式。 我的困惑在下一个帮助部分Esri ASCII栅格格式中。在那里,他们只提到浮点格式。因此,我想知道: 除网格外,离散数据的16位带符号整数格式是否也被视为栅格格式? 在“ ESRI网格格式-网格数据存储”部分,他们引用了其他几个扩展名,例如.bnd,.hrd等。16位带符号整数的.asc文件是Esri离散数据网格格式的ASCII版本吗? 这个问题的动机是描述/理解什么是扩展名为.asc的文件。

2
传单:容器坐标与图层坐标?
地图容器坐标和图层坐标有什么区别? 从我收集的数据来看,地图容器坐标总是相对于地图视口,而图层坐标总是以与容器坐标相同的值开始,但是一旦平移地图,它们就会改变。 引用坐标/点的API: 放置到图层点 放置到集装箱点


2
PostGIS Geometry Query仅对某些值返回“错误:对混合SRID几何进行操作”
我有两个带有SRID 4326定义的几何列的PostGIS表。我可以使用以下INSERT语句(其中lng和lat以编程方式传递的值)毫无问题地插入表中: INSERT INTO pad_meta ( uuid, created, updated, name, origin, radius, area, expiry, creator ) VALUES ( $1, now(), now(), $2, ST_GeomFromText('POINT(lng, lat)', 4326), $3, ST_Buffer(ST_GeomFromText('POINT(lng, lat)', 4326), $4), $5, $6 ) 但是当我使用ST_Intersects查询交点时,取决于得到的点的值ERROR: Operation on mixed SRID geometries。 例如,此查询有效: SELECT * FROM pad_meta where ST_Intersects( 'POINT(-122.334172173172 46.602634395263560)'::geometry, area::geometry ) …
17 postgis  srid 

2
如何对GPS轨迹进行最佳建模以进行存储,可视化和分析?
我正在考虑编写处理GPS航迹和航点的软件(主要是存储,显示和计算速度,坡度和一些简单的统计数据)。 我想知道关于跟踪点的概念上最健壮的数据模型应该是什么,下面是一些“候选对象”: 将航迹视为航迹点序列: 1.1。由于地图投影为2D,因此轨迹被视为“ 2D”。跟踪点可能有高程,也可能没有时间戳。高程和时间戳记被视为“附加”,“可选”。对于地面应用,海拔是lat / lon的直接函数(可通过DEM获得)。 1.2。轨道被认为是“ 3D”,因为地理空间实际上是3D,并且接收器的轨迹是3D(因此2D投影是数据缩减的一种形式)。时间戳可能存在或不存在(轨迹可能是手工绘制的)。 1.3。轨道被视为“ 4D”(3个空间+时间)。因此,手绘地图是一种特殊情况,其中高程和时间戳存在null或不存在,但Trackpoint属性始终为“有”。 轨道被视为流的字典,其中所有流的长度相等。这里有一个纬度列表,一个经度列表,一个高程列表,一个时间戳等,这使每个属性的统计信息变得容易计算,并且从某种意义上说,Trackpoint的概念在某种意义上是“虚拟的”许多溪流的横截面。 如果我理解正确,GPX格式采用1.1。KML采用1.2。(不支持时间戳),并且Strava API采用2.(JSON格式),但最终这些只是用于序列化和存储的FILE格式,而不必用于建模,计算表示和数字运算。 在面向对象的意义上,是否存在任何可取的形式,为什么?(我相信,强类型和合理的建模至少可以避免那些没有意义的操作)。 编辑:一些“有趣的”附加问题: 手绘轨迹在概念上与设备记录的轨迹日志是否相同?它们应该是不同的数据类型吗? KML将空高程存储为零是否应该被视为“正确”?零是高程,如果您不知道高程,则不应该为其指定数字零,不是吗? 在具有高程的轨道中,是否从DEM数据(“离线”)或GPS数据或气压数据(“现场”)中提取高程,这有关系吗?是否应该在Track对象中标记它?是否保存到其他Trackpoint属性?忽略了吗?它们应该是不同的集合数据类型吗? 如果我在地图编辑器中编辑了设备记录的轨道(添加,移动和删除点),或者合并了不同日期的轨道,应如何处理轨道点中的时间戳?是否应该将它们“重置”为null?是否应创建与以前类型不同的对象(跟踪点集合)?

7
免费/低成本获取高分辨率卫星图像的来源?
我正在肯尼亚进行家庭调查,因此我需要确保我的调查小组访问给定区域内的每所房屋。我一直在去谷歌地图,然后在屋顶上单击鼠标右键,以通过“这里是什么”选项获取坐标。这确实是时间的低效使用。 我希望有一个可以上传到Google Earth引擎的高分辨率图像,然后执行机器学习算法来识别屋顶。我想获取所有房屋经度/纬度的文本文件,然后可以按距离进行聚类并以地图和清单格式提供给我的测量员。 但是Google Maps卫星视图中的图像受版权保护,在Earth Engine中不可用。因此,我需要高分辨率的图像来识别瓦楞铁和稻草茅草屋顶,其空间范围约为3km ^ 2。 这些数据有哪些好的来源?理想情况下,这将为研究生和/或非营利组织提供免费或廉价的服务吗?

6
从Arcmap复制而不是导出表
如何通过Arcmap 复制表或选择表中的行或列,而无需进行Export table的尖锐点击式练习?所述副本的目的地可以是任何东西:记事本,excel,单词等等。 现有的上下文菜单仅允许复制单个单元格的值,并且使用键盘[Ctrl-C]也仅复制单个单元格的值: 我使用的是Arcmap 10.1,但这已经困扰了很多年了,因此不必将答案局限于特定版本。
17 arcmap  interface 

6
如何在SpatialPointsDataFrame上覆盖多边形并保留SPDF数据?
我有SpatialPointsDataFrame一些其他数据。我想提取多边形内的那些点,同时保留SPDF对象及其对应的数据。 到目前为止,我运气不佳,只能通过一个通用ID进行匹配和合并,但这只能工作,因为我已经使用单个IDS对数据进行了网格划分。 这是一个简单的示例,我正在寻找红场内的点。 library(sp) set.seed(357) pts <- data.frame(x = rnorm(100), y = rnorm(100), var1 = runif(100), var2 = sample(letters, 100, replace = TRUE)) coordinates(pts) <- ~ x + y class(pts) plot(pts) axis(1); axis(2) ply <- matrix(c(-1,-1, 1,-1, 1,1, -1,1, -1,-1), ncol = 2, byrow = TRUE) ply <- SpatialPolygons(list(Polygons(list(Polygon(ply)), ID …
17 r  overlay 

1
标准化空间数据交换格式的下一件大事?
我记得几个月前(2012年下半年)曾读过一些有关团队协作以设计共享地理/空间数据新标准的内容。它具有或旨在取代Esri shapefile的显示年龄(20岁以上)实际标准的潜力,作为在所有设备和平台之间广泛共享数据的一种选择方式。除了解决最紧迫的shapefile 限制外,此新事物还合并了栅格和元数据。 我不记得的这一重要事项不是SpatiaLite-未来的Shapefile吗?或是否有任何尝试替换shapefile?但是围绕它的一些对话是相似的。今天我花了很多时间试图找出答案,但事实证明我的搜索能力不足以完成任务(这可能对它的未来不利)。 请问,这个难以捉摸的项目有什么名称,它可能会深刻影响我们所有的工作流程?(假设它离开了绘图板,上帝知道我们需要一些东西。)而且,一个人如何或在哪里参与其中,或者至少要对其进行跟踪?


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.