从.prj文件或wkt快速获取epsg代码

epsg-ident的Python项目详细描述


概述

epsg_ident是一个命令行实用程序和python模块,用于 识别EPSG Registry Code 来自通常与ESRI Shapefiles关联的.prj文件。它与 sqlite3数据库,包含Well-known Text字符串到epsg的映射 代码,其中大部分是从an ESRI website手动获取和清除的。 不过,它还不完整,如果你用wkt测试它的话 字符串不在数据库中,它将搜索 prj2epsg.org原料药。如果api返回 匹配,则返回该代码并将其保存到sqlite数据库。处理 目前计划了几个部分匹配,但尚未实现。

tl;dr

命令行用法

$ epsg_ident seattle_land_use.prj
2285

python模块用法

>>>fromepsg_identimportEpsgIdent>>># Read .prj file from the filesystem>>>ident=EpsgIdent()>>>ident.read_prj_from_file('seattle_land_use.prj')>>>ident.get_epsg()2285>>># Paste in Well-Known Text string directly>>>ident=EpsgIdent(prj="""PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192]]""")>>>ident.get_epsg()2285

背景

将投影视为空间数据的字符编码。空间 缺少关于其坐标系信息的数据 被投影几乎是无用的,就像你在 未知编码。

epsg_ident epsg数据库,您可能正在寻找类似python-epsg

相反,epsg_ident是为那些希望快速识别epsg代码的人准备的。 形状文件的形状文件的,尤指当importing into PostGIS时。当然,你可以用ogr2ogr 将所有内容转换为网络友好的投影,如:

$ ogr2ogr -f PostgreSQL -t_srs EPSG:4326 PG:dbname=seattle seattle_land_use.shp

但是将空间数据从一个投影转换到另一个投影是一种有损操作 会导致坐标漂移。理想情况下,您可以存储原始数据 在其原始坐标系中,然后根据需要转换副本。

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

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储