首页 > 其他分享 >C35 空气污染和暴露其中的人口(Part 7)

C35 空气污染和暴露其中的人口(Part 7)

时间:2024-07-15 17:33:52浏览次数:12  
标签:Map map image var Part ui C35 空气污染 NO2

导读

在过去的几十年里,我们越来越多地接触到一系列监测地球大气成分的卫星传感器。然而,重要的是要注意,卫星测量的是对流层和平流层的污染物浓度,对流层和平流层在地球表面以上延伸许多公里。因此,卫星测量不一定代表人类在地面上接触到的浓度,因此不建议仅依靠卫星数据进行人类健康应用。然而,更复杂的方法将来自卫星遥感数据的信息、复杂的大气化学模型和地面监测仪相结合,以提供高可信度的地面污染物浓度。

主要内容

  • 了解Sentinel-5P数据;
  • 量化空气污染物浓度随时间的变化;
  • 计算人口加权空气污染物浓度。

Section 1 数据导入与清洗

  • 在GEE中有一系列基于卫星的空气污染数据集可供选择。
  • Sentinel-5  于2017年10月发射,但是数据最早是2018年7月才可以用。
  • TROPMI是Sentinel-5 卫星携带的传感,可以感应紫外线(ultraviolet)可见光(visible), 近红外(near-infrared), 短波红外(shortwave infrared wavelengths);
  • 可用来监测大气中的NO2, O3, aerosol(气溶胶), methane (CH4), formaldehyde(甲醛),CO, and SO2 ;
  • TROPOMI在地面上的条带宽度约为2600公里,可实现7 × 7公里的空间分辨率的全球日覆盖;
  • 除CH4外,所有Sentinel-5P数据集都有两个版本:近实时(NRTI)和离线(OFFL);CH4仅有OFFL可用。

 

示例使用OFFL NO2产品。

代码中涉及到的数据集:

人口数量和密度数据集:(世界第 4 版网格化人口 (GPWv4) 修订版30 弧秒1公里格网)CIESIN/GPWv411/GPW_Population_Count;  

(GEE中还有两个人口数据集 WorldPop和Global Human Settlement Layers)

全球行政单位层(GAUL)国家-省/州层面数据集:FAO/GAUL_SIMPLIFIED_500m/2015/level1

 

// 导入GAUL全球行政单元 1级产品 
var adminUnits = ee.FeatureCollection( 'FAO/GAUL_SIMPLIFIED_500m/2015/level1'); 

// 根据自定义的(武汉)区域选择GAUL图层
var adminSelect = adminUnits.filterBounds(geometry); 

// Center the map on this area. 
Map.centerObject(adminSelect, 7); 

// 设置地图显示选项指定了地图的底图样式。
//'HYBRID' 选项将地图显示为混合模式,即卫星图像和地图图层的组合. 
//结合了卫星影像和地理信息,如道路、地名等
Map.setOptions('HYBRID'); 

Map.addLayer(adminSelect, {}, 'selected admin unit'); 

// 导入人口统计数据 Gridded Population of the World Version 4. 
var population = ee.ImageCollection( 'CIESIN/GPWv411/GPW_Population_Count') 
    // Filter for 2020 using the calendar range function. 
    .filter(ee.Filter.calendarRange(2020, 2020, 'year')) 
    // There should be only 1 image, but convert to an image using .mean(). 
    .mean(); 
    
// 根据区域裁剪人口数据
var populationClipped = population.clipToCollection(adminSelect); 


// 将其添加到地图上以查看人口分布。
var popVis = { 
    min: 0, 
    max: 4000, 
    palette: ['black', 'yellow', 'white'], 
    opacity: 0.55 
}; 
Map.addLayer(populationClipped, popVis, 'population count');


//=========================================================================================
//导入Sentinel-5P NO2离线产品
var no2Raw = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_NO2'); 

// 去云函数. 
function maskClouds(image) { 
    // Get the cloud fraction band of the image. 
    var cf = image.select('cloud_fraction'); 
    // Create a mask using 0.3 threshold. 
    var mask = cf.lte(0.3); // You can play around with this value. 
    // Return a masked image. 
    return image.updateMask(mask).copyProperties(image); 
} 

// Clean and filter the Sentinel-5P NO2 offline product. 
var no2 = no2Raw 
    .filterBounds(adminSelect) 
    .map(maskClouds) 
    .select('tropospheric_NO2_column_number_density'); 
    
// 创建2021年3月的中值合成影像 
var no2Median = no2.filterDate('2021-03-01', '2021-04-01').median(); 


var no2MedianClipped = no2Median.clipToCollection(adminSelect); 
// Visualize the median NO2. 
var no2Viz = { 
    min: 0, 
    max: 0.00015, 
    palette: ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red' ] 
}; 
Map.addLayer(no2MedianClipped, no2Viz, 'median no2 Mar 2021'); 

 

  

 

 

 

 

Section 2 量化和可视化变化

测试一下看看我们是否能看到2020年COVID-19封锁期间二氧化氮浓度的变化。

将2020年3月(湖北省封城期间)二氧化氮浓度中值与2019年3月的二氧化氮浓度中值进行比较。

// Define a lockdown NO2 median composite. 
var no2Lockdown = no2.filterDate('2020-03-01', '2020-04-01') 
    .median().clipToCollection(adminSelect); 
    
// Define a baseline NO2 median using the same month in the previous year. 
var no2Baseline = no2.filterDate('2019-03-01', '2019-04-01') 
    .median().clipToCollection(adminSelect); 
    
// Create a ui map widget to hold the baseline NO2 image. 
var leftMap = ui.Map().centerObject(adminSelect, 8).setOptions( 'HYBRID'); 
// Create ta ui map widget to hold the lockdown NO2 image. 
var rightMap = ui.Map().setOptions('HYBRID'); 

// Create a split panel widget to hold the two maps. 
var sliderPanel = ui.SplitPanel({ 
    firstPanel: leftMap, 
    secondPanel: rightMap,
    orientation: 'horizontal', 
    wipe: true, 
    style: { 
        stretch: 'both' 
    } 
}); 

var linker = ui.Map.Linker([leftMap, rightMap]); 

// Make a function to add a label with fancy styling. 
function makeMapLab(lab, position) { 
    var label = ui.Label({ 
        value: lab, 
        style: { 
            fontSize: '16px', 
            color: '#ffffff', 
            fontWeight: 'bold', 
            backgroundColor: '#ffffff00', 
            padding: '0px' 
        } 
    }); 
    
    var panel = ui.Panel({ 
        widgets: [label], 
        layout: ui.Panel.Layout.flow('horizontal'), 
        style: { 
            position: position, 
            backgroundColor: '#00000057', 
            padding: '0px' 
        } 
    }); 
    return panel; 
} 

// Create baseline map layer, add it to the left map, and add the label. 
var no2BaselineLayer = ui.Map.Layer(no2Baseline, no2Viz); 
leftMap.layers().reset([no2BaselineLayer]); 
leftMap.add(makeMapLab('Baseline 2019', 'top-left')); 


// Create lockdown map layer, add it to the right map, and add the label. 
var no2LockdownLayer = ui.Map.Layer(no2Lockdown, no2Viz); 
rightMap.layers().reset([no2LockdownLayer]); 
rightMap.add(makeMapLab('Lockdown 2020', 'top-right')); 

// Reset the map interface (ui.root) with the split panel widget. 
// Note that the Map.addLayer() calls earlier on in Section 1 
// will no longer be shown because we have replaced the Map widget 
// with the sliderPanel widget. 
ui.root.widgets().reset([sliderPanel]); 

  对比分块图中的两幅图,发现封锁期间二氧化氮浓度有所下降

 

 

标签:Map,map,image,var,Part,ui,C35,空气污染,NO2
From: https://www.cnblogs.com/bltstop/p/18294677

相关文章

  • 代码随想录算法训练营第22天 |二叉树part07:235. 二叉搜索树的最近公共祖先、701.二叉
    代码随想录算法训练营第22天|二叉树part07:235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点235.二叉搜索树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/description/代码随想录:htt......
  • ATTACKS ON THIRD-PARTY APIS OF LARGE LANGUAGE MODELS
    本文是LLM系列文章,针对《ATTACKSONTHIRD-PARTYAPISOFLARGELANGUAGEMODELS》的翻译。对大型语言模型第三方api的攻击摘要1引言2提出的流水线3实验4结论摘要大型语言模型(LLM)服务最近开始提供一个插件生态系统来与第三方API服务交互。这项创新增强了LLM的能......
  • 【代码随想录|第十一章 图论part01 | 797.所有可能的路径 】
    代码随想录|第十一章图论part01|图论理论基础,797.所有可能的路径,广搜理论基础一、图论理论基础1.图的基本概念2.图的构造1)邻接矩阵2)邻接表3.图的遍历方式4.深度优先搜索理论基础二、797.所有可能的路径1.核心代码2.问题三、广搜理论基础总结python一、图论理......
  • 转:functools.partial函数
    Pythonfunctools.partial函数详解与实战_pythonfuctiontoolpartial-CSDN博客functools.partial:Python中灵活函数部分应用的工具_functools.partial()-CSDN博客在Python编程中,functools.partial是一个极具实用价值的函数,它允许我们“冻结”函数的一些参数或关键字,从而生成一个......
  • ISA95-Part5-安全和权限管理的设计思路
    1、具体要求:在MES/MOM系统中实现ISA-95标准的安全和权限管理,具体要求通常包括以下几个方面:1.--数据保护--:确保敏感数据通过加密和安全存储来保护,防止数据泄露或被未授权访问。2.--访问控制--:实施基于角色的访问控制(RBAC),确保只有授权用户才能访问相应资源和数据。3.--......
  • 「代码随想录算法训练营」第十天 | 栈与队列 part2
    150.逆波兰表达式求值题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/题目难度:中等文章讲解:https://programmercarl.com/0150.逆波兰表达式求值.html视频讲解:https://www.bilibili.com/video/BV1kd4y1o7on题目状态:多次修改bug后通过个人思路:......
  • R语言广义加性混合模型(GAMM)分析长沙气象因子、空气污染、PM2.5浓度、显著性检验、逐
    全文链接:https://tecdat.cn/?p=32981原文出处:拓端数据部落公众号气候变化和空气污染对现代社会产生了越来越大的影响。在这种背景下,研究气象和空气污染之间的关系以及其对PM2.5浓度的影响变得非常重要。为了更好地理解和解释这些关系,广义加性混合模型(GAMM)成为一种强大的工具。......
  • 「代码随想录算法训练营」第九天 | 栈与队列 part1
    232.用栈实现队列题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/题目难度:简单文章讲解:https://programmercarl.com/0232.用栈实现队列.html视频讲解:https://www.bilibili.com/video/BV1nY4y1w7VC题目状态:看视频讲解后通过思路:通过两个栈来实现队......
  • day10-stack&Queue-part01-7.12
    tasksfortoday:1.理论基础2.232用栈实现队列3.225用队列实现栈4.20有效的括号5.1047删除字符串中所有相邻重复项--------------------------------------------------------------------------1.理论基础stack:firstinlastout     head    ......
  • Arpa’s overnight party and Mehrdad’s silent entering
    Arpa’sovernightpartyandMehrdad’ssilententering题目大意给\(n\)对情侣染色,要求情侣不能然相同颜色而且相邻\(3\)人的颜色不同,求合法方案。数据范围满足\(1\len\le10^5\)。思路钦定\(2i-1\)与\(2i\)的人吃的食物不一样,那么这样建图跑出来的一定是二分图......