Python 分析中国城市夜间灯光数据

在城市化(城镇扩展)、环境和能源等社会科学研究中常使用夜间灯光影像作为人类活动的表征。研究中使用最多的夜间灯光数据来自美国国防气象卫星计划(Defense Meteorological Satellite Program,DMSP)一系列气象卫星的观测。处理夜间灯光数据的方法和软件有很多,常用的有Arcgis等。在这里笔者将尝试用Python来读取夜间灯光数据。

一、夜间灯光数据下载

DMSP/OLS夜间灯光数据下载地址:

https://www.ngdc.noaa.gov/eog/dmsp/downloadV4composites.html

640?wx_fmt=jpeg

笔者以2013年为例,下载后得到压缩文件F182013.v4.tar,解压之后:

640?wx_fmt=png

目前发布的灯光数据产品中使用较多的是稳定灯光数据(stable lights),它剔除了由火灾、爆炸等造成的短暂亮光,只包含了相对稳定的灯光,且均为无云数据。让我们再次解压稳定灯光数据:

F182013.v4c_web.stable_lights.avg_vis.tif.gz,获得的是1张标签图像文件格式(tiff)的图片,我们需要的灯光数据就在这张图里啦。

640?wx_fmt=jpeg

二、Python读取夜间灯光数据

接下来轮到Python登场了。Python有许多库可以解析tiff文件,笔者这里使用的是libtiff库。

1、安装libtiff库
笔者的实践经验表明,直接用pip/conda install在线安装libtiff库可能会报错(具体原因不明)。建议先下载好本机适配的libtiff-0.4.2-xxxx-xxxx-xxxxx.whl文件,采用pip install 路径+libtiff库的离线方式安装最靠谱。

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
安装命令:pip install 路径+libtiff-0.4.2-xxxx-xxxx-xxxxx.whl

2、Python提取指定区域的夜间灯光

安装好Python的libtiff库后,接下来用Python提取并显示中国东部的夜间灯光,附上源代码(在这里笔者不禁想感叹一下Python的简洁与高效):

from libtiff import TIFF
import matplotlib.pyplot as plt

# 读取夜间灯光数据
tif = TIFF.open('F182013.v4c_web.stable_lights.avg_vis.tif', mode='r')
img = tif.read_image()

#提取包含中国东部范围的夜间灯光数据画图
#夜灯数据覆盖范围为-65~75oN,-180-180oN,分辨率是30’
lons=100;lone=137;lats=15;late=52
lons_grid=int((lons+180.0)/(30.0/3600))
lone_grid=int((lone+180.0)/(30.0/3600))
lats_grid=int((75.0-lats)/(30.0/3600))
late_grid=int((75.0-late)/(30.0/3600))
img2=img[late_grid:lats_grid,lons_grid:lone_grid]
plt.imshow(img2)   
plt.show()

中国东部地区2013年的夜间灯光图片粗来啦! 中国东部和南部著名的三大城市群:京津冀、长三角和珠三角在图上非常明显。

640?wx_fmt=jpeg

三、夜间灯光数据看中国城市发展
选取1992年至2013年的夜间灯光图片做成动图进行展示,直观感受一下这些年中国城市的发展吧!

640?wx_fmt=gif

阿里云双十一活动来袭

长按扫描下方二维码

即享云服务器新用户1折起购

最低86元/年,一起拼团更优惠!

↓ ↓ 长按扫码了解更多 ↓ ↓

640?wx_fmt=png

【Python中文社区专属拼团码】

活动时间:2019年10月24日至2019年11月11日

活动对象:阿里云新用户,同一用户限购1单。

▼ 点击阅读原文,即享阿里云产品新用户1折优惠

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值