整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

用Python画中国地图,实现各省份数据可视化

一步:安装pyecharts

pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文使用了0.1.9.4版本

pip install pyecharts==0.1.9.4

第二步:读取数据

我的数据是在Excel表格里,如下图:

Execel数据

使用xlrd(没有就通过pip install xlrd安装)读取Excel表格中的数据

from pyecharts import Map
import xlrd
# 第一种方式,使用xlrd读取Execel表格中数据
data = xlrd.open_workbook('data.xlsx')
table = data.sheet_by_name('Sheet1')
province = table.col_values(0)[1:]
num = table.col_values(1)[1:]

如果各位没有相应的Execel文件,也不想新建一个,那就干脆自己定义一个字典,其中键是省份,值是对应的数量,然后再把对应的值取出来

# 第二种方式,直接自己写一个字典,然后取出相应数据
province_distribution = {'四川': 239.0, '浙江': 231.0, '福建': 203.0, '江苏': 185.0, '湖南': 152.0, '山东': 131.0, '安徽': 100.0, '广东': 89.0, '河北': 87.0, '湖北': 84.0, '吉林': 75.0,  
                         '上海': 70.0, '江西': 64.0, '广西': 64.0, '贵州': 64.0, '北京': 63.0, '云南': 53.0, '重庆': 49.0, '河南': 48.0, '陕西': 38.0, '山西': 37.0, '辽宁': 33.0, '新疆': 25.0, 
                         '内蒙古': 23.0, '黑龙江': 20.0, '天津': 19.0, '甘肃': 13.0, '海南': 9.0, '青海': 7.0, '宁夏': 4.0, '西藏': 0.0}
provice = list(province_distribution.keys())
num = list(province_distribution.values())

第三步:画图

chinaMap = Map(width=1200, height=600)
chinaMap.add(name="分布数量",
             attr=province,
             value=num,
             visual_range=[0, 239],
             maptype='china',
             is_visualmap=True)
chinaMap.render(path="中国地图.html")
  • 其中参数name指的是显示在地图正上方的标题,
  • attr就是一个包含了各省份名称的列表,
  • value就是包含了各省份对应数值的列表,
  • visual_range指的是整个数据中的数值范围,
  • maptype就是指的地图类型,
  • is_visualmap代表是否显示颜色

这时候就会生成一个名称为“中国地图.html”的文件,打开后如下图所示:

无省份名称地图

如果想保存为图片,可以点击地图右侧的下载按钮,因为隔着比较远,我在录屏的时候并没有把下载按钮录进来,但大家在自己电脑上肯定会看见的。

第四步:进一步优化

大家可以看到上图中各省份的名称只有在被鼠标选中的情况下,才能显示,并且所保存的图片也不会显示各省份名称,如果要显示各省份名称,则需要对html文件就行修改,推荐使用notepad++(一个文本编辑软件,直接去百度上下载,很简单的)打开“中国地图.html”文件,然后在第1923行的那个series中添加"label":{ "normal":{ "show":true}},并保存,如下:

修改html文件

然后再打开“中国地图.html”文件,就可以看到各省份的名称啦,如下图:

有省份名称地图


你以为你真的掌握了吗?请进传送门:用Python画江苏省地图,实现各地级市数据可视化

关注微信公众号“Python小镇”,发现更多干货知识!

024 年,巴西南部的大洪水造成了重大损失,特别是在南里奥格兰德州。在美国国家航空航天局(NASA)和其他科学来源的数据支持下,显示洪水深度的地图对于救灾和经济损失评估至关重要。

该地图显示了 2024 年 5 月 6 日巴西阿雷格里港以西地区洪水深度的估计值。

2024 年 4 月下旬开始,暴风雨袭击了巴西南部,造成了致命的破坏性洪灾,并一直持续到 5 月份的大部分时间。临近月底,南里奥格兰德州的部分地区仍被洪水淹没,受灾范围越来越明显。

洪水范围地图是评估洪水事件的一种方法。但有关洪水深度的信息也很有用,可能有助于救援和救灾行动,为有关道路关闭和交通便利性的决策提供信息,并有助于对损失和洪水风险进行分析。

该地图显示了 2024 年 5 月 6 日该州首府阿雷格里港以西地区的洪水深度估计值。最深的蓝色区域是当天洪水至少有 5 米深的地方。但大部分被淹没的洪泛区为浅蓝色,相当于 0.1 至 1 米(4 至 40 英寸)深。

美国国家航空航天局(NASA)喷气推进实验室(JPL)研究员、OPERA(面向终端用户的遥感分析观测产品)项目科学小组成员Dinuke Munasinghe说:"这对住房和人们的生计造成的损失仍然很大。"

据联邦紧急事务管理局估计,即使是 1 英寸的洪水也会给房屋造成数万美元的损失。

该地图的估算值来自洪水深度估算工具(FwDET)。这些估计值为过去的事件提供了重要信息,例如 2020 年袭击密歇根州中部的大范围洪水。在过去的飓风季节,它们也被用于实际操作。该工具依靠洪水范围数据和地面地形数据来模拟洪水深度。

该地图的洪水范围数据来自 OPERA Harmonized Landsat Sentinel-2 (OPERA DSWx-HLS)产品,地面地形数据来自航天飞机雷达地形图任务 (SRTM)。

美国国家航空航天局地球应用科学灾害计划 领域的开放式地图门户网站提供了此次事件的洪水地图,该门户网站已启动,以支持合作伙伴应对此次事件。

美国宇航局地球观测站洪水深度图,作者 Lauren Dauphin,使用 Dinuke Munasinghe/NASA/JPL-Caltech 处理和提供的 FwDET 数据。FwDET 的主要输入包括 Alexander Handwerger/NASA/JPL-Caltech 提供的 ARIA/OPERA DSWx-HLS 数据产品。FwDET 的开发工作由阿拉巴马大学的 Sagy Cohen 领导。

了解更多:

https://maps.disasters.nasa.gov/arcgis/home/webmap/viewer.html?layers=53dd7e74942c43f28b38878c42dcf1da

编译来源:ScitechDaily

. 概述

我们之前为大家分享过在三维地球开源平台离线加载卫星影像的方法,主要包括基于桌面端的OsgEarth开源三维地球和基于Web端的Cesium开源三维地球等平台的局域网离线加载。

另外,也为大家分享过在二维开源平台离线加载卫星影像的方法,主要包括基于OpenLayers的内网WebGIS离线部署和基于MapBox的内网WebGIS离线部署等具体操作方法。

今天,我们再为大家分享如何基于GoogleMap离线API在内网中加载卫星地图的方法。

2. 准备工作

在开始之前,需要先准备离线数据发布软件、离线卫星影像示例数据、GoogleMap离线API开发源码和本机IP地址等。

地图发布软件:需要在内网发布离线卫星影像,请确保地图发布服务中间件版本为4.0.6以上,如果低于该版本,请通过私信回复"中间件"免费获取最新版本安装包,也可以直接在水经注官方网站下载。

离线示例数据:本文提供的离线示例数据包括墨卡托投影和WGS84投影的卫星影像与地名标签数据,由于这里主要是为了进行功能性演示,因此只提示前10级影像数据。

卫星影像示例数据

通过私信回复并回复"示例数据"即可获取示例数据。

GoogleMap离线API源码:GoogleMap离线API与OpenLayers和MapBox不同,谷歌官方网站并未提供可以直接下载的GoogleMap源码开发工具包。

因此,这里提供的GoogleMapAPI开发工具包源码文件,是通过技术人员从官方网站分析下载的。

现在,你只需要请通过私信回复并回复"GoogleMapAPI"即可获取GoogleMap的离线API源码文件。

本机IP地址:由于会用到本机IP作为访问地址,可以通过在DOS窗口中运行"IPConfig"命令或其它方式获取本机IP地址以备用,如下图所示。

获取本机IP地址


3. 墨卡托投影卫星影像离线发布

软件的安装与离线卫星影像的发布方法,请参阅"全球卫星影像离线发布神器《水经注地图发布服务中间件4.0》正式发布"一文。

由于GoogleMapAPI是二维应用,因此这里不需要发布高程DEM数据。

但需要注意的是发布的卫星影像和设置的投影务必要保证统一,且端口号没有被其它程序占用,如下图所示。

安装配置


安装完成后,会显示如下图所示信息。

安装完成


打开Windows任务管理器,如果WeServer服务的状态显示"正在运行",则说明中间件服务安装成功并已经正常运行,如下图所示。

服务运行正常


确保服务运行正确后,可以在浏览器中打开"Z=7/Y=48/X=105"的标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/acimage/default/mercator/7/48/105.jpg

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示北京位置北京区域的卫星影像瓦片,如下图所示。

卫星影像瓦片


同样地,也可以通过在本机浏览器中打开"Z=7/Y=48/X=105"的地名标签瓦片地址检验发布成果,示例地址如下所示:

http://192.168.0.10:8519/WeServer/wmts/1.0.0/aclabel/default/mercator/7/48/105.png

注:上述URL地址中的IP和端口号需要与WeServer中的配置保持一致。

如果无异常,则将会显示地名标签结果,如下图所示。

地名标签瓦片


在微图中打开瓦片网格显示功能,我们可以看到上文中的瓦片"Z=7/Y=48/X=105",在微图中对应的是"Z=8/X=49/Y=106"瓦片。

也就是说,微图软件中的瓦片编号是从1开始的,因此行列号都会比WeServer大1,且它的编号显示顺序为ZXY,而WeServer发布时的顺序为ZYX,如果你了解它们的区别,会有助于你在调用WeServer发布的瓦片时进行调试。

微图中的瓦片编号


4. 部署GoogleMap离线API源码网站

上文已经说明了如何通过WeServer在内网发布离线的卫星影像与检测发布结果的方法,现在我们来讲一下部署GoogleMap离线API源码的方法。

如果你还没有获取到GoogleMap离线API源码,只需要请通过私信回复回复"GoogleMapAPI"即可获取GoogleMap的离线API源码文件。

GoogleMap源码解压之后,如下图所示。

GoogleMap离线API源码目录


在源码文件中,需要将"GoogleMapSample.html"文件中的IP地址与端口号修改为本机的IP地址和在WeServer中发布离线卫星影像时设置的端口号,如下图所示。

修改IP与端口号


接下来,需要通过IIS将GoogleMap离线API源码发布成一个网站。

在Windows控制面板中打开"管理工具",如下图所示。

管理工具


打开IIS网站管理器,如下图所示。

打开IIS


在"网站"树节点单击鼠标右键,然后选择"添加网站"菜单,如下图所示。

添加网站


网站名称可以任意取,这里我们取名为"GoogleMap",物理路径为GoogleMap离线API源码所在路径,并将端口号设置为默认值"80",如下图所示。

配置网站参数


配置完成之后点击"确定"按钮之后完成网站配置,如下图所示。

完成配置


现在,只需要在浏览器中访问发布后的网站页面,就可以离线浏览卫星影像了,网址如下所示:

http://192.168.0.10/GoogleMapSample.html

注:需要将上述地址中的IP修改为本机IP,如果发布网站时不是80端口,则还需要加上端口号。

如果一切正常,则可以看到局域网内离线发布的卫星影像地图,如下图所示。

离线影像加载效果

至此,一个基于 GoogleMap 离线 API 源码在内网中加载卫星地图的WebGIS基础系统完成了,你可以根据自己的需求再进行二次开发,添加自己的业务功能。

5. 如何查阅GoogleMapAPI开发文档

GoogleMap的功能非常多,我们可以通过以下网址打开官方网站进行查阅。

https://developers.google.cn/maps/documentation

在打开的页面中点击"Maps JavaScript API",可以查阅相关的API文档,如下图所示。

GoogleMap官方文档


官网网站提供了很多样例与API详细文档,如下图所示。

GoogleMap官方API


作为一名开发人员,查询英文文档应该是基本功,但如果觉得纯英文有点费劲的话,可以通过Google浏览打开,然后点击"中文(简体)"将页面内容自动翻译成中文,如下图所示。

查阅中文文档


6. 总结

以上就是基于 GoogleMap 离线 API 源码在内网中加载卫星地图的全部说明,包括了离线卫星影像的内网发布、Google离线API源码的发布以及帮助文档的查阅等内容。

最后再次申明,由于本文中提供的数据为示例数据,旨在说明地图发布服务中间件的内网离线发布功能,因此卫星影像数据和地名标签都仅仅提供全球前10级数据。

你可以请通过私信回复回复"免费数据",领取一个省的高清卫星影像数据,然后更新到对应的数据目录即可!