当前位置: 首页 > 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.jsqmd.com/news/170068/

相关文章:

  • 2025年终产业园区推荐:潮汕地区TOP5产业集聚平台深度评测与排名揭晓 - 十大品牌推荐
  • MIMIC-III临床数据集构建终极指南:从零开始创建机器学习基准
  • 基于AI+大数据的招聘网站数据分析与可视化系统
  • Docker安装TensorFlow-v2.9镜像全流程图文教程
  • 5分钟精通pot-desktop:你的跨平台翻译神器终极配置手册
  • 使用Miniconda-Python3.11镜像构建可复现的PyTorch科研环境
  • 基于TensorFlow 2.9的深度学习镜像:高效支持Transformer模型训练与推理
  • 在云服务器上部署TensorFlow-v2.9镜像的完整步骤(含SSH连接图解)
  • 如何使用TensorFlow-v2.9镜像一键搭建深度学习开发环境?详细教程来了
  • Pose-Search:5分钟快速掌握AI人体姿势识别与图像检索系统
  • 2025年终产业园区推荐:主流园区横向测评与5家高口碑实力榜单 - 十大品牌推荐
  • 5分钟快速上手:SimpleMDE Markdown编辑器的完整使用指南
  • 金融科技软件测试的双重使命:在合规枷锁与安全防线间架桥
  • Whisper JAX:70倍语音识别加速的实战指南
  • 123云盘会员特权免费解锁终极教程:5分钟快速上手指南
  • PKC η 重组兔单抗:如何成为精准探索细胞信号传导的关键工具?
  • 用sklearn随机森林预测糖尿病
  • OpenCore配置终极指南:零基础快速搭建Hackintosh系统
  • 写一篇爆款AI技术博客,悄悄为你的GPU销售引流
  • AlphaFold 3蛋白质结构预测完整指南:快速掌握AI生物学核心技术
  • 如何快速掌握视频稳定技术:新手必备的完整教程
  • 2025年终水景工程服务商推荐:技术实力与全周期服务双维度实测TOP5榜单 - 十大品牌推荐
  • 无线安全工具终极指南:无需密码的WiFi安全测试完整教程
  • 5分钟快速上手:跨平台翻译工具pot-desktop的终极效率指南
  • Automa智能元素定位技术:网页自动化精准操作指南
  • GitHub Project项目管理看板|Miniconda-Python3.11进度跟踪
  • Linux系统下Miniconda-Python3.11镜像的PyTorch安装详细步骤
  • Pose-Search:重新定义人体姿势识别的智能搜索革命 [特殊字符]
  • TensorFlow-v2.9镜像安装全攻略:从零开始配置深度学习环境
  • 30分钟快速搭建智能图书馆管理系统:从零到精通的完整指南