该公众号将为您奉上Python地学分析、爬虫、数据分析、Web开发、机器学习、深度学习等热门源代码。

本人的 GitHub 代码资料主页(持续更新中,多给Star,多Fork ):

https://github.com/xbr2017

CSDN也在同步更新:

https://blog.csdn.net/XBR_2014

“本节通过folium模块来绘制全国PM2.5热力分布图,并生成对应的html文件。”

今天的遥感之美—歌曲《欧若拉》中的阿拉斯加。阿拉斯加州位于北美大陆西北端,东与加拿大接壤,另三面环北冰洋、白令海和北太平洋。卫星俯瞰神秘北极圈,阿拉斯加的山巅,谁的脸出现海角的天边(盗用歌词捂脸)。

哥伦比亚冰川位于美国阿拉斯加州,从海拔3,050米的冰原开始下降,沿着楚加奇山脉的侧翼下降,进入一个狭窄的入口,通往阿拉斯加东南部的威廉王子湾,它是世界上变化最快的冰川之一。科学家使用Landsat 4,5,7和8跟踪哥伦比亚冰川的变化已超过30年。哥伦比亚冰川是一个大型的潮水冰川,最终流入大海。

由Landsat系列卫星捕获的假彩色图像显示了自1986年以来冰川及其周围景观的变化。图像由以下传感器收集—专题制图仪(TM),增强型专题制图仪(ETM +)和陆地成像仪(OLI)—来自四种不同的Landsat卫星(4,5,7和8)。

Landsat图像结合了电磁波谱的短波红外,近红外和绿光波段。通过这种波长组合,雪和冰呈现明亮的青色,植被为绿色,云为白色或浅橙色,水体为深蓝色。暴露的基岩呈棕色,而冰川表面的岩石碎片呈灰色。

在过去三十年里,终点站向北退缩了20公里。在某些年份,终点站退缩了一公里以上,但速度不均匀。例如,终点站的运动在2000年至2006年之间停滞不前,因为大努纳塔克峰和卡丁峰(直接向西)限制了冰川的运动并将冰块固定。自20世纪80年代以来,冰川已经失去了其总厚度和体积的一半左右(译自Landsat官网)。

folium是Python中一个绘制地图的模块,并可以在地图(底图)上打点,画圈,做颜色标记的工具类。简单易学,和pandas可以很好的融合,是地图可视化的一款神器。

在命令行中直接在线安装即可,快速、简洁、方便、高效。

pip install folium

这个开源库中有许多来自OpenStreetMap、MapQuest Open、MapQuestOpen Aerial、Mapbox和Stamen的内建地图组件,而且支持使用Mapbox或Cloudmade的API密钥来定制个性化的地图组件。Folium支持GeoJSON和TopoJSON两种文件格式的叠加,也可以将数据连接到这两种文件格式的叠加层,最后可使用color-brewer配色方案创建分布图。

本节先来展示一下它的简单应用,主要以2018年1月全国1000多个PM2.5地面观测站点为例,将这些数据以热力图(heat map)的形式展现给大家,并生成相应的html文件。

代码实现:

# _*_ coding: utf-8 _*_
__author__ = 'xbr'
__date__ = '2019/1/9 15:47'
import numpy as np
import pandas as pd
import folium
import webbrowser
from folium.plugins import HeatMap
# 读取csv文件,以Dataframe形式保存
df = pd.read_csv(r"D:\data\PM25-20180101.csv")
# 获取数据个数
num = df.shape[0]
# 获取纬度
lat = np.array(df["lat"][0:num])
# 获取经度
lon = np.array(df["lon"][0:num])
# 获取PM2.5,转化为numpy浮点型
pm25 = np.array(df["PM25"][0:num], dtype=float)
# 将数据制作成[lats, lons, weights]的形式
data1 = [[lat[i], lon[i], pm25[i]] for i in range(num)]
# 绘制Map,中心经纬度[32, 120],开始缩放程度是5倍
map_osm = folium.Map(location=[32, 120], zoom_start=5)
# 将热力图添加到前面建立的map里
HeatMap(data1).add_to(map_osm)
file_path = r"D:\AirQualityMap.html"
# 保存为html文件
map_osm.save(file_path)
# 默认浏览器打开
webbrowser.open(file_path)

对结果图局部放大:

对结果图局部放大:

缩小后全景图:

欢迎关注博主的微信公众号:“智能遥感”。该公众号将为您奉上Python地学分析、爬虫、数据分析、Web开发、机器学习、深度学习等热门源代码。本人的GitHub代码资料主页(持续更新中,多给Star,多Fork):https://github.com/xbr2017CSDN也在同步更新:https://blog.csdn.net/XBR_2014“本节通过folium模块... R = np.linspace(0, 2 * np.pi, size) x = np.linspace(start=0, stop=size, num=size, dtype=np.int) y = np.l
之前写过一篇博客,使用basemap实现的, Basemap绘制中国地图 今天发现另一个软件库folium可以实现对openstreetmap的调用,参考链接http://blog.csdn.net/qq_14906811/article/details/74906275 ,下面是操作步骤: 下载2015Cities-CHINA.xlsx ,包含中国各城市的经纬度,自己网上搜索整理,数据可能过
这本书相当于一本大数据相关内容的大串讲吧。读完了并不能有短期的提高,但似乎能涨点内力。。虽然和算法有点不相关,但还是读一读吧!这篇文章写一点收获,相当于书本上额外的感悟。 第一章,可靠性、可扩展性、可维护性: 1、由于CPU比较器,所以处理数据密集型的应用程序的问题更棘手。 2、Sql 的拼接:select …from… join … on…=… 相当于先从 …=… 中选定两个表应选取的行,...
# 数据:经纬度和权重 data = [[40.04666663299843, 116.59569796477264, 0.9667425547098781], [39.86836537517533, 116.28201445195315, 0.8708549157348728], [40.08123232852134, 116.56884585184197, 0.910495 图片可能看不太清楚,可以看我的知乎链接来源https://zhuanlan.zhihu.com/p/85824404 作为一个小白,最近花了好长时间研究如何制作热力图,终于做出来啦!过程如下。 总体思路: ①收集到地名(如:407库住宅区 、八府庄小区)(xlsx格式)----> ②地名转化为经纬度(运用到百度地图api)----> ③新建一个...
在数据分析过程中,有时候需要一些数据以热力图的形式进行显示出来,从而能够更加直观地查看分析数据。下面以实际情况为例,展示热力图在两种不同情况下的应用。 一、识别图片中行人的关注点,并绘制热力图 我们在做超市商品卖场力分析的时候,可以通过分析超市密集人群的关注点,生成热力图,给厂商直观的视觉感受。步骤分为以下几步: 1、首先用行人检测技术检测出超市场景中的顾客,再用眼动追踪技术得到顾客眼睛凝视点的中心坐标。 2、将所有凝视点的中心坐标放入一个list类型的变量data中,即data = [[x1,y1],[x
要在 Python可视化地图,可以使用以下库: 1. foliumfolium 是一个基于 Leaflet.js 的 Python 库,用于创建交互式地图。它可以显示地图、标记物、地形等。 2. cartopy:cartopy 是一个专门用于制作地图的 Python 库。它可以创建带有地图投影的地图,支持多种不同的地图投影方式。 3. geopandas:geopandas 是一个基于 pandas 库的地理数据处理库。它可以读取和处理各种地理数据格式,并支持绘制地图。 这里简单介绍一下使用 folium 库制作地图的方法: 首先,安装 folium 库: pip install folium 然后,创建一个地图对象并添加标记: ```python import folium # 创建地图对象 map = folium.Map(location=[40.7589, -73.9851], zoom_start=13) # 添加标记 folium.Marker([40.7589, -73.9851], popup='Times Square').add_to(map) folium.Marker([40.7069, -74.0113], popup='Statue of Liberty').add_to(map) # 显示地图 这段代码会创建一个地图对象,将地图中心设置为纽约市中心(40.7589, -73.9851),缩放级别为 13。然后,添加两个标记:时代广场和自由女神像。最后,显示地图。
博主写错了代码,应该是 if not os.path.exists(os.path.join(path, date)): os.makedirs(os.path.join(path, date)) shutil.move(os.path.join(path, file), os.path.join(path, date)) 少了一个join。 os.path.join的作用是路径拼接