当前位置: 首页 > wzjs >正文

桃城区网站制作公司艺考培训

桃城区网站制作公司,艺考培训,宣传片剪辑,洛阳已经开始群体感染了一、Shapefile基础概念 Shapefile是GIS领域标准矢量格式,由ESRI开发,包含三个核心文件: .shp:存储几何要素(点/线/面).shx:几何索引文件.dbf:属性数据表 需保证同名文件在同一目录…

一、Shapefile基础概念

Shapefile是GIS领域标准矢量格式,由ESRI开发,包含三个核心文件:

  • .shp:存储几何要素(点/线/面)
  • .shx:几何索引文件
  • .dbf:属性数据表
    需保证同名文件在同一目录(如roads.shp, roads.shx, roads.dbf)。

二、Python读取方案详解

1. pyshp库(轻量级首选)
import shapefilesf = shapefile.Reader("data/rivers.shp")  # 读取文件# 获取元数据
print(sf.shapeType)  # 几何类型(1=点,3=线,5=面)
print(sf.bbox)       # 地理范围 [minX, minY, maxX, maxY]# 遍历几何要素
shapes = sf.shapes()
for i, shape in enumerate(shapes):points = shape.points  # 坐标列表 [(x1,y1), (x2,y2)...]parts = shape.parts    # 多部件索引(如岛屿多边形)# 示例:打印第一条线的首点坐标if i == 0: print("首点坐标:", points[0])# 读取属性表
records = sf.records()
for rec in records:print(rec["NAME"], rec["LENGTH_KM"])  # 字段名需实际存在
2. geopandas库(数据分析推荐)
import geopandas as gpdgdf = gpd.read_file("data/countries.shp")  # 自动解析几何+属性# 核心操作
print(gdf.head())          # 查看前5行数据
print(gdf.crs)            # 坐标系(如EPSG:4326)
gdf.plot()                # 自动绘制地图# 属性查询
asia = gdf[gdf["CONTINENT"] == "Asia"]  # 筛选亚洲国家
asia.to_file("asia.gpkg", driver="GPKG")  # 导出为GeoPackage
3. GDAL/OGR库(高性能专业级)
from osgeo import ogrds = ogr.Open("data/lakes.shp")
layer = ds.GetLayer(0)  # 获取第一层# 遍历要素
for feat in layer:geom = feat.GetGeometryRef()  # 几何对象name = feat.GetField("NAME")  if geom.GetGeometryType() == ogr.wkbPolygon:area = geom.Area()  # 计算多边形面积print(f"{name}: {area:.2f} km²")# 读取空间参考
spatial_ref = layer.GetSpatialRef()
print(spatial_ref.ExportToWkt())  # 输出WKT格式坐标系

三、关键问题解决方案

  1. 中文路径/乱码处理

    # pyshp
    sf = shapefile.Reader("中文/道路.shp", encoding="gbk")# GDAL
    gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES")
    gdal.SetConfigOption("SHAPE_ENCODING", "UTF-8")
    
  2. 批量读取大型文件

    # 分块读取降低内存
    with shapefile.Reader("large_file.shp") as sf:for i in range(0, len(sf), 1000):  # 每次处理1000条batch = sf.shapeRecords()[i:i+1000]for rec in batch:process(rec.shape, rec.record)
    
  3. 坐标系转换

    # geopandas示例
    gdf = gdf.to_crs("EPSG:3857")  # 转Web墨卡托投影
    

四、工具对比与选型建议

安装命令适用场景优势
pyshppip install pyshp轻量读取/基础操作无依赖、API简单
geopandaspip install geopandas空间分析/数据清洗集成pandas,支持空间运算
GDALpip install GDAL专业GIS开发/坐标系转换支持格式多,功能强大

💡 选型建议

  • 快速查看数据 → pyshp
  • 数据分析/可视化 → geopandas
  • 坐标转换/格式处理 → GDAL

五、进阶技巧

  1. 写入Shapefile

    # pyshp写入示例
    w = shapefile.Writer("new_data.shp", shapeType=shapefile.POLYLINE)
    w.field("ROAD_ID", "N")  # 添加数字字段
    w.line([[[102, 35], [103, 36]]])  # 添加线段
    w.record(101)  # 对应属性
    w.close()
    
  2. 空间计算

    # geopandas计算缓冲区
    rivers = gpd.read_file("rivers.shp")
    buffered = rivers.geometry.buffer(0.01)  # 创建1km缓冲区
    
  3. 可视化强化

    import matplotlib.pyplot as plt
    fig, ax = plt.subplots()
    gdf.plot(ax=ax, column="GDP", legend=True, cmap="viridis")
    plt.savefig("map.png", dpi=300)
    
http://www.dtcms.com/wzjs/112550.html

相关文章:

  • 爱的网站郑州优化网站关键词
  • 公众号做微网站吗郑州seo外包阿亮
  • 返利网一类的网站怎么做台州网站建设平台
  • 成立一间网站开发公司seo教程有什么
  • 遵义哪里有做网站的怎么制作网站
  • 网络建设公司有哪些泸州网站seo
  • 网站建设尚品天津百度关键词排名
  • tp框架可以做网站吗sem和seo区别与联系
  • 网站源码偷取工具百度指数的搜索指数代表什么
  • 品牌网站建设维护互动营销成功案例
  • 网站被301搜索引擎优化案例分析
  • 什么网站专做韩国美妆批发的广东疫情最新消息今天又封了
  • 网页排版设计模板优化公司流程制度
  • 网站首页的图标是怎么做的网络营销促销方案
  • 手机网站菜单栏怎么做最新长尾关键词挖掘
  • 廊坊网站制作公司谷歌seo零基础教程
  • 哈尔滨做网站价格百度推广客户端官方下载
  • 做网站js是什么windows7系统优化工具
  • 珠海市横琴建设局网站搜索引擎优化
  • 有什么网站可以做logo赚钱怎样免费建立自己的网站
  • 专业做网文的网站太原百度关键词优化
  • 如何做好网站的建设与维护seo技巧是什么
  • h5页面免费制作百度seo原理
  • 网站工具查询东莞网站建设seo
  • 快捷的网站建设软件seo具体优化流程
  • 如何建设网站论坛互联网销售是做什么的
  • wh网站建设做优化的网站
  • 芜湖市建设办网站今日新闻10条简短
  • 莱芜可靠的网站建设比百度好用的搜索引擎
  • 保定专门做网站seo外链推广