NC\NC4\HDF4\HDF5数据的使用、转换和分析

      最近项目中需要处理和分析NC数据,所以我查了一下,百度百科的解释是:NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作NetCDF 数据集。。。。(引自:https://baike.baidu.com/item/netCDF/6000434?fr=aladdin)。

   HDF Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。大多数普通计算机都支持这种文件格式。(引自:https://baike.baidu.com/item/HDF/1256312?fr=aladdin  )。

 

   NASA及ESA的很多数据都是以NETCDF和HDF格式发布的,数据内容包括:降雨、温度、光照、自然环境。。。。,全部是全球数据,非常实用,而且免费!

  从文字的科学定义上看起来NC真的是很复杂很玄幻,第一看了真的是有点懵。但其实在GIS范畴,NETCDF就是栅格数据,只要我们按照栅格的方法进行打开、转换分析就可以完成工作。即使是对于普通非专业用户其实从以下工具界面中直观看出,NC数据本身描述的是一个带有空间信息的N维数组或者表结构,我们可以利用工具将其信息提取出来进行分析和处理。

下图是HADISSI.NC数据的组成及结构情况

下面是NC数据转换为带属性的SHP数据后,设置成专题图模式后的效果,和容易可以看出该时段数据的空间分布情况

下面我叙述一下我对栅格数据进行转换、处理、分析的一些做法。

  • (一)转换工具:

    https://blog.csdn.net/qq_35582643/article/details/86984487工具提供几十种栅格数据向矢量数据的转换功能,将栅格数据分子类型、分波段转换为矢量网格数据,并可选择转换坐标系、范围、格式的输出,方便对利用软件栅格数据进行处理、统计、分析。本软件支持NC数据转换为其它矢量栅格格式。

  • 下载地址:https://share.weiyun.com/58qNU7F

    下载QQ群:610712943(自动加群,仅供软件下载,不聊天),群文件中获取软件

  • 注意:本工具同时也支持其它栅格格式(如:TIF,IMG,BMP,PNG)转换为NC数据格式。

  • (二)NC转成栅格操作

1.选择要转换的栅格数据

 

2.选择要转换栅格数据的子图层数据

部分栅格数据包含了子图层数据,您需要选择您需要转出的子图层数据,默认为第一类数据。

 

3.选择要转换栅格数据的坐标系(一般默认即可)

选择要转换栅格数据的坐标系(一般默认即可),工具会自动为您识别和添加栅格数据的坐标系信息,如您觉得需要修改可以在这项进行设置

 

4.选择转换类型,默认为栅格类型

 

5.选择输出格式,默认为TIFF

6.选择输出目录

7.选择转换坐标系(如需要坐标系转换的话)

选中【坐标系转换】复选框,点地球图标按钮完成坐标系选择

注意:本项选择只有在需要对源数据进行坐标转换时才使用

 

8.选择输出范围(如您需要的话)

选中【输出范围】 复选框,填写输出范围的矩形坐标。也可以点【区域选择】按钮利用图形化方式完成坐标系选择,这个功能需要连接外网

注,选择完成后点确定关闭范围选择对话框,自动为您生成输出范围。该功能需要连接网络在线地图,如不能联网则无法使用该功能。

9.点【转换】按钮输出数据

注意:转换完成后会提示,转换完成信息

  • (三)NC转成矢量数据

 

1.选择要转换的栅格数据

 

2.选择要转换栅格数据的子图层数据

部分栅格数据包含了子图层数据,您需要选择您需要转出的子图层数据,默认为第一类数据。

3.选择要转换栅格数据的坐标系(一般默认即可)

选择要转换栅格数据的坐标系(一般默认即可),工具会自动为您识别和添加栅格数据的坐标系信息,如您觉得需要修改可以在这项进行设置

 

4.选择转换类型为矢量,可选择转换类型为点或面

5.选择输出格式,默认为SHP类型

6.选择输出目录

6.选择转换坐标系(如需要坐标系转换的话)

选中【坐标系转换】复选框,点地球图标按钮完成坐标系选择

 

注意:本项选择只有在需要对源数据进行坐标转换时才使用

 

7.选择输出范围(如您需要的话)

选中【输出范围】 复选框,填写输出范围的矩形坐标。也可以点【区域选择】按钮利用图形化方式完成坐标系选择,这个功能需要连接外网

注1:地图选择完成后点确定关闭范围选择对话框,自动为您生成输出范围,地图选择功能需要连接网络在线地图,如不能联网无法使用该功能。

 

注2:该功能只有对源数据进行部分输出时才选择并使用(剪裁)

8.点【转换】按钮输出数据

 

注意:转换完成后会提示,转换完成信息

 

  • (四)转换效果

1矢量

https://i-blog.csdnimg.cn/blog_migrate/6bfbdd88007247a45bb889acaa202ad3.png

 

 

 

 

2栅格

如您在软件使用、数据转换过程中遇到问题,可直接联系我们,我们将全力为您解决相关的困扰和问题,为您解决问题消除困扰。联系方式:QQ:315022850 QQ:2705217296

 

### 回答1: 要将HDF文件转换NC4文件,可以使用Python中的netCDF4库来实现。 首先,确保已经安装了netCDF4库。可以使用以下命令来安装: ``` pip install netCDF4 ``` 然后,可以使用以下代码将HDF文件转换NC4文件: ```python import netCDF4 # 打开HDF文件 hdf_file = netCDF4.Dataset('input.hdf', 'r') # 创建NC4文件 nc4_file = netCDF4.Dataset('output.nc', 'w', format='NETCDF4') # 复制HDF文件中的维度信息到NC4文件 for dimension_name, dimension in hdf_file.dimensions.items(): nc4_file.createDimension(dimension_name, len(dimension)) # 复制HDF文件中的变量信息到NC4文件 for variable_name, variable in hdf_file.variables.items(): nc4_variable = nc4_file.createVariable(variable_name, variable.dtype, variable.dimensions) nc4_variable[:] = variable[:] # 复制HDF文件中的全局属性到NC4文件 nc4_file.setncatts(hdf_file.__dict__) # 关闭文件 hdf_file.close() nc4_file.close() print("HDF文件转换NC4文件成功!") ``` 请将上述代码中的`'input.hdf'`替换为实际的HDF文件路径,并将`'output.nc'`替换为希望生成的NC4文件路径。 以上代码将打开HDF文件,创建一个相应的NC4文件,并将HDF文件中的维度、变量和全局属性复制到NC4文件中。最后,关闭文件并输出成功信息。 希望以上回答能对你有所帮助! ### 回答2: 将HDF文件转换NC4文件的过程非常简单,只需要遵循以下步骤: 1. 首先,确保你的计算机上已经安装了HDF和NetCDF库。这两个库是进行文件格式转换所必需的。 2. 打开Python环境,导入所需的库: ```python import h5py import netCDF4 as nc ``` 3. 使用h5py库打开HDF文件: ```python hdf_file = h5py.File('input.hdf', 'r') ``` 4. 创建一个新的NC4文件,将HDF数据写入其中: ```python nc_file = nc.Dataset('output.nc', 'w') ``` 5. 遍历HDF文件中的数据集,并将其转换NC4文件格式: ```python for dataset_name in hdf_file.keys(): dataset = hdf_file[dataset_name] nc_dataset = nc_file.createVariable(dataset_name, dataset.dtype, dataset.shape) nc_dataset[:] = dataset[:] ``` 6. 保存并关闭NC4文件: ```python nc_file.close() ``` 7. 关闭HDF文件: ```python hdf_file.close() ``` 这样,你就成功地将HDF文件转换NC4文件。请注意,需要根据你的实际情况替换`input.hdf`和`output.nc`为你想要转换文件的名称。此外,如果HDF文件中存在多个数据集,可以在循环中逐个处理它们。 ### 回答3: 将HDF文件转换NC4文件的步骤如下: 1. 安装h5py和netCDF4两个Python库。可以使用以下命令来安装: ``` pip install h5py netCDF4 ``` 2. 导入所需的库: ```python import h5py from netCDF4 import Dataset ``` 3. 打开HDF文件并读取其中的数据: ```python hdf_file = h5py.File('input.hdf', 'r') data = hdf_file['data'][:] hdf_file.close() ``` 4. 创建一个新的NC4文件并将数据写入其中: ```python nc4_file = Dataset('output.nc', 'w', format='NETCDF4') nc4_file.createDimension('time', None) # 设置时间维度,此处为可变长度 nc4_file.createVariable('data', 'float', ('time',)) # 创建数据变量 nc4_file.variables['data'][:] = data # 将数据写入变量 nc4_file.close() ``` 5. 在上述代码中,'input.hdf'是输入的HDF文件名,'output.nc'是输出的NC4文件名。根据实际情况修改这两个文件名。 以上是将HDF文件转换NC4文件的简单步骤。根据具体的HDF文件结构和数据类型,可能还需要进行一些额外的操作。可以根据具体的需求对代码进行修改。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS工具-gistools2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值