Questions tagged «shapefile»

矢量数据存储格式,用于存储地理特征的位置,形状和属性。当ESRI开发它时,通常称为“ ESRI shapefile”。

4
导入.shp到PostgreSQL吗?
我想将一个shp文件导入postgreSQL。首先,我创建sql文件,然后运行PostgreSQL。要创建sql文件,我在Windows cmd中运行以下命令: shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql 然后运行: psql -d postgres -U postgres -p 4321 -f worldcountries.sql 但结果是: psql:worldcountries.sql:21:错误:函数addGeometrycolumn(未知,未知,未知,未知,未知,整数)不存在

2
如何在QGIS中分割非连续要素?
我有一个shapefile具有不连续的功能。我想从右边的区域分割左边的区域。但是,QGIS的“拆分要素”工具要求您在要素上画一条线。当我在此功能的两个区域之间划一条线时,它什么也没做。 我应该如何拆分此功能? 这是一个屏幕截图。我要拆分的功能为黄色。
14 qgis  shapefile 

5
存在哪些深入的空间数据库系统教程?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 有没有一个很好的教程,它在没有任何背景假设的情况下,深入地解释了GIS和空间数据库系统(例如PostGIS)的内部结构?我正在特别寻找问题的答案,例如: GIS中的几何是什么? 如何代表? 给定纬度/经度坐标,我需要对其执行哪些操作才能使其达到可调用诸如ST_contain PostGIS之类的状态以检查多边形是否包含纬度/经度坐标的状态? 我对一般的关系数据库系统有一些经验,但是对GIS或空间数据库范例没有任何背景知识。

1
使用python向TOC添加层
我一直在努力在TOC中添加图层。我设法添加了单层,但需要遍历文件夹并添加所有层。我根本无法添加Shapefile。仅图层文件。以下是我所在位置的代码: for layer in shp_List: mxd = arcpy.mapping.MapDocument("CURRENT") dataFrame = arcpy.mapping.ListDataFrames(mxd, "*")[0] outlayer = lyr layerfile = os.path.join(base_Folder, lyr + ".lyr") arcpy.MakeFeatureLayer_management(layer, outlayer) arcpy.SaveToLayerFile_management(outlayer, layerfile, "ABSOLUTE") addlayer = arcpy.mapping.Layer(layerfile) arcpy.mapping.AddLayer(dataFrame, addlayer, "BOTTOM") #addLayer = arcpy.mapping.Layer(layer) #arcpy.mapping.AddLayer(dataFrame, addLayer, "BOTTOM") #arcpy.RefreshTOC() #arcpy.RefreshActiveView() del addlayer, mxd 上面的代码会将每一层添加到目录中,然后将其删除,然后添加下一层。整个脚本完成后,目录中什么都没有了。我尝试将此脚本添加到模型中并创建一个派生的输出参数,然后将其作为模型参数添加,并选中“添加到显示”。我还检查了地理处理选项,以确保选中了要添加到显示的框。我正在运行Arc 10(无Service Pack)。有人可以帮忙吗?

4
shapefile中的长线是否被视为测地线或二维latlong空间中的直线?
是否有关于线如何连接shapefile格式的顶点的定义? 在最简单的情况下,想象一条只有2个点的线,从40,-118到40,-112-在美国是随机的-使用标准WGS84地理坐标系。这是.prj文件的内容: GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] 该点是线的北还是南,是40.1,-116吗? 如果我们认为线是在latlong空间中线性插值的,则它遵循40度平行线(小圆圈),并且该点位于线的北部。 如果我们认为线是地球表面上的最短路径,则它是一条测地线(大圆),线中部的最大纬度高于40.1度。然后,该点位于线的南部。 还是仅仅是不确定的?由于shapefile格式没有曲线的概念,只有连接线的直线段。需要对线进行密实(沿线添加点)以阐明此答案。 如果我在QGIS中创建这样的场景,则该线沿40度平行线移动,并且会告诉我答案是1。但是我不会将其作为确定的答案,而是希望听到更可靠的答案。


3
将shapefile数据集中到数据库中
我已经从各种不同的GIS项目中获得了数百个shapefile,我希望开始将它们合并到一个数据库平台中,目前正在使用Postgres / PostGIS进行尝试。 几乎没有任何数据是标准化的-这意味着它是许多相同的数据类型,但是特定的属性名称/类型不匹配。 我应该从哪里开始解决这个问题?我是否应该开发一个标准模型将每个shapefile迁移到第一个模型(例如Hydro_line,transport_line,Hydro_poly标准等)? 一种替代方法是仅将每个shapefile分别导入Postgres,因此每个shp都将成为数据库中的表,但是就性能和组织而言,我不确定。感觉有点像延迟不可避免的事情... 对处理这个艰巨的任务有什么建议吗?


1
将栅格从纬度/经度重新投影到R中的UTM?
我必须将其转换为UTM才能使缓冲区正常工作。 wets<-readOGR(dsn=".",layer="shapefile") r.raster <- raster() extent(r.raster) <- extent(wets) res(r.raster) <- 100 wets.r <- rasterize(wet,r.raster) plot(wets.r) wetsbuf<-buffer(wets.r,width=500) 在缓冲区创建过程中(这是代码的最后一行),它给出以下警告: Warning message: In couldBeLonLat(x) : raster has a longitude/latitude CRS, but coordinates do not match that 这是信息 summary(wets.r) layer Min. 1 1st Qu. 1 Median 2 3rd Qu. 9 Max. 11 NA's 52629 …

3
使用R中的Polygon shapefile从栅格中提取栅格
我是R的新手,正在使用raster包。我从现有栅格文件中提取多边形时遇到问题。如果我用 extract(raster, poly_shape) 栅格上的函数始终会创建包含数据的列表。我真正想要的是提取另一个可以再次使用ArcGIS加载的栅格文件。阅读更多内容后,我认为裁剪功能才是我真正需要的。但是当我尝试使用此功能时 crop(raster, poly_shape) 我收到此错误: Error in .local(x, y, ...) : extents do not overlap In addition: Warning message: In intersect(extent(x), extent(y)) : Objects do not overlap 这两个函数的文件raster和poly_shape相同。你能告诉我这里有什么问题吗?裁剪功能创建另一个栅格而不是列表是否正确? 编辑:range()函数不适用于我。我仍然遇到相同的错误。但是我确信这两个数据集会重叠!随着 extract(raster, poly_shape) 我从中得到正确的数据。只是列表而不是像我想要的栅格一样。我之前只是将数据集加载到ArcGIS中,它们非常吻合,所以我没有检查投影。现在我尝试 projection(raster) # "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs" projection(poly_shape) # "+proj=utm +zone=32 +ellps=GRS80 +units=m …
13 raster  shapefile  r  line 

3
使用Python检查点是否在多多边形内
我已尝试使用诸如shapefile,fiona和ogr之类的库的几个代码示例,以尝试检查点(x,y)是否落在用ArcMap创建的多面体的边界内(从而以shapefile格式)。但是,尽管这些示例对于常规的单个多边形shapefile也能很好地工作,但是它们都不能很好地与multipolygons配合使用。我尝试过的一些代码片段如下: # First example using shapefile and shapely: from shapely.geometry import Polygon, Point, MultiPolygon import shapefile polygon = shapefile.Reader('shapefile.shp') polygon = polygon.shapes() shpfilePoints = [] for shape in polygon: shpfilePoints = shape.points polygon = shpfilePoints poly = Polygon(poly) point = Point(x, y) # point in polygon test if polygon.contains(point): print …

1
使用ogr2​​ogr将shapefile导入postgis会给出:无法打开数据源
我想使用ogr2​​ogr以便在postgis数据库中导入shapefile。我已经成功安装了ogr2ogr,并且从pgsql运行了以下命令: ogr2ogr -f "PostgreSQL" PG:"host=localhost user=user_1 password=***** dbname=imports" world_boundaries.shp 我得到的是一条错误消息: Unable to open datasource `world_boundaries.shp' with the following drivers: --a list of drivers follows (ESRI Shape File etc.) 我也尝试定义了shapefile的完整路径,但得到了相同的消息。 我也尝试运行: ogrinfo world_boundaries.shp 一样。 解决文件权限问题后,出现以下错误: ERROR 1: AddGeometryColumn failed for layer world_boundaries, layer creation has failed. ERROR 1: Terminating translation prematurely …

2
使用gSimplify简化了带有空间多边形的writeOGR
我正在使用gSimplify(rgeos包)来简化shapefile的几何形状。该功能运行良好,但现在我无法在新的shapefile中写入输出。我尝试了一些方法: writeOGR(simplyshape, file, driver="ESRI Shapefile", layer='test') 我懂了 obj必须是SpatialPointsDataFrame,SpatialLinesDataFrame或SpatialPolygonsDataFrame 与: writePolyShape(simplyshape, file) 我得到: 错误:is(x,“ SpatialPolygonsDataFrame”)不是TRUE
12 shapefile  r  simplify  rgdal 

2
从熊猫数据框制作shapefile?
我想使用lon和lat行从Pandas Data Frame构造一个shapefile。 我有一个csv文件,并用熊猫对其进行处理以制作一个易于处理的数据框 是否可以在不逐行循环的情况下执行此操作?

4
如何为墓地建模-每个死者一个点或每个坟墓一个点?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 这是我先前关于我们的项目的问题的延续,该项目是关于如何经济地摆脱GIS系统中墓地的实现的…… 在墓地上,我们可以找到 普通坟墓:最多2人 家庭坟墓:超过2个,有些多达20个(天主教会的姐妹们……) 战争纪念碑:约30人 灰烬飞散区:无限制,从100人开始 带有Ur骨的田地:每个地点最多2个 带有骨灰的墙壁:高度可达3 那么定义以下内容的最佳方法是: 每个人作为一个POINT对象 每个坟墓都作为POINT对象,人物是属性的一部分 我会为每个人选择一个POINT对象: 一个简单的CSV文件,适合所有人。 列可以是例如:FirstName – FamilyName – YearDeceased 与坟墓人数无关 这样,即使是ASH SCATTERING AREA也可以进入文件 最终,必须编写一些代码以将其他人埋葬在同一坟墓中的搜索结果添加到搜索结果中 我看到的每个坟墓作为POINT对象的并发症: 每个ROW都需要一列,以显示坟墓中的最大人数。 这意味着由于只有几个人的坟墓,很多牢房将是空的 但是,ASH散射区域会怎样?100个人需要表格中的所有其他列… 将所有数据都保存在一个CSV文件中是不合理的,但是拥有更多文件会使事情变得更加复杂。 因此,欢迎发表评论:以人还是坟墓作为POINT对象?还是这些都不是,我是否需要另一种方式? 3年前,在我镇,他们有一个局为他们制作了SHP文件。我移交了那些文件,我注意到坟墓是作为多边形绘制的。这带有一个用于“坟墓数据”的DBF文件。正常的坟墓有4组坐标,似乎是逻辑。但是有些事情在我看来是荒谬的: 有一个“水wall墙”,上面画有六角形的lum骨,是一组六角形图形……这意味着每个图形都有6组坐标。 在“灰烬散布区”中,有一个带有少量矩形铭牌的柱子,他们为每个铭牌绘制了一个矩形POLYGON,带有4组坐标。在我看来,在这种情况下使用POLYGONS在数据库中显得有些过大。 除此之外,如果我错了,请使用以下命令纠正我: POLYGONS需要DBF文件,因此需要DBF编辑器(额外费用) POINTS只需要CSV文件,因此EXCEL就足够了(没有额外费用) 在大多数城镇中,死者的数据都存储在CSV文件中: 直接用EXCEL制作或 从基于DOS的程序导出,是在WIN95仍然存在时制作的。 继续在一个CSV文件中管理“人员数据”,而EXCEL避免了: 购买可以编辑DBF文件的软件 担心将“人员数据”导入到DBF文件中似乎并不总是很麻烦地将CSV中的数据导入,编辑和保存到DBF文件中,并且不会损坏您的数据。我读到,尤其是在使用ArcGis(ESRI)时,可能是这种情况。

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.