Questions tagged «vector-grid»

用于有关矢量网格(也称为鱼网)的问题。如果对Leaflet插件有疑问,请使用标签“ vector-tiles”

4
使用R覆盖空间多边形,并使用R检查在其中放置了哪些网格元素特定坐标
如何使用R来 将shapefile分割为 200米的正方形/子多边形, 在下面的原始地图上绘制此网格(包括每个正方形的ID号),并 评估特定地理坐标所在的正方形。 我是GIS的初学者,这也许是一个基本问题,但是我还没有在R中找到有关如何执行此操作的教程。 到目前为止,我所做的是加载NYC的shapefile并绘制一些示例性地理坐标。 我正在寻找一个示例(R代码)如何使用下面的数据。 # Load packages library(maptools) # Download shapefile for NYC # OLD URL (no longer working) # shpurl <- "http://www.nyc.gov/html/dcp/download/bytes/nybb_13a.zip" shpurl <- "https://www1.nyc.gov/assets/planning/download/zip/data-maps/open-data/nybb_13a.zip" tmp <- tempfile(fileext=".zip") download.file(shpurl, destfile=tmp) files <- unzip(tmp, exdir=getwd()) # Load & plot shapefile shp <- readShapePoly(files[grep(".shp$", files)]) plot(shp) # …


2
如何在不进行插值的情况下从不规则点数据制作RASTER
我试图从不规则间隔的点数据库制作光栅图像。数据看起来像- > head(s100_ras) x y z 1 267573.9 2633781 213.29545 2 262224.4 2633781 69.78261 3 263742.7 2633781 51.21951 4 259328.4 2633781 301.98413 5 264109.8 2633781 141.72414 6 255094.8 2633781 88.90244 我想在我创建的网格中使用这些“ z”值 # Create a fine mesh grid my_mesh=expand.grid(seq(min(s100_ras$Y),max(s100_ras$Y),l=100), seq(min(s100_ras$X),max(s100_ras$X),l=100)) 我还希望为数据点之外的那些网格点将z值分配为“ NA”。网格上的点如下所示:https : //drive.google.com/file/d/0B6GUNg-8d30vYzlwTkhvaHBFTnc/edit?usp=我绘制时共享 plot(my_mesh) points(s100_ras$Y, s100_ras$X, pch="*", col='blue') 问题是我不确定如何在此基础上进行构建,以下步骤不起作用,因为我的网格和数据点的比例不同! …
13 raster  r  vector-grid 

4
在QGIS中的多边形内创建规则间隔的已定义点数
我使用研究工具“规则点”在多边形内生成一定数量的点,但是它形成点的矩形网格,而不是仅在多边形形状内。由于我在多边形内需要一定数量的点,因此有没有办法做到这一点而又不会反复试验? 例如,现在我想要的25个点中只有8个在多边形内,但是我想要25个点,所以我可以增加到50个点,然后看看在多边形内会出现多少个点

3
用于创建热图的全局网格状投影
我将一个应用程序放在一起,需要在其中创建一个矢量网格,该网格将用于存储和显示热图。它具有以下要求: 可以覆盖整个星球。 绝大多数网格正方形将没有值。 我不想存储网格本身;我想即时计算。 网格使用的数据规模可能有很大差异。 我希望网格正方形的范围从1公里到100公里。(我知道这将是多少(1公里约5.1亿,100公里约51,000))。 将为每个网格正方形累积/汇总值。 理想情况下,我将能够轻松地使用较小的网格单元来计算较大的网格单元的值,而不是存储较大的网格单元值。 我将使用OpenLayers将其覆盖在OpenStreetMap上。 我将其存储在SpatiaLite或SQLite中,因此最好由本机支持(即,对于SpatiaLite =支持的CRS;对于SQLite =基于纯数字的系统)。 所以我的问题是:该网格应使用什么投影? 另外-有设计这个的好方法吗?有谁知道一个很好的潜在解决方案,或者以前已经解决过类似的问题?或者可以为我指出一个有用的方向。 编辑 用例-基本上,我正在汇总各种不同形状和大小的边界框。它们的大小从几公顷到数千平方公里不等。他们可能也有不同的预测。 以下是我要自动完成的目标定制版本。 非常感谢。

3
将复杂的shapefile划分为网格
我有一个具有多边形/多多边形特征的相当详细的shapefile(文件约为500mb)。它实际上是整个世界的shapefile,其特征代表海岸线。我需要使用网格划分此数据。明确地说,我不想对数据进行“排序”,而是将多边形实际切成小块。我知道之前曾有人问过这个问题,但是我发现的解决方案对我不起作用。 我试过了: 使用QGIS并将我的shapefile内容与矢量网格相交-结果非常糟糕。大多数主要陆地都神奇地消失了,尽管有时似乎有较小的一块土地。我应该注意,这种方法对简单得多的数据(例如,较少的点)非常有效 使用OGR的相交工具。我通过ogr2ogr甚至通过滚动自己的C ++工具都进行了尝试。两者都具有与QGIS相同的问题。对于简单的文件,它们也不会出现此问题,但是对于较复杂的文件,则不会通过。作为参考,我使用的是澳大利亚和新西兰的shapefile,大小不超过20mb,并且QGIS和OGR都无法对其进行“网格化”。 有人建议一次使用PostGIS,因为它具有交集功能-但PostGIS的ST_Intersect使用与OGR相同的GEOS后端。实际上,据我所知,它们都调用相同的函数,因此我认为PostGIS不会产生不同的结果。 我一直在寻找关于其他尝试方法的建议。我需要一个功能强大的应用程序或工具包,可以将高度详细的shapefile划分为图块。 编辑:添加一些更多的信息 针对Simbamangu: shapefile基本上是来自OpenStreetMap的海岸线数据。这是“ processed_p”文件的合并版本(因此不会拆分为图块),我通过给他们的开发人员列表发送了电子邮件。请注意,他们将瓦片分割成100km x 100km重叠的块并不一定是我想要的-我不希望重叠,我想自由选择网格大小,或者我只想使用默认处理的_p。 默认情况下,海岸线数据具有QGIS报告的几何误差。我使用一个小的工具将这些错误汇总在一起,使用发现的一些代码专门解决了这个问题(修复海岸线数据中的几何错误:https : //github.com/tudelft-gist/prepair)。使用此工具在文件上运行几乎可以修复QGIS发现的所有错误。我仅在清理文件后尝试进行相交。 我使用QGIS所做的正是:打开数据以确保它在QGIS中看起来不错。尝试通过使用具有指定间距的Vector Grid创建一层瓷砖,然后将这两层相交,将其分成多个瓷砖-不行。尝试使用较小的数据集-选择大洋洲(Aus,NZ)中的要素以尝试使用较小的数据集-此形状文件的大小小于20mb。再次尝试将其分割,不起作用。 我对OGR所做的事情:ogr2ogr直接使用带有spat_extent的'-spat'和'-clipsrc'选项。还写了一个可以在WKT上运行的小型C ++工具,因此我使用ogr2​​ogr将shapefile转换为WKT,然后将文本文件提供给我的应用程序。它遍历该文件并调用此处记录的Intersection()方法:http : //www.gdal.org/ogr/classOGRGeometry.html。我认为最终结果与直接使用ogr2​​ogr完全一样。 针对布伦特: 是的 一切都在WGS84纬度/经度中 我以为是相反的事实-对于给定的一组网格图块,与一个巨型多面体相交将花费更长的时间,而不是一堆可以在空间上更局部地定位于每个图块的零碎要素,但这是一个有趣的建议-我会尝试并报告。 在此过程中不会保留任何属性字段,我只对几何感兴趣。 我不确定,但是我想你是说我应该选择与给定网格图块重叠的多边形,然后执行相交。使用QGIS手动操作太麻烦了。我的工具已经通过边界框检查在一定程度上做到了这一点。速度有所提高,但是最终结果仍然很差,并且没有明显的不同。 这不是一个选择。现在,我正在尝试将数据划分为1度经度x 1度经度,并且我正在寻找一种适用于所有情况的通用/稳健方法。我尝试增加网格尺寸(即10x10)以查看是否可以获得更好的结果,并且看不到网格尺寸与输出质量之间的任何关联。 编辑#2: 我尝试了更多,总的来说,使用GEOS和QGIS(使用fTools,我不知道是否又使用GEOS)时,结果似乎都不可靠。我错误地指出网格的大小与结果无关—网格越大,结果越好(这是很好的认识,但仍然不是解决方案)。这是一个实际间隔开的网格的屏幕截图,该网格大部分可用,但在一个磁贴中部分失败: 几何图形很干净-QGIS使用“检查有效性”工具显示0错误。我不是要逐步解决这个问题。验证某些特征是否在视觉上不明显(且不会使用较小的图块)的情况下,无法通过如此大的数据集的交集不可行。

1
在线串上时,在随机鱼网的像元中以彼此指定的距离创建点
我们有一个陆地协议,在该协议中,我们收到一个1x1公里网孔的鱼网。一些单元格是随机选择的。我们需要在每个单元格中放置4个点,这些点也必须在路上。如果可能,则每个像元的每个点的最小距离必须为500m,否则,我们希望最大距离。 在第一次尝试中,我们使用ST_CreateFishnet将每个像元划分为四个500x500 m像元,然后将点放在子像元的质心,然后放在最近的道路(ST_ClosestPoint)上。我们得到了一些不错的结果,但是在下面的示例中,您可以看到点5离点6太近了,可以在左路上移动。 WITH r1 AS ( -- only sub-cells which intersects random cells SELECT id_maille, ROW_NUMBER() OVER() AS id_grille, fishnet_500.geomgrille FROM fishnet_500 JOIN t_mailles ON ST_Intersects(ST_Buffer(t_mailles.geom,-200), fishnet_500.geomgrille) -- buffer < 0 to not select neightbours ) , r2 AS ( -- cut roads in every cells SELECT id_maille, id_grille, …


3
使用ArcPy从模板要素类创建渔网?
我不能使用arcpy.CreateFishnet_management工具,因为使用shapefile定义参数“ templateExtent”不会自动填充参数“ originCoordinate”和“ yAxisCoordinate”。 import arcpy from arcpy import env env.overwriteOutput = True env.workspace = r"D:\Users\julia\erste_aufg" #Process: Create Fishnet outFeatureClass = r"D:\Users\julia\erste_aufg\at001l_wien\at001l_wien\wien.shp" cellSizeWidth = '200' cellSizeHeight = '200' templateExtent = r"D:\Users\julia\erste_aufg\at001l_wien\at001l_wien\at001l_wien.shp" arcpy.CreateFishnet_management(outFeatureClass, "", "", cellSizeWidth, cellSizeHeight, '0', '0', "", "NO_LABELS", templateExtent, "POLYGON") 它在ModelBulider中运行,因此在ModelBulider的后台运行着某些东西,当它具有“ templateExtent”时,它可以创建参数“ originCoordinate”和“ yAxisCoordinate”。仅通过参数“ templateExtent”如何使该工具在ArcPy中运行? 如果有人有解决方案,我将非常高兴,因为我需要使用脚本工具中的Fishnet,并且如果不这样做,因为最后会有一个循环,因此范围的值始终是不同的。 整个脚本的第一部分

4
用Python创建方格多边形shapefile?
我有以下坐标 minx, maxx, miny ,maxy = 448262.080078, 450360.750122, 6262492.020081, 6262938.950073 我希望使用python创建一个大小为1 m的正方形网格。 import math minx,maxx,miny,maxy = 448262.080078, 450360.750122, 6262492.020081, 6262938.950073 size = 1 def set_bbox(minx, maxx, miny, maxy, distx, disty): nx = int(math.ceil(abs(maxx - minx)/distx)) ny = int(math.ceil(abs(maxy - miny)/disty)) new_maxx = minx + (nx*distx) new_miny = maxy - (ny*disty) …
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.