(可选)加载到SQLShapeFile数据库中

shapefile-to-sqlite的Python项目详细描述


形状文件到sqlite

PyPICircleCILicense

将shapefile加载到SQLite(可选的spacealite)数据库中。在

项目背景:Things I learned about shapefiles building shapefile-to-sqlite

如何安装

$ pip install shapefile-to-sqlite

如何使用

可以对shapefile文件运行此工具,如下所示:

^{pr2}$

这将在文本列中将几何图形作为GeoJSON加载。在

与SpatiaLite一起使用

如果有SpatiaLite可用,则可以将它们作为空间几何体加载,如下所示:

$ shapefile-to-sqlite my.db features.shp --spatialite

数据将根据shapefile的名称加载到名为features-的表中。您可以使用--table指定一个替代表名:

$ shapefile-to-sqlite my.db features.shp --table=places --spatialite

SpatiaLite将在以下模块中搜索位置:

  • /usr/lib/x86_64-linux-gnu/mod_spatialite.so
  • /usr/local/lib/mod_spatialite.dylib

如果已将模块安装在其他位置,则可以使用--spatialite_mod=xxx选项指定位置:

$ shapefile-to-sqlite my.db features.shp \
    --spatialite_mod=/usr/lib/mod_spatialite.dylib

您可以使用--spatial-index选项在geometry列上创建空间索引:

$ shapefile-to-sqlite my.db features.shp --spatial-index

如果使用--spatialite-mod或{},则可以省略--spatialite。在

投影

默认情况下,此工具将尝试将shapefile中的几何图形转换为WGS 84投影,以便与GeoJSON specification最佳一致。在

如果希望它将数据保留在shapefile使用的任何投影中,请使用--crs=keep选项。在

通过将数据传递给--crs选项,可以将数据转换为另一个输出投影。例如,要转换为EPSG:2227(加州3区),请使用--crs=espg:2227。在

--crs选项接受的格式的完整列表是documented here。在

正在提取列

如果您的数据包含具有少量重复值的列(例如负责地块的特定机构的名称),则可以使用-c选项将这些列提取到由外键引用的单独的查找表中:

$ shapefile-to-sqlite my.db features.shp -c agency

这将创建一个包含idname列的agency表,并将在主表中创建agency列作为对该表的整数外键引用。在

-c选项可以多次使用。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么只为字符数组重载println方法,而不为字符串、整数等其他数组重载?   java将快速线程返回到池中,而不是等待慢速线程   创建jar文件时java SwingWorker不工作   java如何将依赖注入RabbitListener   java如何在gradle任务中通过scp复制目录?   java在MySql数据库中创建表时,遇到NullPointerException   java HTTP Status 500 Servlet执行引发异常   在JAVA中对arraylist使用继承时出错   java PowerMockito未完成存根异常   如果没有错误/警告增加到某个极限,java是否停止在eclipse中构建项目或使用maven?   java Robolectric如何测试DateFormat。getBestDateTimePattern()   google云平台GCP数据存储Java API,构建一个空值实体   VerifyListener和FocusListener之间的java冲突   安卓是否可以在Java中的另一个方法内部强制调用一个方法?   JavaWindows7、JDK1.8、SpringBoot应用程序JAR在方法安全性方面占用了大量时间。getProviders()返回   Bean提供程序的java错误消息   java Slick动画每帧必须有一个持续时间   java无法在Trie中设置isLeaf标志   java为什么JVM不能创建包含main方法的类的对象,以便从该类访问main方法,如果它具有该类的名称?   java Apache Camel+CXF端点身份验证