地理信息系统

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

1
如何更改SpatialPolygons对象的多边形填充颜色和边框颜色?
我有要绘制的SpatialPolygons或SpatialPolygonsDataFrames。如何使用R中的三种绘图系统(基本图形,点阵图形和ggplot2)更改颜色? 示例数据: library(sp) Srs1 = Polygons(list(Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))), "s1") Srs2 = Polygons(list(Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))), "s2") SpDF <- SpatialPolygonsDataFrame( SpatialPolygons(list(Srs1,Srs2)), data.frame( z=1:2, row.names=c("s1","s2") ) ) spplot(SpDF, zcol="z")
25 polygon  r 


5
QGIS用户可以使用专业认证吗?
我听说过有关QGIS专业认证计划的传言。 我在https://hub.qgis.org/wiki/17/Certification上找到了一些文档,但是找不到其他文章或Web链接。 有谁知道是否仍在为这种认证提供培训和测试? 如果是这样,我将如何/在何处开始该过程? 我在美国,因此有关在美国境内可用或远程可用的程序的任何信息将特别有用。 自从提交最彻底的答案以来已经一年半了。我想知道是否有任何更新?

1
在QGIS中获得多行图例标签?
这个问题是在2011年发布的,有人说QGIS现在允许在图例条目中使用多行,但是没有人提到如何做到这一点。我正在运行wein 2.8.1,除了手动使用文本之外,我无法弄清楚如何在多行中获取我的图例条目。

1
获取TopologyException:输入几何1无效,这是由于R中的自相交导致的?
由无效的多边形几何形状引起的“ TopologyException:输入几何1无效”自相交错误已得到广泛讨论。但是,我没有在网络上找到仅依赖于R功能的便捷解决方案。 例如,我已经设法从map("state", ...)遵循Josh O'Brien 在这里的好答案的输出中创建一个“ SpatialPolygons”对象。 library(maps) library(maptools) map_states = map("state", fill = TRUE, plot = FALSE) IDs = sapply(strsplit(map_states$names, ":"), "[[", 1) spydf_states = map2SpatialPolygons(map_states, IDs = IDs, proj4string = CRS("+init=epsg:4326")) plot(spydf_states) 现在,这种广泛应用的数据集的问题在于自相交发生在以下给定的点。 rgeos::gIsValid(spydf_states) [1] FALSE Warning message: In RGEOSUnaryPredFunc(spgeom, byid, "rgeos_isvalid") : Self-intersection at or near point …

2
地理数据跨越antimeridian的数据库和API的最佳做法
当这些地理特征(线,面和它们的多部分等价物)跨越时线(经度±180°)并且需要作为GeoJSON发送到客户端Web应用程序并从客户端Web应用程序接收时,最佳做法是什么? 我将开始在服务器端Web API上进行工作,并获得Postgres / PostGIS数据库的支持,以处理历史和预报的热带气旋轨道和风半径。不幸的是,太平洋上的许多气旋都有越过沙漏的趋势,有时在生命周期内多次发生: 作为居住在后脚区附近的新西兰人,我经常在区域数据中经常遇到此问题,以制定一些应对策略,但是我想实际找出什么是最佳实践。不幸的是,目前没有标记为antimeridian的问题,因此很难搜索相关问题。我所看到的那些困扰该问题的问题似乎都在寻求针对特定应用的建议。这个问题简要讨论了跨越地球的GeoJSON多边形无边界情况下的反子午线。这个问题很接近我的要求。 我需要将历史和预报的气旋存储在空间数据库中,但我希望反高度子集会出现问题。例如,一条线从纬度/经度开始,在其方向(0,179)结束时(0,-179)是不明确的:无论是经过小子午线的短路径,还是“包裹”整个星球。这样的路径应如何存储在空间数据库中(特别是我正在使用PostGIS,但我希望解决方案足够通用)?我有一些想法: 无需更改要素几何并将模糊性转移到客户端应用程序。 将跨越子午线的任何特征分割为多部分几何,并在子午线处断开。(GeoJSON规范支持命名的CRS。) 使用不具有这种不连续性的不同旋风盆地或海洋区域的非全局投影 利用从未观察到旋风绕着整个行星传播这一事实,存储旋风的坐标,该旋风的坐标从纬度范围开始(90,-90) 偏移了360°相位(保持其他-180-180°) 利用一个事实,即在非洲南端以南极不可能发生气旋,请使用经度为30°的中断(如上图所示)。 允许坐标超出EPSG 4326的有效范围,例如,对于任何通过后向子午线的要素,> 180°且<-180°。 Delta编码,例如在TopoJSON中(例如,始于,(0,-179)然后下一个坐标为-3西纬)。我不知道在PostGIS中存储数据时是否或如何实现此功能,但这是将数据发送到客户端应用程序的绝佳解决方案。 矢量符号或极坐标的某种形式。(似乎相当困难和不寻常。) 其中,我不喜欢想法2–5,因为它们不是通用的,但是我喜欢它们,因为它们对我的特定应用程序有意义。对于仅在太平洋中处理数据的应用程序,它们可能很有意义,因此我不希望完全打折。 想法6和7是从汤姆·麦克赖特(Tom MacWright)的博客中提出的,该博客值得一读,但对于antimeridian而言并不确定。 Idea 4由GeographicaGS'使用GeodesicLinesToGISPython,而后者又使用fiona.transform.transform_geom了360°的时间偏移。反过来,Fiona正在使用OGR的-wrapdateline。我认为这是一个非常坚实的先例,实际上是相当普遍的。 结合存储问题,我需要考虑应如何将此类功能发送到客户端应用程序,以及我的应用程序应如何考虑回传到该应用程序的数据(例如,人类预报员更改了太平洋气旋的预报轨迹)。交换格式可能是GeoJSON,但不是必须的。 不幸的是,GeoJSON规范并未明确涉及时间轴问题。来自维基百科: 许多地理软件库或数据格式将世界投影到一个矩形。通常,此矩形正好在第180个子午线上精确地分割。这通常使得不可能在第180个子午线上执行简单的任务(例如表示一个区域或一条线)。一些例子: GeoJSON规范在其规范中并未提及对第180条子午线的处理,因此,跨越第180条子午线的线的表示也可以解释为遍历世界。 在OpenStreetMap中,区域(例如俄罗斯边界)在第180个子午线上被分割。 我的理解是,GeoJSON没有特定的跨时间跨度特征的标准表示形式,并且故意将其含糊不清(多部分几何形状可能会解决此问题)。类似地,在OpenStreetMap中,后子午线处有几何划分,尽管我不知道这样的拆分要素是多部分的还是实际上是离散的记录。 这带来了相当大的问题,尤其是从提出跨越此线的边界框或其他空间请求的角度而言,而且在解析和清理输入以及对要素几何的任何更新方面也是如此。这就是为什么我试图确定我可以寻求遵循的最佳实践的原因。

2
ST_Distance()中使用的单位是什么?
我想知道从中返回浮点数的单位是什么ST_Distance。 在文档中说: ...以投影单位表示的两个几何之间的笛卡尔最小距离(基于空间参考)。 这些预计单位是什么? 几何存储在一个字段中:geometry(Point,4326)。

3
如何在PostGIS中创建新的“ gis”数据库?
我想在PostGIS中创建一个新数据库,以便可以在使用当前数据库时将内容加载到其中。根据文档 一些PostGIS的打包发行版(特别是WinGIS安装程序> = 1.1.5)将PostGIS函数加载到名为template_postgis的模板数据库中。如果您的PostgreSQL安装中存在template_postgis数据库,则用户和/或应用程序可以使用单个命令创建启用空间的数据库。 在我看来,情况并非如此: $ createdb -T template_postgis my_spatial_db createdb: database creation failed: ERROR: template database "template_postgis" does not exist 过去,我一直在搞怪复制主gis数据库,然后删除所有表的内容。肯定有更好的办法。如果不小心掉了怎么办?

2
寻求算法来检测圆以及圆的起点和终点?
我从固定滑翔机飞行员那里获得了许多飞行数据,这些数据以固定间隔的gps修复的形式出现。我想分析飞行路径,并检测滑翔机飞行员在发现热量时将进行的“绕圈”的开始和结束。 理想情况下,一种算法将为我提供直线上的起点和终点,从而定义一个“圆”。这些点可以等于gps修复之一,不需要插值。 我只是可以沿着飞行路线行走,检查转弯速率,并有一些标准来确定滑翔机是否在盘旋。 当我使用带有PostGIS扩展名的PostgreSQL时,我很好奇是否有更好的方法可以解决此问题。我已经有一个过程来计算两个线段的角度: CREATE OR REPLACE FUNCTION angle_between( _p1 GEOMETRY(PointZ,4326), _p2 GEOMETRY(PointZ,4326), _p3 GEOMETRY(PointZ,4326) ) RETURNS DECIMAL AS $$ DECLARE az1 FLOAT; az3 FLOAT; BEGIN az1 = st_azimuth(_p2,_p1); az3 = st_azimuth(_p2,_p3); IF az3 > az1 THEN RETURN ( degrees(az3 - az1)::decimal - 180 ); ELSE RETURN ( degrees(az3 - …

1
使用ogr2​​ogr将GeoJSON转换为Shapefile?
我有一个GeoJson文件,我想使用FWTools中的ogr2ogr转换为ESRI Shapefile。 我尝试使用 ogr2ogr -F "ESRI Shapefile" filename.shp geojsonfile.json OGRGeoJSON 我得到了输出 错误6:无法在shapefile图层上创建StringList类型的字段。错误1:尝试编写非多边形(POINT)几何体以键入shapefile。错误1:图层OGRGeoJSON转换失败后过早终止转换 我们提供的GeoJSON输入为标准geojson格式。 geojson的内容就像{分享我仅从features array中分享的一部分} {"id":1223, "properties":{"name":"3","level":2}, "map_version":11,"type":"FeatureCollection","x_id":1234,"obj_type":"LevelGeometry", "features":[ { "my_area":[131.40093253528894,33.58879853190332,6.515867411008615,3.490549810987222,-0.6237271428108215], "id":1984791, "location":{"type":"Point","coordinates":[131.4009325,33.5887985]}, "properties":{"display_name":"xyz"}, "type":"Feature", "geometry":{"type":"Polygon","coordinates":[[[131.4009508,33.5888314],[131.4008895,33.5887946],[131.4009148,33.5887653],[131.4009761,33.5888020],[131.4009508,33.5888314]]]}, "obj_type":"Geometry" } ] }


1
在QGIS中创建扇形灯?
我正在使用QGIS 2.18。我需要在地图上创建用于导航的扇形灯。 我将轻型部门数据作为形状文件中的becon_id,开始程度,结束程度和颜色的字段,其中需要在地图上显示500多个浮标,信标和灯塔。对于每个信标,可以有很多行,每行描述一个光扇区(例如白色扇区) 最终结果应如下所示:正确颜色的光扇区,在色域(RGW)中标记为字符的颜色,以及从浮标/信标/灯塔到100m至1000m的虚线。 这很可能应该创建为基于规则的符号,但是我猜需要一些python吗? 以下是一个灯塔的shapefile数据示例(不幸的是,上面没有),该灯塔的绿色扇区在114至154度之间,白色扇区在154至168度之间,红色扇区在168至237度之间,绿色介于237至314度之间的扇形,白色的介于314至320度之间的扇形,红色的介于320至337度之间的扇形(由于某种原因,0不是北而是南):

5
是什么使MXD文件更大,以及如何减小它的大小?
我知道MXD包含有关图层,符号体系和默认工具配置的信息。我有一些超过50 MB,并且开始需要一段时间才能加载。 有哪些主要因素会增加MXD的文件大小?是否有一些明显增加尺寸的东西? 我绝对没有证据表明的一些想法是: 复杂层符号 每层多个标签类别 定义查询 从源中提取图层将使文件路径变长(C:/MyFolder/Data/Data2/SubContainer/YouGetThePoint.shp) 图层的比例范围 将图层分组 这些想法中的任何一个是否有效?

2
使用线(而不是点)作为输入要素来创建蒂森(Voronoi)多边形?
我在特定的多边形边界内有一组线要素。对于每条线,我想生成一个多边形,在该多边形内,每个可能的点比该层中的任何其他线更靠近给定的线。过去,我已经使用Delaunay三角剖分对点输入要素进行了此操作,但是如果使用线要素进行相似的处理,则无法找到它。 ETA:我想到了Geogeek的解决方案,但是在较直的部分中,输入线的顶点较少,因此产生的多边形太接近(甚至重叠)了一条本不应该的线。在这里,红线是我的输入,您可以看到顶点和从中生成的Thiessen多边形。 也许一种快速且(非常)肮脏的解决方案可能是将每条线转换为一组均匀间隔的点(而不是仅线的顶点),从这些点生成蒂森多边形,然后根据原始线ID分解它们。

3
栅格数据集,栅格目录和栅格镶嵌之间的区别
我有约40张扫描的彩色GeoGeiff地质图。我想将它们放入Esri FileGeodatabase中以减小它们的大小,将它们组合为一个,并使用也被扫描的几乎透明的覆盖层显示它们。 现在它们是单独的Tif图像,我不确定哪一种是将它们存储在FileGeodatabase中的最佳方法。有没有人有这些经验,您能告诉我何时要使用其中一个而不是其他吗? 最终,我们将拥有一台ArcServer,但是现在它们将从Geosoft DAP服务器提供服务。它们主要显示在Arc 10.0或10.1中,但是这些选项中的任何一个在Geosoft Target中都能很好地显示吗? 编辑:因此,经过更多研究后,我发现Geosoft无法使用这些选项。至少不在文件地理数据库中。因此,我们最终要做的是制作两个镶嵌栅格,并使用Packbits压缩将它们保存为GeoTiffs(Geosoft支持,而Geosoft不支持LZW)。一种用于地质,另一种用于叠加层。对于仅是一种颜色和一些黑色特征的覆盖,压缩将非常有用,因此文件大小将是未压缩大小的一小部分。 至于我正在考虑的三个选项之间的差异,我对此仍然很模糊。因此,如果有人有很好的解释,我仍然很想知道...

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.