首页 > 其他分享 >【可视化】中国地级市PM2.5浓度分区统计

【可视化】中国地级市PM2.5浓度分区统计

时间:2024-08-15 23:27:02浏览次数:9  
标签:地级市 min nc lon PM2.5 可视化 lat china

利用 GeoPandasxarray(rioxarray)库对中国PM2.5 浓度数据开展城市尺度的分区统计,得到我国所有地级市的平均PM2.5浓度水平。

相关库简介

rioxarray 是一个用于处理地理空间数据的 Python 库,它扩展了 xarray 的功能,使得 xarray 可以方便地处理带有地理参考的多维数组数据(如 NetCDF、GeoTIFF 等)。rioxarray专注于处理地理空间数据的坐标参考系统(CRS)、投影、栅格数据的裁剪、掩膜、重采样等操作,是地理数据分析和遥感数据处理的有力工具。

代码实现

导入相关库

# -*- coding: UTF-8 -*-
# 导入相关库
import pandas as pd
import geopandas as gpd
import numpy as np
import matplotlib.pyplot as plt
from shapely.geometry import Point
import xarray as xr
from shapely.geometry import box
from shapely.geometry import mapping
import rioxarray

加载数据

长时序无缝高分辨率空气污染物浓度数据集(简称LGHAP)对环境管理和地球系统科学分析具有重要意义。在当前发布的 LGHAP 数据集 (LGHAP v2) 中,提供了长达 22 年的无缝气溶胶光学深度 (AOD),近地表 PM2.5 和PM10浓度格网数据,空间分辨率为1km,覆盖中国陆地。详细数据介绍和获取方式见-zenodo

读取中国区域的PM2.5浓度数据、裁减区域:

#读取全球PM25数据,其以nc文件存储
pm25_data = xr.open_dataset('LGHAP.Global_PM25.Y001.A2021.nc')
# 提取 PM2.5 浓度值和坐标
pm25 = pm25_data['PM25']  
lat = pm25_data['lat']  
lon = pm25_data['lon']
#读取中国城市区划shp
china_gdf=gpd.read_file('市.shp')
# 使用 unary_union 将中国的多个行政区划合并为一个
china_shape = china_gdf.geometry.union_all()
#根据行政区划对象创建裁剪范围
min_lon, min_lat, max_lon, max_lat = china_shape.bounds
bbox = box(min_lon, min_lat, max_lon, max_lat)
# 裁剪 PM2.5 数据
china_pm25_data = pm25_data.sel(lon=slice(min_lon, max_lon), lat=slice(min_lat,max_lat))
china_pm25_values = china_pm25_data['PM25']
lon2d, lat2d = np.meshgrid(china_pm25_data['lon'], china_pm25_data['lat'])

PM2.5浓度分区统计

#编写自定义的分区统计函数
def stas_PM25(geometry,nc):
    #创建城市几何对象的外接矩形
    min_lon, min_lat, max_lon, max_lat = geometry.bounds
    bbox = box(min_lon, min_lat, max_lon, max_lat)
    #根据城市的几何边界对原始nc文件进行规则裁剪
    clip_nc=nc.sel(lon=slice(min_lon, max_lon), lat=slice(min_lat,max_lat))
    ## 向NC文件中写入WGS84坐标系信息
    clip_nc.rio.write_crs("epsg:4326", inplace=True)
    # 指定NC文件的xy识别名称 
    clip_nc.rio.set_spatial_dims(x_dim="lon", y_dim="lat", inplace=True) 
    #把Geoseries对象转换为GeoDataframe对象
    city_shp=gpd.GeoDataFrame(geometry=[geometry])
    #对nc进行不规则掩膜
    ds=clip_nc.rio.clip(city_shp.geometry.apply(mapping),city_shp.crs,drop=False)
    #返回当前城市掩膜下的PM2.5均值,使用nanmean函数来忽略空值nan
    return np.nanmean(ds['PM25'].values)

全国所有地级市PM2.5浓度分区统计

#定义用于统计的PM2.5格点数据
nc=china_pm25_data
#使用apply函数对各城市对象进行分区统计,返回对应的PM2.5浓度
china_gdf['PM25']=china_gdf.apply(lambda city:stas_PM25(city['geometry'],nc),axis=1)

结果展示

分区结果可视化

推荐阅读

欢迎关注我的公众号“AI拾贝”,原创技术文章第一时间推送。后台发送pm2.5,自动回复源码和数据。

标签:地级市,min,nc,lon,PM2.5,可视化,lat,china
From: https://blog.csdn.net/m0_38065162/article/details/141226377

相关文章

  • ArcGIS Pro 实现人口分布栅格TIFF数据的网格提取与可视化
    这里在分享一个人口1km精度栅格数据,LandScan是由美国能源部橡树岭国家实验室(ORNL)提供的全球人口分布数据集,具有最高分辨率的全球人口分布数据,是全球人口数据发布的社会标准,是全球最为准确、可靠,基于地理位置的,具有分布模型和最佳分辨率的全球人口动态统计分析数据库。这一数据......
  • Python数据分析项目实战01_票房榜单分析和pyecharts大屏可视化
    一:最终大屏效果展示由于生成了html网页只能在本地上显示,这个大屏是动态的,只能显示其中的图片。如果要分享给他人使用,就需要将html源码转为网页。生成的html源码入口:‬​‍​‌‌​⁠​​​‌‍​​​​​‬​​​​​‬​​​​‌​​​‌‍​​​​​⁠‌‬‌​​‌Python数......
  • 非接触式免补光变焦视觉位移监测仪让结构安全可视化 微米级监测
    变焦视觉位移监测仪的特点是什么呢?变焦视觉位移监测仪的特点是什么呢?表面位移监测,非接触式该设备运用嵌入式一体化设计理念,集成主流定焦机器视觉的全方位功能,即插即用,无需繁琐的系统组装与配置。它具备自动变焦能力,可自动扫描400米范围内上千个无源靶标,实现广泛覆盖......
  • kafka可视化操作工具kafka-Eagle安装部署
    kafka-Eagle安装部署下载地址下载kafka-eagle的安装包,下载地址:https://github.com/smartloli/kafka-eagle-bin/releases环境要求部署之前,需要先装jdk8,maven,并且配置好相应环境变量部署我这边是下载的v3.0.2版本。修改配置文件下载完成后,修改配置文件信息  conf\sys......
  • Redis Desktop Manager(Redis可视化工具)安装及使用详细教程
    一、安装包下载直接从官网下载,官网下载链接地址:Downloads-Redis二、安装步骤2.1说明RedisDesktopManager是一款简单快速、跨平台的Redis桌面管理工具,也也被称作Redis可视化工具。支持命令控制台操作,以及常用,查询key、rename、delete等操作。2.2安装步骤2.2.1双击运......
  • java语言,MySQL数据库;电影推荐网站 30760(免费领源码)计算机毕业设计项目推荐万套实战教
    摘 要随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的电影推荐网站;电影推荐网站的管理工作系统化、规范化,也会提高平台形象,提高管理效率。本电影推荐网站是针对目前电影推荐网站的实际需求,从实际工作出发,对过去的电影......
  • java语言,MySQL数据库;基于Web的高校知识共享系统设计与实现 32050(免费领源码)计算机毕业
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校知识共享系统等问题,对高校知识共享系统进行研究分析,然后开发设计出高校知识共享系统以......
  • java语言,MySQL数据库;23825基于java的员工考勤系统(免费领源码)计算机毕业设计项目推荐万
    摘 要由于数据库和数据仓库技术的快速发展,员工考勤系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。考勤管理系统对处理对象和服务对象,自身的系统结构,处理能力,都将适应技术发展的要求发生重大的变化。员工考勤系统除了具有共享系统的全部功能以外,能通过......
  • 数据可视化实用干货分享
    在当今的数字化时代,数据已成为企业决策的重要基石。然而,面对海量的数据,如何高效地理解、分析和应用这些数据,成为企业面临的一大挑战。数据可视化作为一种将数据转化为图形或图表的技术,为企业提供了强有力的支持。本文将围绕“数据可视化”这一主题,详细介绍产品原型设计中数据可视......
  • 基于STM32的边缘计算实时数据处理可视化系统:嵌入式C++、 FreeRTOS、Kafka、Spring Bo
    一、项目概述本项目旨在设计并实现一个基于STM32的边缘计算实时数据处理系统。该系统能够在边缘设备端进行数据采集、预处理,并将处理后的数据实时传输到后端服务器进行进一步分析和存储。本项目主要解决以下问题:减轻后端服务器的数据处理负担,提高系统整体效率降低......