搭建网站用什么软件wordpress 文章 顺序
2026/4/18 18:06:53 网站建设 项目流程
搭建网站用什么软件,wordpress 文章 顺序,网站合作客户,越秀定制型网站建设Python数据处理#xff1a;如何将Excel/CSV中的WKT文本转换为Shapefile/GeoJSON——tablegis库df_to_gdf详解 前言 在地理数据处理中#xff0c;我们经常遇到一种尴尬的情况#xff1a; 从数据库#xff08;PostGIS, MySQL, ClickHouse#xff09;导出的数据#xff0c;或…Python数据处理如何将Excel/CSV中的WKT文本转换为Shapefile/GeoJSON——tablegis库df_to_gdf详解前言在地理数据处理中我们经常遇到一种尴尬的情况从数据库PostGIS, MySQL, ClickHouse导出的数据或者别人发来的CSV/Excel文件里面有一列长得像这样POINT (116.40 39.90)POLYGON ((116.3 39.9, 116.4 39.9, ...))这叫做WKT (Well-Known Text)格式。虽然它描述了地理形状但对Python的普通DataFrame来说它就是一串纯文本字符串无法直接进行地图可视化或空间计算如求面积、缓冲区。通常我们需要手动调用shapely.wkt.loads并配合geopandas进行转换步骤繁琐且容易出错比如坐标系问题。今天介绍tablegis库中的df_to_gdf方法一行代码将包含WKT文本的普通表格转换为标准的 GeoDataFrame方便导出为 Shapefile、GeoJSON 等格式。1. 场景痛点场景一数据库导出数据后端工程师丢给你一个 CSV里面全是POINT(...)你需要把它转换成shp文件给规划师画图。场景二数据可视化你想用 Python 做地图分析但pandas读取的数据无法直接 plot必须转成geopandas对象。2. 核心方法df_to_gdf这个方法专门用于“文本转几何对象”。安装pipinstalltablegis函数签名importtablegisastg gdftg.df_to_gdf(df,# 你的普通DataFramegeometrygeometry,# 包含WKT文本的那一列的列名crsepsg:4326# 坐标系默认为 WGS84 (EPSG:4326))它的作用自动解析指定列的 WKT 字符串。将其转换为真实的 Shapely 几何对象。自动设置坐标系CRS。智能重命名无论你原来的列名叫wkt_geom还是shape转换后都会统一规范为geometry方便后续兼容。3. 实战案例案例一CSV 转 Shapefile (最常见需求)假设你有一个data.csvidnamewkt_shape1A区POLYGON ((…))2B区POLYGON ((…))代码实现importpandasaspdimporttablegisastg# 1. 读取 CSVdfpd.read_csv(data.csv)# 2. 一行转换# 指定 wkt_shape 是存几何文本的列gdftg.df_to_gdf(df,geometrywkt_shape)# 现在 gdf 已经是 GeoDataFrame 了可以直接操作print(gdf.crs)# 输出: EPSG:4326print(type(gdf.geometry.iloc[0]))# 输出: class shapely.geometry.polygon.Polygon# 3. 导出为 Shapefilegdf.to_file(output_shapefile.shp,encodingutf-8)# 或者导出为 GeoJSONgdf.to_file(output.geojson,driverGeoJSON)案例二处理自定义坐标系如果你的 WKT 数据不是经纬度WGS84而是投影坐标比如 Web Mercator 3857 或 UTM你可以通过crs参数指定。# 假设数据是 Web Mercator 投影gdftg.df_to_gdf(df,geometrygeom,crsepsg:3857)# 转换后直接进行重投影到经纬度gdf_wgs84gdf.to_crs(epsg:4326)案例三结合 match_layer 使用通常df_to_gdf是数据处理的第一步。转换成功后你就可以用它来做空间分析了比如上面介绍的match_layer。# 1. 加载含 WKT 的 CSVdf_rawpd.read_csv(zones.csv)# 2. 转为 GeoDataFrame (面数据)gdf_zonestg.df_to_gdf(df_raw,geometrythe_geom)# 3. 此时它就可以作为 match_layer 的 layer 参数输入了# result tg.match_layer(df_points, gdf_zones, ...)4. 参数详解参数类型默认值说明dfDataFrame必填包含 WKT 文本列的 pandas DataFrame。geometrystr‘geometry’关键指定哪一列包含 WKT 文本。转换后该列会被解析并重命名为geometry。crsstr‘epsg:4326’指定结果的坐标参考系统。通常经纬度数据用 4326高德/百度坐标可能需要先转码tablegis也提供了坐标转换工具。总结df_to_gdf是打通“文本数据”与“空间数据”的桥梁。它极其简洁解决了新手在shapely和geopandas之间转换时常遇到的格式错误和坐标系丢失问题。一句话总结只要看到 Excel/CSV 里有POINT(...)或POLYGON(...)这种列直接用tg.df_to_gdf(df, geometry列名)把它变成能用的 GIS 数据本文基于 tablegis 库编写欢迎在 PyPI 下载使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询