首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从shp文件中检索和弦

如何从shp文件中检索和弦
EN

Stack Overflow用户
提问于 2022-01-23 23:20:42
回答 2查看 268关注 0票数 -1

我正在处理历史风迹数据,这些数据可以找到这里

如何使用比什普正确地检索沿跑道的所有lat和lon?

我跟踪了PyShp上的文档并错误地导入了'lin.shp‘文件类型,但是在Google上手动检查时返回的坐标是不正确的。

其次,我导入了'pts.shp‘文件类型,当我尝试运行'bbox’函数时,它返回一个AttributeError: 'Shape' object has no attribute 'bbox'

EN

回答 2

Stack Overflow用户

发布于 2022-06-27 14:43:53

这段代码应该可以完成

代码语言:javascript
复制
lin_shp = shapefile.Reader("al212021_best_track/AL212021_lin")
coords = [s.points for s in lin_shp.shapes()]
lin_shp.close()

al212021_best_track dir的内容如下

代码语言:javascript
复制
 .

 ..

 AL212021_lin.dbf

 AL212021_lin.prj

 AL212021_lin.shp

 AL212021_lin.shp.xml

 AL212021_lin.shx

 AL212021_pts.dbf

 AL212021_pts.prj

 AL212021_pts.shp

 AL212021_pts.shp.xml

 AL212021_pts.shx

 AL212021_radii.dbf

 AL212021_radii.prj

 AL212021_radii.shp

 AL212021_radii.shp.xml

 AL212021_radii.shx

 AL212021_windswath.dbf

 AL212021_windswath.prj

 AL212021_windswath.shp

 AL212021_windswath.shp.xml

 AL212021_windswath.shx

https://pypi.org/project/pyshp/#reading-geometry

票数 1
EN

Stack Overflow用户

发布于 2022-01-24 15:56:26

您正在正确地检索坐标。谷歌地球要求所有数据为EPSG:4326 - WGS84地理。NOAA将该数据转换为KML文件,但是shapefiles处于一个深奥的投影中,QGIS将其标识为该页面上的shapefiles的“基于Authalic投影的未知数据”。您发送的数据下载页面的一半处的地图可能在该投影中。

你的选择是:

  1. 下载KMZ,使用python解压缩它,并使用Python的内置XML工具解析里面的KML文件,以提取EPSG:4326点。
  2. 想出数学方法,自己把分数转换成你需要做的任何投影。纯Python,但这将是困难的。
  3. 从使用纯Python切换到使用Fiona/Shapely重新投影点。
  4. 从Fiona/Shapely降一级,并使用GDAL/OGR Python绑定来重新规划这些点。
  5. 使用从Python调用的GDAL/OGR命令行工具来重新投影这些点。

您的项目和环境限制加上您对这些工具的熟悉程度,将决定这些选项中哪一个是最好的。

基于您在pts.shp bbox上遇到的错误,问题是您试图在一个只包含一个点的形状记录上获得一个边界框。边框只适用于每个记录至少有两个点的shapefile类型,例如此数据集中的行shapefile。在每个shapefile类型上,始终可以在文件级别上获得边框。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70827438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档