如何在Python中将WKB字符串转换为WKT或GeoJSON?
在Python中实现WKB转WKT/GeoJSON操作
当然可以通过Python完成WKB到WKT或GeoJSON的转换,常用工具是Shapely(处理几何对象)和GeoPandas(批量地理数据处理),以下是具体实现方法:
方法一:使用Shapely库
Shapely是Python处理几何对象的核心库,直接支持WKB与WKT互转,也能导出GeoJSON格式。
步骤1:安装依赖
pip install shapely
步骤2:转换代码示例
from shapely import wkb # 定义你的WKB字符串 s1 = "0103000020E6100000010000000F000000BE63303EF1D551C078E289F14742454073F7B8FAD3D551C04B98F57E0F424540FC0EA22ED4D551C04ADE36890F424540ECEB53ACD5D551C07FE2CBCA0F424540D168512BD7D551C07F2DF9F80F42454043DB28ABD8D551C0A108AD13104245406D5A632BDAD551C01D42E31A104245408D378FABDBD551C0D9AB970E10424540AD23382BDDD551C008C1CFEE0F424540C61DEBA9DED551C077EC92BB0F4245403BD33327E0D551C02043F2740F424540E58DA0A2E1D551C0A4CA001B0F4245406245BE1BE3D551C09921DDAD0E424540C8E232ADF7D551C01C11F7CA4A424540BE63303EF1D551C078E289F147424540" s2 = "0103000020E610000001000000060000009F64481FFD3A57C0E3AFF8C1EF7546407CEFEB30FD3A57C00AF4140AE375464018F55F07013B57C06018D414E37546407903F73F023B57C0BDF93E18E37546405F31E72D023B57C08D827D20F07546409F64481FFD3A57C0E3AFF8C1EF754640" # 将十六进制WKB字符串转为字节流,再加载为Shapely几何对象 geom1 = wkb.loads(bytes.fromhex(s1)) geom2 = wkb.loads(bytes.fromhex(s2)) # 转换为WKT格式 wkt1 = geom1.wkt wkt2 = geom2.wkt print("WKT结果:") print(wkt1) print(wkt2) # 转换为GeoJSON格式(Shapely内置GeoJSON接口) geojson1 = geom1.__geo_interface__ geojson2 = geom2.__geo_interface__ print("\nGeoJSON结果:") print(geojson1) print(geojson2)
方法二:使用GeoPandas库
如果需要批量处理WKB数据并导出标准GeoJSON文件,GeoPandas会更便捷:
步骤1:安装依赖
pip install geopandas
步骤2:批量转换代码示例
import geopandas as gpd from shapely import wkb # 批量处理WKB字符串 wkb_strings = [s1, s2] geoms = [wkb.loads(bytes.fromhex(s)) for s in wkb_strings] # 创建GeoDataFrame统一管理 gdf = gpd.GeoDataFrame({'geometry': geoms}) # 生成WKT列 gdf['wkt'] = gdf.geometry.wkt # 导出为GeoJSON文件 gdf.to_file('output.geojson', driver='GeoJSON') # 打印WKT结果 print(gdf['wkt'])
以上两种方法均可替代在线工具完成转换,且支持批量处理大量WKB数据。
内容的提问来源于stack exchange,提问作者Tarique
相关产品推荐
相关产品推荐

