地理信息系统

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


2
使用PostGIS在表格中通过纬度/经度创建几何?
我的表有80万条记录,包括经度和纬度。数据源未创建几何,因此我一直在寻找如何执行此操作的方法。我知道有ST_MakePoint(x,y,SRID),但是所有文档和其他线程都显示了如何创建单点。如何使用这些列创建几何类型?
15 postgis  sql 

1
在QGIS中连续对齐道路名称
我正在尝试在QGIS中尽可能使行名或行名对齐。我知道可以在Adobe Illustrator中使用映射插件来完成此操作,但是我没有这笔钱。 我试着像这样,但它没有似乎并没有帮助。 这是一个例子: 不一定要那样,但是我想做类似的事情。
14 qgis  labeling 

1
为多边形创建“砖墙”样式
我正在尝试在QGIS 2和3中为矢量多边形创建砖墙样式。我可以使用SVG填充渲染砖墙的svg图(下图)。但是我不想使用SVG,因为该样式是免费的地质图的一部分,在该地图中SVG文件将使公众的数据分发和渲染变得复杂。通过默认的QML保存SVG会在QML文件中强制指向SVG文件的相对路径,并且SVG文件必须位于QGIS系统SVG文件夹中。 任何人都可以创建多边形矢量样式,例如: 不需要外部SVG文件进行渲染。
14 qgis  style  qml 


1
美国陆军地图服务局(AMS C762)在这张1951年冰岛地图上的角度线性比例是什么意思?
在1948–1951年冰岛制的美国陆军地图服务局(AMS C762) 1:50,000地图上,顶部有一个比例尺标记,其中显示了角度,我怀疑是角度。在下图中,它显示25°–29°。它向左增加,表明它可能是指西经,但是数字不正确;地图覆盖18°W–18°30'W。这也不是磁偏角,这是通过惯常的方式在衣领上的其他地方显示的。该系列中的其他地图在相同位置具有相似的比例,但是数字可能不同。这个角度比例是什么意思?

1
简化SF对象的多边形
如何在sf不引入间隙和裂缝的情况下简化多边形? 以shapefile为例,我将使用rmapshaper::ms_simplify(): library("pryr") library("rgdal") library("rmapshaper") download.file("https://borders.ukdataservice.ac.uk/ukborders/easy_download/prebuilt/shape/England_gor_2011.zip", destfile = "regions.zip") unzip("regions.zip") regions <- readOGR(".", "england_gor_2011") object_size(regions) # ~13MB regions <- ms_simplify(regions) object_size(regions) # < 1MB 我尝试过sf::st_cast()手册页中指出的内容: 将几何体转换为另一种类型:简化或显式转换 和: 争论:性格 目标类型,如果缺少,则尝试简化;当x为sfg类型(即单个几何)时,则需要指定to。 当我to遗失时,它并没有按预期工作(我知道实在太好了!): library("sf") regions <- sf::read_sf("england_gor_2011.shp") object_size(regions) # ~13MB regions <- sf::st_cast(regions) object_size(regions) # Still 13MB 目前,我正在使用打开文件rgdal::readOGR(),进行简化,保存,然后使用重新加载sf。 有没有更好的办法? rgeos::gSimplify() rgeos::gSimplify()当使用以下参数指定时,@sk的建议可以进行拓扑感知的简化(即在不创建条的情况下进行简化): library("rgeos") regions_gSimplify …
14 r  simplify  sf 

1
使用ArcGIS Desktop在高程之后创建缓冲区多边形?
我想做的是在多边形上放置一个100 m的缓冲区,而不是“当乌鸦飞翔时”缓冲区保持固定宽度,我希望它遵循我的Lidar DEM的坡度。 我有ArcMap(带有3D Analyst)。遗憾的是,没有使用ArcMap的Spatial或Network Analyst扩展。 互联网使我无所适从,开始研究接近度分析,路径距离分析和各向异性累积成本。看来我需要以某种方式制作时间成本网格,并找出从多边形到达100 m所需的时间,但这似乎是倒退的。这些工具中的绝大多数似乎都是用来寻找两点之间最简单的路线。 有人做过吗?

1
配置从4波段ArcGIS影像服务显示哪些波段?
USDA(通过国家地图)为美国大多数州提供4波段NAIP ArcGIS“ ImageServer”(服务)。我能够按照此处所述成功连接到QGIS中的WMS服务,该服务使用默认的RGB(1,2,3)波段将图像加载到QGIS中。 但是,我想更改图像以显示CIR(波段4,1,2)。在“样式”选项卡上,“渲染类型”仅提供“单波段颜色数据”选项,而不提供步骤3.5中针对此处典型栅格描述的“多波段颜色”选项。这似乎是WMS服务的限制。 您可以使用REST端点从ArcGIS Desktop中的同一服务执行此操作。使用REST端点可以使用更改服务范围的ArcGIS Online Webmap示例。只需转到图层上的“ ...”,选择“图像显示”,然后选择“用户定义的渲染器”。 更新: 我一直在这里使用Chrome中的开发人员工具和ArcGIS.com地图示例,并认为我发现了一些信息。更改图像显示设置后,我注意到一些查询参数设置为: https://gis.apfo.usda.gov/arcgis/rest/services/NAIP/Montana_2015_1m/ImageServer/exportImage?f=image&bandIds=3,0,1&bbox=... 再次更改频段ID后,我意识到此查询参数中的bandID从零开始,而不是从1开始。因此,&bandIds = 3,0,1实际上是指用于以CIR格式显示图像的波段4,1,2。因此,我只需要弄清楚如何为QGIS配置查询字符串以接受此参数。有什么想法吗?

3
基于像素的分类与基于对象的分类之间的区别?
我正在努力清楚地了解遥感领域中基于像素的分类与基于对象的分类之间的区别,并希望该社区中的某人能够提供见识。 根据到目前为止的信息,我目前的理解是: 基于像素的分类: 仅使用可用于单个像素的光谱信息在每个像素级别进行分类(即忽略局部区域内的像素值)。在这种意义上,每个像素将代表一个分类算法的训练示例,并且该训练示例将采用n维矢量的形式,其中n是图像数据中光谱带的数量。因此,训练后的分类算法将输出图像中每个像素的分类预测。 基于对象的分类: 分类是在局部像素组上进行的,同时考虑到每个像素彼此相关的空间特性。在这种意义上,用于分类算法的训练示例将由一组像素组成,并且经过训练的分类算法将相应地基于组输出针对像素的类别预测。举一个粗略的例子,一个图像可能被划分为n个大小相等的片段,然后每个片段都被赋予一个类(即包含对象/不包含对象)。 对于这些术语的含义,这种想法是否正确?还是我错过了某些事情?

1
使用ArcPy在中点分割多边形?
我正尝试在其中点(垂直于最长轴)(即在中点的宽度上)周围的4000个多边形中进行分割,如下图所示。 理想情况下,我想自动执行此操作,避免手动分割每个多边形。我已经通过转换可以在每个多边形中绘制的最长线来提取多边形的中点,我只需要确定一种自动在该点上绘制宽度线的方法即可。 多边形的宽度各不相同,因此,通过定义一定长度的宽度线来分割多边形的工具并不是我真正想要的。 有任何想法吗?


2
如何将John Snow数据集转换为地图坐标
在R的HistData数据包(https://r-forge.r-project.org/R/?group_id=574)中,我具有与约翰·斯诺(John Snow)1854年伦敦霍乱疫情地图有关的数据集。我相信它们在Walter Tobler的监督下经过精心数字化处理后,具有权威性。John Mackenzie在http://www1.udel.edu/johnmack/frec480/cholera/cholera2.html上描述了有关这些数据集的一些详细信息。 不幸的是,死亡,水泵和街道的坐标使用任意坐标系,而不是适用于R中其他GIS应用程序或地图软件(空间包,ggmap等)的地图坐标。 在http://freakonometrics.hypotheses.org/19213中, Arthur Charpentier将ggmap与来自http://www.rtwilson.com/downloads/SnowGIS_v2.zip的John Snow数据版本一起使用 。Cholera_Deaths.shp但是,该文件仅列出489人死亡,而不是我在中记录的578人HistData::Snow.deaths。 一种想法是找到均值与(x,y)坐标的标准偏差之间的关系并进行线性缩放,但是也许有更好的方法吗? 到目前为止,这是我尝试过的 > data(Snow.deaths, package="HistData") > D <- Snow.deaths[,2:3] > colMeans(D) x y 13.03312 11.69721 > var(D) x y x 3.8150987 0.3802654 y 0.3802654 2.7213828 读取Cholera_deaths文件 > folder <- "C:/Dropbox/R/data/Snow/SnowGIS_v2/SnowGIS" > library(maptools) > deaths <- readShapePoints(file.path(folder, "Cholera_Deaths")) > head(deaths@coords) coords.x1 …

3
遍历冲突的标签
从我的角度来看,如果要标记的两个要素彼此之间过于接近,则基本上有三个选择。默认情况下,QGIS将忽略其中一个标签。如果为有问题的图层或全局标签设置启用了“显示所有标签”属性,则它将打印重叠的标签。 除非我已分配数据列来存储标签位置,否则可以通过将标签之一移至更好的位置来解决冲突。 我的问题是我认为省略标签或重叠标签都不是适当的解决方案。有没有一种方法可以系统地遍历所有冲突的标签,让我有机会通过移动一个标签或隐藏其中的一个标签来手动解决这些冲突? 我猜是因为位置似乎取决于比例和地图范围,所以这可能特定于打印作曲家中的给定地图。
14 qgis  labeling 

1
为什么Shapely的捕捉(GEO捕捉)无法按预期工作?
我试图使用Shapely / Geopandas将两条线彼此对齐,但是对齐的结果非常奇怪。我试过了 : import geopandas as gpd from shapely.geometry import * from shapely.ops import snap lines1 = gpd.GeoDataFrame.from_file('lines1.shp') lines1 = lines1.to_crs({'init': 'epsg:2227'}) lines2 = gpd.GeoDataFrame.from_file('lines2.shp') lines2 = lines2.to_crs({'init': 'epsg:2227'}) res = lines1 lines2_union = lines2.geometry.unary_union res.geometry = res.geometry.apply(lambda x: snap(x, lines2_union, 14)) res.to_file('result.shp', driver="ESRI Shapefile") 并得到了这个结果: lines1 = 红色线 …

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.