27、美国国家冰雪中心(NSIDC)海冰密集度月数据下载与处理
文章目录
- 一、前言
 - 二、数据下载
 - 三、使用Ponply查看数据结构
 - 四、代码
 
一、前言
处理美国国家冰雪中心(NSIDC)的海冰密集度月度数据时,坐标转换是一个重要的步骤。NSIDC提供的数据通常采用极地球面坐标系,需要将其转换为常用的地理坐标系(如经纬度)以便进行分析和可视化。
坐标转换的关键是理解数据的原始投影信息,包括投影类型、中心经度、真实纬度、地球椭球体参数等。这些信息可以从数据的元数据中获取。
利用Python的Cartopy库,我们可以方便地进行坐标转换。首先,根据元数据创建原始数据的投影对象(如极地球面投影)和目标投影对象(如等经纬度投影)。然后,使用Cartopy的transform_points函数将原始数据的x、y坐标转换为目标投影下的经纬度坐标。
转换后的经纬度坐标可能不规则,为了方便插值和绘图,我们可以创建一个规则的经纬度网格。使用xarray的interp函数将数据插值到这个规则网格上,得到插值后的海冰密集度数据。
通过坐标转换,我们可以将NSIDC的海冰密集度数据与其他地理数据进行叠加分析,并生成易于理解的可视化结果,为研究全球海冰变化提供更多见解。
二、数据下载
数据集名称: NOAA/NSIDC Climate Data Record of Passive Microwave Sea Ice Concentration, Version 4
变量名: 海冰密集度 (Sea Ice Concentration)
时间分辨率: 月
网址: https://nsidc.org/data/g02202/versions/4
- 数据集介绍页面

 - 选择下载南极还是北极
 

- 选择下载的数据尺度

 
这里提供了南极和北极的Monthly和Daily分辨率的数据,下载月数据,可以使用DownThemAll工具进行下载,如果需要下载日数据,可以参考文章: https://blog.csdn.net/qq_41857385/article/details/140417294。
三、使用Ponply查看数据结构
首先使用Ponply打开nc文件,查看该nc文件数据结构,然后再利用nc进行读取或处理。
 
 查看xgrid变量,可以看到其并非规则的经纬度格点,而是以m为单位的距离网格,所以此时需要对数据进行插值处理,将其转化成格则的经纬网格,方便数据分析与处理。

 PS:在该nc文件中,2.51,2.52,2.53,2.54,2.55分别具有特殊的意义,表示冰盖等标记,所以在处理的时候需要进行特殊化处理,例如将其转换成缺测值等。
四、代码
下载下来的数据是以距离为单位的格点,而不是经纬度格点,为了后续数据处理方便,需要将其处理成经纬度结构的数据,下面展示如何使用Python对其进行处理。
import numpy as np
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from pyproj import Proj, Transformerimport numpy as npdef set_values_to(array, target_values, new_value=np.nan):"""将数组中指定的值替换为新的值。参数:array (np.ndarray): 输入的数组。target_v相关文章:
27、美国国家冰雪中心(NSIDC)海冰密集度月数据下载与处理
文章目录 一、前言二、数据下载三、使用Ponply查看数据结构四、代码一、前言 处理美国国家冰雪中心(NSIDC)的海冰密集度月度数据时,坐标转换是一个重要的步骤。NSIDC提供的数据通常采用极地球面坐标系,需要将其转换为常用的地理坐标系(如经纬度)以便进行分析和可视化。 坐…...
vite环境下使用bootstrap
环境 nodejs 18 pnpm 初始化 pnpm init pnpm add -D vite --registry http://registry.npm.taobao.org pnpm add bootstrap popperjs/core --registry http://registry.npm.taobao.org pnpm add -D sass --registry http://registry.npm.taobao.org新建vite.config.js cons…...
Laravel视图渲染封装
第一种 app/Helpers/ViewHelper.php 创建一个辅助函数,用于动态确定视图路径: <?php if (!function_exists(fetchView)) {function fetchView($data []){$currentAction \Route::currentRouteAction();list($controller, $method) explode(, $c…...
C++学习补充2:MySQL select 查询
MySQL select 查询 MySQL 查询 select时, 不区分大小写的。 MySQL 在默认情况下是区分大小写的,但是它的行为可能因配置和使用的字符集而有所不同。以下是一些可能导致查询在 SELECT 语句中不区分大小写的原因: 字符集设置:如果…...
uni-app声生命周期
应用的生命周期函数在App.vue页面 onLaunch:当uni-app初始化完成时触发(全局触发一次) onShow:当uni-app启动,或从后台进入前台时显示 onHide:当uni-app从前台进入后台 onError:当uni-app报错时触发,异常信息为err 页面的生命周期 onLoad…...
排序算法--堆排序
基本思想 堆排序的基本思想是,将待排序的元素构建成一个最大堆或最小堆。对于最大堆来说,堆顶是整个堆中的最大元素;对于最小堆来说,堆顶是整个堆中的最小元素。然后,将堆顶元素与堆中最后一个元素交换,并…...
iPhone 在 App Store 中推出的 PC 模拟器 UTM SE
PC 模拟器是什么?PC 模拟器是一种软件工具,它模拟不同硬件或操作系统环境,使得用户可以在一台 PC 上运行其他平台的应用程序或操作系统。通过 PC 模拟器,用户可以在 Windows 电脑上体验 Android 应用、在 Mac 电脑上运行 Windows …...
FastAPI删除mongodb重复数据(数据清洗)
在 FastAPI 中删除 MongoDB 重复数据,你需要结合使用 MongoDB 查询和 FastAPI 的路由功能。以下是一个通用的例子,演示如何删除特定字段上的重复数据: 1. 定义数据模型: from pydantic import BaseModel, Field from bson import ObjectId …...
移动UI:排行榜单页面如何设计,从这五点入手,附示例。
移动UI的排行榜单页面设计需要考虑以下几个方面: 1. 页面布局: 排行榜单页面的布局应该清晰明了,可以采用列表的形式展示排行榜内容,同时考虑到移动设备的屏幕大小,应该设计合理的滚动和分页机制,确保用户…...
如何解决 uni-app 项目中 “文件查找失败:‘crypto-js‘“ 的问题
在开发使用 uni-app 框架的项目时,遇到依赖问题是常见的。本文将介绍如何解决编译过程中出现的 “文件查找失败:‘crypto-js’” 错误,并说明这种错误为什么会发生以及如何避免。 问题背景 在对 uni-app 项目进行编译时,我们可能…...
Apache DolphinScheduler 3.2.2 版本正式发布!
Apache DolphinScheduler 3.2.2 版本正式发布! 近日,Apache DolphinScheduler 发布了 3.2.2 版本。此版本主要基于 3.2.1 版本进行了 bug 修复,新增若干特性,并进行了众多改进和 Bug 修复,以及文档修复等。 …...
汇川CodeSysPLC教程03-2-6 ModBus TCP
什么是ModBus TCP? ModBus TCP是一种基于TCP/IP协议的工业网络通信协议,常用于工业自动化和控制系统。它是ModBus协议的一个变种,ModBus协议最初由Modicon(现在是施耐德电气的一部分)在1979年开发。 以下是ModBus TC…...
【Python机器学习】决策树的构造——划分数据集
分类算法除了需要测量信息熵,还需要划分数据集,度量划分数据集的熵,以便判断当前是否正确划分了数据集。 我们将对每个特征划分数据集的结果计算一次信息熵,然后判断按照哪个特征划分数据集是最好的划分方式。 想象一个分部在二…...
Pip换源使用帮助
PyPI 镜像使用帮助 PyPI 镜像帮助提高包安装的速度,特别是当默认源访问较慢时。镜像每次同步成功后,每隔 5 分钟进行更新,确保镜像内容尽量与官方源保持一致。 pip 临时使用 如果您只想在一次安装中使用镜像,可以使用以下命令&…...
力扣1089复写0
1089. 复写零 - 力扣(LeetCode) 我们的思路是利用类似双指针的方式去解答,来看下代码 class Solution { public:void duplicateZeros(vector<int>& arr){int cur 0, dest -1, n arr.size();while (cur < n){if (arr[cur])d…...
10 VUE Element
文章目录 VUE1、概述2、快速入门3、Vue 指令4、生命周期5、案例 Elemant1、快速入门2、Element 布局3、常用组件-案例 VUE 1、概述 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写基于MVVM(Model-View-ViewModel)思想,实现数据…...
独立游戏《星尘异变》UE5 C++程序开发日志8——实现敏感词过滤功能(AC自动机)
在游戏中经常会有需要玩家输入一些内容的功能,例如聊天,命名等,这款游戏只有在存档时辉用到命名功能,所以这个过滤也只是一个实验性的功能,我们将使用AC自动机来实现,这是在我们把“csdn”这个词设置为屏蔽…...
使用 Swagger 在 Golang 中进行 API 文档生成
Swagger 是一款强大的 API 文档生成工具,可以帮助开发者轻松创建、管理和展示 RESTful API 文档。在本文中,我们将介绍如何在 Golang 项目中使用 Swagger 来生成 API 文档。 官网地址 : gin-swagger 前提条件 Golang 开发环境(…...
Pip换源实战指南:加速你的Python开发
1. Pip换源的重要性 在使用Python进行软件开发或数据分析时,pip 是Python的包管理工具,用于安装和管理第三方库。然而,由于网络环境的差异,特别是在某些国家,访问默认的PyPI(Python Package Indexÿ…...
【数据结构】常用数据结构的介绍:理解与应用
文章目录 前言一、介绍二、使用场景三、总结 前言 在计算机科学中,数据结构是我们组织和存储数据的方式,它可以帮助我们高效地执行各种操作,如搜索、插入和删除。从数组和链表,到树和图,不同的数据结构有着不同的优点…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
