将部分形状文件加载到Postgis/GeoDjango项目中

将部分形状文件加载到Postgis/GeoDjango项目中,django,gis,postgis,shapefile,geodjango,Django,Gis,Postgis,Shapefile,Geodjango,我有一个带有加拿大邮政编码的shapefile,但我只想加载一小部分数据。我可以加载整个数据文件并使用SQL或Django查询来修剪数据,但在我使用的速度较慢的机器上,加载过程大约需要2个小时 由于我实际上要查找的数据约占数据集的10%,因此这不是一个非常有效的过程 我遵循中的说明,特别是以下代码: from django.contrib.gis.utils import LayerMapping from geoapp.models import TestGeo mapping = {'nam

我有一个带有加拿大邮政编码的shapefile,但我只想加载一小部分数据。我可以加载整个数据文件并使用SQL或Django查询来修剪数据,但在我使用的速度较慢的机器上,加载过程大约需要2个小时

由于我实际上要查找的数据约占数据集的10%,因此这不是一个非常有效的过程

我遵循中的说明,特别是以下代码:

from django.contrib.gis.utils import LayerMapping
from geoapp.models import TestGeo
mapping = {'name' : 'str', # The 'name' model field maps to the 'str' layer field.
               'poly' : 'POLYGON', # For geometry fields use OGC name.
               } # The mapping is a dictionary
lm = LayerMapping(TestGeo, 'test_poly.shp', mapping)
lm.save(verbose=True) # Save the layermap, imports the data.
是否有一种方法仅导入具有特定名称的数据,如上面的示例所示


我仅限于Linux/OS X命令行,因此无法使用任何GUI工具。

如果所需的邮政编码在一段时间内不会更改,请尝试使用创建选定邮政编码的形状文件。如果您不熟悉QGIS,那么值得研究。在上传之前,我使用它为webapp准备文件,比如crs转换、编辑、属性表,也许还可以简化几何体

这里有大量的教程和帮助

如果您还没有这样做,请将此问题带到gis.stackexchange

希望这有助于你开始,并随时询问更多信息。不久前,我刚来到django/geodjango,非常感谢我所得到的所有帮助。Django不适合胆小的人


Michael

感谢这里和Postgis上的每一个人的帮助,特别是他们的帮助

下面这句话起了作用:

ogr2ogr PostalCodes.shp CANmep.shp -sql "select * from CANmep where substr(postalcode,1,3) in ('M1C', 'M1R')"
ogr2ogr带有GDAL
brew install gdal
将在OS X上安装gdal。如果您在另一个*nix系统上,以下程序将从源代码处安装它:

$ wget http://download.osgeo.org/gdal/gdal-1.9.2.tar.gz
$ tar xzf gdal-1.9.2.tar.gz
$ cd gdal-1.9.2
$ ./configure
$ make
$ sudo make install

感谢您的快速回复,geomajor56。不幸的是,我仅限于命令行(Linux/OSX),因此需要坚持使用Python/C/C++库等。当然,我也会在gis.stackexchange上试试这个问题。没有gis gui吗?真倒霉希望您知道,我已经安装了GDAL(这是Geodjango/Postgis安装所必需的)。通过GDAL/Fiona/Shapely可以做到这一点吗?如果是这样,你能给我指出正确的方向吗?干杯要创建新的shapefile,您应该浏览并查看示例。需要决定是按属性选择还是按几何体(边界框)选择,然后上载