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

Python轻松绘制多边形与星形地理图层飞镖、闪光、五角星、六角形…n星、三角形、正方形、五边形、六边形、n边形支持旋转

经纬度数据创建多边形内角(星形)或者外角(多边形)生成图层python

三角到n角(飞镖、闪光、五角星、六角形…n星)
3边到n边形(三角形、正方形、五边形、六边形)

什么是add_polygon方法?

add_polygon是tablegis库中的一个方法,用于在给定的经纬度点创建规则多边形。
这个方法可以帮助用户生成具有指定半径或边长的正多边形,适用于多种GIS应用场景,如影响范围分析、区域划分等。

如何导入和使用

pip install tablegis
importtablegisastg

方法参数详解

基本参数

  • df: pandas.DataFrame - 包含经纬度列的输入数据表
  • lon, lat: str - 经度和纬度列名,默认为’lon’和’lat’
  • num_sides: int - 多边形边数,必须≥3

核心参数

  • radius: float, str, or None - 多边形的半径(以米为单位),可以是标量值或列名
  • side_length: float, str, or None - 多边形的边长(以米为单位)
    注意side_length和radius选一个输入就行
  • interior_angle: float, str, or None - 内角,用于创建星形多边形
    注意interior_angle填写值后尽量使用radius外接圆半径,因为它没有边长了。

其他参数

  • rotation: float or str - 旋转角度(以度为单位),默认为0.0
  • geometry: str - 输出GeoDataFrame中几何列的名称,默认为’geometry’

实际应用案例

案例1:创建服务区域分析

假设你是一家连锁餐厅的运营分析师,需要为每个门店创建服务区域。使用[add_polygon](file:///d:/codetools/tablegis/tablegis/core.py#L532-L740)可以轻松生成半径为1公里的六边形服务区域:

importpandasaspdimporttablegisastg# 餐厅位置数据restaurants=pd.DataFrame({'name':['餐厅A','餐厅B','餐厅C'],'lon':[116.404,116.505,116.303],'lat':[39.915,39.816,39.714],'capacity':[100,150,120]# 作为半径参考})# 创建六边形服务区域(半径1公里)hexagons=tg.add_polygon(restaurants,lon='lon',lat='lat',num_sides=6,radius=1000)# 1000米

案例2:创建安全缓冲区

在城市规划中,需要为危险设施创建安全缓冲区。使用[add_polygon](file:///d:/codetools/tablegis/tablegis/core.py#L532-L740)可以创建三角形、四边形或圆形(多边形近似)的缓冲区:

# 危险设施数据hazardous_facilities=pd.DataFrame({'type':['化工厂','加油站','油库'],'lon':[121.4737,121.4837,121.4937],'lat':[31.2304,31.2404,31.2504],'safety_radius':[500,200,800]# 不同设施的安全半径})# 创建八边形安全缓冲区safety_zones=tg.add_polygon(hazardous_facilities,lon='lon',lat='lat',num_sides=8,radius='safety_radius')# 使用列中的半径值

案例3:创建蜂窝网络覆盖区域

电信公司需要模拟蜂窝网络的覆盖范围,六边形是理想的选择:

# 基站数据cell_towers=pd.DataFrame({'tower_id':['T001','T002','T003','T004'],'lon':[113.947,113.957,113.937,113.947],'lat':[22.545,22.555,22.535,22.525],'coverage_radius':[500,600,550,700]})# 创建六边形覆盖区域hex_coverage=tg.add_polygon(cell_towers,lon='lon',lat='lat',num_sides=6,radius='coverage_radius',rotation=30)# 旋转30度以优化覆盖

案例4:创建星形影响区域

在某些特殊情况下,需要创建星形区域来表示特殊的影响范围:

# 创建星形区域special_zones=tg.add_polygon(restaurants,lon='lon',lat='lat',num_sides=5,# 五角星radius=800,interior_angle=36)# 创建五角星形状

使用注意事项

1. 数据准备

  • 确保输入的DataFrame包含有效的经纬度列
  • 经纬度值必须在有效范围内(经度-180到180,纬度-90到90)
  • 检查数据中是否存在缺失值

2. 性能考虑

  • 多边形边数越多,计算越复杂,但视觉效果越接近圆形
  • 对于大量数据,建议分批处理以避免内存问题

3. 坐标系处理

  • 输出的GeoDataFrame使用EPSG:4326坐标系(WGS84)
  • 内部使用投影坐标系进行计算,以确保距离的准确性

实用技巧

动态半径设置

可以根据数据中的列动态设置半径:

polygons=add_polygon(df,radius='radius_column')

旋转多边形

通过设置不同的旋转角度,可以创建视觉上更吸引人的多边形:

# 随机旋转df['rotation']=np.random.uniform(0,360,len(df))polygons=tg.add_polygon(df,rotation='rotation')

组合使用

与其他tablegis功能组合使用:

fromtablegisimportadd_polygon,add_buffer# 先创建多边形polygons=add_polygon(df,num_sides=6,radius=500)# 然后在此基础上添加缓冲区buffered=add_buffer(polygons,distance=100)

总结

add_polygon是tablegis库中一个实用的方法,可以用于多种GIS分析场景。通过合理设置参数,可以创建各种形状的多边形,满足不同的业务需求。掌握这个方法将大大提高地理空间数据处理的效率和准确性。

进行城市规划、商业分析、安全区域设置还是网络覆盖模拟,或者单纯的画图/画画都可以

http://www.zskr.cn/news/185804.html

相关文章:

  • MIMIC-III临床数据集构建终极指南:从零开始创建机器学习基准
  • 2025年终产业园区推荐:潮汕地区TOP5产业集聚平台深度评测与排名揭晓 - 十大品牌推荐
  • 5分钟精通pot-desktop:你的跨平台翻译神器终极配置手册
  • 金融科技软件测试的双重使命:在合规枷锁与安全防线间架桥
  • OpenCore配置终极指南:零基础快速搭建Hackintosh系统
  • AlphaFold 3蛋白质结构预测完整指南:快速掌握AI生物学核心技术
  • 如何快速掌握视频稳定技术:新手必备的完整教程
  • Pose-Search:重新定义人体姿势识别的智能搜索革命 [特殊字符]
  • 2025年知名的聚脲/聚脲涂料厂家最新权威推荐排行榜 - 行业平台推荐
  • SSH连接自动重连脚本编写|Miniconda-Python3.11镜像稳定访问
  • MQBench模型量化终极指南:从零开始实现高效AI部署
  • xTaskCreate在UART驱动中的实际应用:新手教程
  • 运动控制算法十年演进(2015–2025)
  • 国产算力生态崛起:行业大模型训微调的 “自主可控” 实践之路
  • 智能体在车联网中的应用:第35天 车联网轨迹预测核心技术:从Social-LSTM到VectorNet的演进与实践
  • SSH代理跳转MultiHop连接Miniconda-Python3.11镜像服务器
  • Chart.js插件开发终极指南:从零到精通定制化图表
  • Chart.js插件开发终极指南:从入门到精通
  • Obsidian知识管理终极指南:从零构建你的第二大脑
  • Cowabunga:解锁iPhone个性化定制的无限可能
  • 2025年口碑好的标签发卡机厂家推荐及采购参考 - 行业平台推荐
  • Miniconda-Python3.11镜像环境变量作用范围说明(export/set)
  • 2025共振芯片专业公司TOP5权威推荐:市场份额解析与维护方法指南 - myqiye
  • GitHub Fork仓库同步上游|Miniconda-Python3.11镜像git rebase操作
  • PyTorch模型推理性能测试|Miniconda-Python3.11 timeit基准测量
  • vmware workstation pro v25中文破解版下载及安装使用教程
  • Vue Page Designer:用拖拽思维重新定义移动端页面开发
  • 2025年质量好的光伏ALD/ALD原子层沉积设备工艺表现榜 - 行业平台推荐
  • Python安装后import失败?Miniconda-Python3.11镜像路径诊断
  • Python安装包版本锁定|Miniconda-Python3.11镜像freeze技巧