地理信息系统

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

3
增加图块缓存速度(TileStache)
我正在使用TileStache提供矢量图块,我已经按照需要设置了所有内容。我的数据存储在Postgres中,并且我正在使用VecTiles提供程序来提供GeoJSON切片。 我想缓存所有图块,以使图块的投放速度更快。我正在使用tiletache-seed.py播种我的缓存。我正在多台机器上运行tiletache种子。Tilestache-seed的13级缩放效果非常好,但是在那之后花费太长时间来缓存图块。仅对于16级缩放,我要缓存5023772个图块,而每台机器每天只能得到10万至20万个图块。 如何使我的图块缓存更快?有没有一种方法可以微调tilestache-seed.py并使它更快地播种? 更新:我曾尝试在表上(在几何列和用于通过where子句过滤数据的列上)建立空间索引,但我仍然没有看到平铺速度的显着提高。以这种速度,只有Zoom 17会占用我一个月的时间,而随着我朝Zoom 21的方向移动,这一次只会成倍增加 更新2:我也尝试制作实例化视图,并且性能没有明显变化,因此优化数据库无法正常工作。我想我将需要优化tiletache-seed.py本身,或者设计一种新的方式来缓存图块。 硬件信息我正在8台不同的PC上运行缓存过程,其中一台是具有32GB内存的i7,另一台是具有4GB内存的i3,但是它们都为我提供了几乎相同的缓存速度(每天大约100k磁贴)

4
将ArcGIS Tile数据导出为任何图像格式
我在ArcGIS 中具有缓存/混合格式的栅格数据集。我需要将其导出为地理参考的tiff或任何其他栅格图像格式,以便在其他基于桌面的GIS软件(例如QGIS)中将其用作基本地图。 到目前为止,我只在ArcGIS中找到了一个名为“ 导出切片缓存(数据管理)”的工具,该工具只能将切片格式更改为.tpk文件或爆炸/压缩缓存格式。我找不到将这些图块数据转换为任何图像的工具。 如果我使用ArcGIS中存在的导出数据选项,则生成的图像仅是黑色图像。 谁知道我如何将这些切片数据导出到图像中? 已编辑 @felixIP给出的答案可能是一个解决方案,但我正在寻找其他解决方法。磁贴包含一些配置文件,如下图所示 在conf.cdi外观像以下 <?xml version="1.0" encoding="utf-8" ?> <EnvelopeN xsi:type='typens:EnvelopeN' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.1'> <XMin>8142366.0491449088</XMin> <YMin>4370513.4222595459</YMin> <XMax>8146042.4910550155</XMax> <YMax>4375009.1735663339</YMax> <SpatialReference xsi:type='typens:ProjectedCoordinateSystem'> <WKT>PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3857]]</WKT> <XOrigin>-20037700</XOrigin> <YOrigin>-30241100</YOrigin> <XYScale>148923141.92838538</XYScale> <ZOrigin>-100000</ZOrigin> <ZScale>10000</ZScale> <MOrigin>-100000</MOrigin> <MScale>10000</MScale> <XYTolerance>0.001</XYTolerance> <ZTolerance>0.001</ZTolerance> <MTolerance>0.001</MTolerance> <HighPrecision>true</HighPrecision> <WKID>102100</WKID> <LatestWKID>3857</LatestWKID> </SpatialReference> </EnvelopeN> 虽然config.xml有以下信息 <?xml version="1.0" encoding="utf-8" ?> <CacheInfo xsi:type='typens:CacheInfo' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.1'> …

1
在QGIS教程/工作流中使用Orfeo Toolbox基于对象的分类?
我有一组需要分类的航空照片。我想尝试使用基于QGIS处理中Orfeo工具箱的基于对象的分类,而不是使用人工解释。 但是,我找不到任何说明如何在QGIS中进行操作的教程。在Orfeo指南中,步骤为 图像分割(全部或仅部分); 图像到LabelObjectMap(一种std :: map)的转换; 最终重新贴标签; 在分割之前使用图像对区域进行属性计算: 对象过滤 LabelObjectMap进行图像转换。 但我找不到任何具体的分步指南,即要使用哪种地理算法。我尝试遵循LSMC(大型均值漂移分类)工作流,并运行细分(Meanshift)。LSMC的结果相当不错,但是我不知道下一步该如何标记该对象(或制作一个训练对象)并将其分类。 我尝试了TrainImageClassifier(SVM),TrainORGLayerClassifier,ORGLayerClassifier,但是没有输出。我试图找到一些教程,但找不到任何教程。我对工作流程完全感到困惑。

2
该数据在哪个投影中?
我从代理商那里收到了我的项目的shapefile,并被告知他们始终使用UTM。但是,这些值有太多数字,无法在UTM中进行投影。 min max x 32507319 32624343 y 5925974 6074881 我尝试将文件读入QGIS,但是无论我使用哪种投影,即使使用世界地图,形状也总是显示在地图边界之外。它们应出现的区域是石勒苏益格-荷尔斯泰因州,它是德国最北端的联邦州,在UTM中具有以下最小值和最大值 min max x 426167.5 650147.9 y 5913377.7 6101334.8 可以很容易地看出,高端数据出了点问题。有谁知道我可以用哪种投影来解决这个问题?

2
使QGIS将坐标解释为经纬度而不是经纬度?
我正在使用TRMM 3B31文件处理NASA提供的降水量。当我将它们加载到QGIS上并选择WGS84投影以及其他形状文件时,地图将垂直显示,即QGIS解释为纬度,而经度则相反。我已经尝试了gdal_translate选项-a_ullr选择强加良好的坐标,但是并不能解决问题:仅压缩和拉伸图像以满足我的要求,但这显然不是我想要的。 加载.csv文件时,您可以选择必须是纬度和纬度,是否可以对栅格进行相同的处理? 由于我有193个栅格,因此,如果您可以建议可以迭代执行的命令,那就太好了。 该图显示了印度地图和3B31文件的第一个波段,即地表降水。黑色两条线是40和-40平行线。我想将它们水平放置,因此降雨数据与印度重叠。

5
如何在QGIS中将道路网络捕捉到六边形网格?
我正在尝试使用QGIS 2.14将道路网络捕捉到六边形网格中,但出现了奇怪的伪像。 我用MMQGIS创建了一个十六进制网格,单元大约为20 x 23 m。我已经将公路网缓冲了1m并进行了密实处理,因此每隔几米就有一个节点。您可以在下面查看我要实现的目标。如您所见,在某些情况下,我可以使其工作:- 蓝色是致密路(缓冲线) 红色是“十六进制”版本-这是我要查找的 灰色是十六进制网格 然后,我使用了新的“ 捕捉几何”功能将节点捕捉到最近的六角形角。结果令人鼓舞,但似乎在某些极端情况下,线扩展以填充六边形(或其一部分): 使用缓冲区的原因是,“ 捕捉几何”不允许您捕捉到几何不同的图层。例如,您不能将LINE层上的节点捕捉到POINT层上的点)。将POLYGON抢购到POLYGON似乎是最快乐的。 我怀疑当缓冲的道路线的一侧跳到十六进制单元的一侧,而另一侧跳到十六进制单元的另一侧时,道路会扩展。在我的示例中,以锐角横穿东西的道路似乎是最糟糕的。 我尝试过的事情没有成功: 仅对道路网进行少量缓冲,因此它仍然是多边形,但非常薄。 使十六进制单元致密(因此沿边缘有节点,而不仅仅是在角落) 改变最大捕捉距离(这具有最大的作用,但是我似乎找不到理想的值) 使用线层,而不是多边形 我发现如果更改为仅使用LINE图层,它会工作一段时间,然后崩溃。它似乎可以保存它的工作-有些行已被部分处理。 有谁知道其他方法可以将一条线上的点捕捉到另一条线/多边形图层上的最近点,理想情况下无需使用postgres / postgis(尽管也欢迎使用postgis解决方案)? 编辑 对于任何想去的人,我都在Dropbox上放置了一个入门QGIS项目。这包括“十六进制网格”和“密实线”层。(道路网来自OSM,因此可以使用QuickOSM下载,例如,如果您需要获取原始文件以使道路致密化)。 请注意,它位于OSGB(epsg:27700)中,这是英国的本地化UTM,以米为单位。

1
访问存储Postgis空间索引的内部数据结构(PostGres GiST)
我很好奇Postgis中空间GiST索引的内部数据结构和存储机制。在Oracle中,我曾经喜欢展示SDO索引是如何“仅仅是另一张表”,以及级别是索引的属性,以及索引几何的bbox如何存储为blob(可以提取)。Postgis如何存储索引,在哪里? 系统表http://www.postgresql.org/docs/8.3/static/catalogs.html可用于标识索引,但是我不知道如何访问实际存储(如果它们确实是表)

1
简化QGIS Graphical Modeler中的重复性任务
是否存在可以在QGIS图形建模器中使用的迭代器来简化上面显示的模型。如果没有,是否有更好的方法来简化模型? 第一列代表我的输入图层,第二列是相交,第三列是“交集”操作的输出,第四列是“按位置连接属性”操作,第五列是连接操作的结果。 我想执行“交集”和“按位置连接属性”操作以进行分水岭分析。目的是计算线性形态计量学参数,例如不同阶数的流的总长度和平均长度,流比率和分叉比率。 第一步是将“ order1流”与分水岭相交,然后将“ Order2流”与相同的分水岭相交。如果提供了“ order3流” shapefile,则应执行此新层的相交。因此,只有“ order1流”和“ order2流”是必需的,其余取决于提供的分水岭层。例如,如果分水岭是4级分水岭,则所需的流最多为“ 4级流”。 一旦所有可用输入层的交点完成后,便可以按位置将它们连接到分水岭,并带有选项以获取相交流的总和和均值。 该图显示了正确的过程。如果我在建模器之外进行操作,则结果是正确的。当我运行模型时,出现此错误。 “执行算法Order5_plus_wshed'NoneType'对象时出错,没有属性'dataProvider'”。 如果我没有为可选参数之一提供输入(例如,输入“ order4流”),则会发生这种情况。但是,如果我提供所有输入,则会得到所需的结果。 因此,我想问一下是否有更好的方法来设置此任务。


1
将特征计数为形状多边形的交点
我有一个包含数百个形状和几何形状的大熊猫 。多边形在很多地方重叠。我想制作一个新几何,其中包含其中有多少重叠的计数。像这样:GeoDataFramePolygonMultiPolygon 有人对如何解决这个问题有任何想法吗?我什至看不到办法。 最终,我特别希望能够对多边形进行加权,以使某些多边形自己值2。使用shapely的Z字段执行此操作可能很好。 除了:我与这些库都不特别相关,这就是我最终的去向。这些几何形状中的坐标实际上是像素坐标-我正努力制作栅格以使其覆盖在另一幅图像上。我希望将占用空间保持尽可能小,因为我希望能够将这些资源部署到可能无法安装随机资源的云服务器等中。

1
从PostGIS中的线创建面
我正在尝试将一条线中的一个多边形划分为多个较小的多边形,但是我想我不能使用st_split函数。我需要的是使用线串网格在大的多边形内创建小多边形。 我尝试了一些方法,但无法获得结果。我尝试过的 使用st_split()从LineString中分割一个多边形 从边界多边形开始。 和线串表: 我需要以下多边形: 问题:我无法从多条线分割多边形,也无法从多线串分割多边形。 我正在尝试的另一种方法是使用st_polygonize()从线创建多边形,而我正在尝试的SQL是: SELECT g.path[1] as gid, g.geom::geometry(polygon, 22033) as geom FROM (SELECT (ST_Dump(ST_Polygonize(geom))).* FROM linestable ) as g; 从使用PostgreSQL和PostGIS从线段创建多边形中提取 问题:我只能得到一个多边形(边界)。 有人可以告诉我从线串中获取多边形的最佳方法是什么,或者我是否缺少某些东西? 注意:表位于相同的SRID中,并且几何形状已捕捉到网格中。在QGIS中,我可以完美地执行从线条到多边形的多边形化过程。 根据John的要求,这是线串表。 https://drive.google.com/file/d/0B603y_m735jfS014S0EyVnpMUEU/view?usp=sharing
13 postgis  sql  topology 

1
PostGIS-如何在单个表中有效ST_Union所有重叠的多边形
我的目标是将一张桌子和st_union彼此接触或靠近的所有多边形st_union合并为一个多边形 我是一位C#开发人员,他开始学习PostGIS。使用下面的代码,我能够做到这一点,但是效率似乎很低,而PostGIS对我来说是很多新东西。 从我最初的尝试(仍在注释中),我能够通过将array_agg与ST_UNION一起使用来减少迭代,而不是一次仅合并poly。 我得到了来自orig 173的133 polys。 sql = "DROP TABLE IF Exists tmpTable; create table tmpTable ( ID varchar(50), Geom geometry(Geometry,4326), Touchin varchar(50) ); create index idx_tmp on tmpTable using GIST(Geom); "; CommandText = sql; ExecuteNonQuery(); sql = ""; for (int i = 0; i < infos.Count(); i++) { sql …
13 postgis 


2
从更改的数据源进行Qgis图层更新
我试图让图层在其数据源更改时自动更新。我正在使用R编写具有属性的shapefile,并根据QGIS中的该属性进行着色。 我想编写一个具有不同属性值的新shapefile,并更新Qgis贴图颜色。第1步触发该过程,第2步从修改后的shapefile重新加载图层。我在这里担心它的第2步。 其他问题/邮件列表聊天者提到triggerRepaint了在图层上使用的内容-不起作用。其他建议包括setCacheImage(None)一遍又一遍不起作用。该层确实会最终更新,但是我真的看不到逻辑,有时在我什么都不做之后会意外地发生。或者也许我在两分钟前做了一些事情。 一种可更新的更新方式是从图例菜单中复制图层-副本始终从当前shapefile获取其数据,而原始图层也将自行更新!因此,必须有某种方法可以做到这一点。 我认为它在2.8中工作得更好,但这是2.10,因此也许某个地方存在一个新的错误。 相关,但在2.10中不适用于我: 如果在QGIS中更改了源,如何自动重新加载栅格图层? 我尝试过的其他方法: layer.dataProvider().dataChanged.emit() -工作一次,然后不在同一层上工作 我想我已经找到了为什么要复制图层的原因-如果我基于更新的图层创建一个新的一次性图层,然后调用.triggerRepaint()更新的图层,它将在地图画布上更新: QgsVectorLayer( layer.source(), "layer copy", layer.providerType() ) layer.triggerRepaint() 如果我使用不同的图层源,它将无法正常工作,因此似乎是基于相同图层源创建图层对象的。 现在,使用栅格图层(来自GeoTIFF)进行快速测试,并且只需调用rlayer.triggerRepaint()即可可靠地更新地图画布中栅格的视图。
13 qgis  layers 

3
在ArcGIS for Desktop中使用LiDAR时* .las与* .xyz或* .ascii的好处?
我们有时会使用LiDAR数据在ArcGIS中进行建模。以前,我们将为数据提供.xyz或.ascii,但最近,除了.xyz和ascii的文件之外,我们还提供了.las文件。 我正在阅读这篇文章,其中指出“对于启动者来说,具有LAS格式的激光雷达可能很明显,但对于使用激光雷达数据的初学者而言并不明显”和“它是二进制的,高效的,得到广泛支持的格式,并且ArcGIS最适合使用该格式”。我是使用.las格式的新手之一。 通常,对于.xyz和ascii,我将使用Global Mapper将其转换为栅格网格(以在建模中使用),而且似乎还需要转换.las文件(为点云)。我想我要问的问题是: 如果仍然需要将.las与.xyz或ascii相比,使用.las有什么好处?

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.