爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 17717|回复: 2

[求助] cartopy如何读取shapefile的投影信息

[复制链接]

新浪微博达人勋

发表于 2021-8-14 19:26:43 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 sam_doggy 于 2021-8-14 19:28 编辑

cartopy在读取shapefile的时候不能默认加载其中的.prj文件,也就是说无法自动获取其投影,我现在想到的做法是用geopandas读取后转换投影,不知道有没有方法不依赖geopandas库读取呢(应该暴力破解正则匹配prj文件内容也行,但是我不太了解.prj文件的格式,也不想重复造轮子)
  1. import geopandas as gpd
  2. shdf = gpd.read_file(filename)
  3. shdf = shdf.to_crs("EPSG:4326")
  4. shape_feature = cfeature.ShapelyFeature(shdf.geometry, ccrs.LambertConformal(), edgecolor='r', facecolor='none')
  5. ax.add_feature(shape_feature)
复制代码

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-8-14 21:49:51 | 显示全部楼层
本帖最后由 edwardli 于 2021-8-14 21:51 编辑

1、解析WKT文本的工作可以从数据格式入手,自己写解析代码
2、或者使用GDAL、osgeo,基本是一句话实现,转为Proj.4子串,进而解析
3、但是,第一步的成本是高昂的,第二步的成本和使用Fiona或者geopandas进行坐标转换是一样的。
综上所述:cartopy不是全能的,也没有任何一个包是全能的;
专业的事情得找专业的包干,这也是Python所以强大的原因:开源、丰富;
考虑开发/研究成本,能解决问题的代码就是好代码。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-15 13:51:15 | 显示全部楼层
本帖最后由 sam_doggy 于 2021-8-15 13:54 编辑
edwardli 发表于 2021-8-14 21:49
1、解析WKT文本的工作可以从数据格式入手,自己写解析代码
2、或者使用GDAL、osgeo,基本是一句话实现,转 ...

我看了cartopy的项目库,发现是在待开发的功能当中,我本以为这个是自带的,因为prj明显是shp文件的一部分,检查了半天才发现是shp投影的问题,,感觉浪费了不少时间,看了一下开发进度发现比想象中的成本高很多,这个停滞了几年了,确实应该把专业的功能交给专业库。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表