我正在使用 GeoDjango 中的形状文件。现在我正在尝试为加载到形状文件中并将其保存到数据库中的代码编写测试。形状文件当前的特征数为 64,118。我想将其减少到少数,以便测试可以快速加载并确认一切正确。
由于形状文件不是文本格式,是否有免费的应用程序或库可以用来提取一些功能并将它们保存到新文件中?
我应该提到我没有许可证,也没有访问任何 ESRI 产品线的权限。
您有几个选项可以从 shapefile 导出记录子集。
任何开源桌面 GIS 都可以执行此操作。一些比较流行的是Quantum GIS、gvSIG或openJUMP。每个步骤的确切步骤会有所不同,但基本上您必须加载形状文件,开始编辑,选择您想要的记录并将它们导出到新的形状文件。
ogr2ogr工具是 GDAL 包的一部分,允许您在不同的地理矢量格式(或相同格式内)之间进行转换,您可以指定类似 SQL 的表达式来过滤原始数据集。
ogr2ogr -f "ESRI Shapefile" -where "id < 10" new_shapefile.shp huge_shapefile.shp
如果您正在使用 PostGIS 并且不想安装任何以前的应用程序,则可以使用pgsql2shp工具将 PostGIS 表的子集导出到 shapefile。
pgsql2shp -f "/path/to/shapefile" -h server -u user -P password postgisdb
"SELECT * FROM table WHERE id < 10"
编辑:在三个选项中的任何一个中,您都可以执行空间过滤器(即落在边界框内的要素),而不是基于属性的选择。