精华内容
下载资源
问答
  • python读取nc数据

    千次阅读 2021-03-06 17:14:13
    python读取nc数据 读取nc数据主要是用到netCDF4库。 #最基础的读取 nc_obj = nc.Dataset(filename) #这里filename自己定义即可 这里已经将nc文件读取进来了,之后我们可以查看其中的各个维度以及数据。 #读取经度...

    python读取nc数据

    读取nc数据主要是用到netCDF4库。

    #最基础的读取
    nc_obj = nc.Dataset(filename)
    #这里filename自己定义即可
    

    这里已经将nc文件读取进来了,之后我们可以查看其中的各个维度以及数据。

    #读取经度纬度值
    lat=(nc_obj.variables['lat'][:])
    lon=(nc_obj.variables['lon'][:])
    

    这里variables方法即是读取变量的功能,一般nc文件中经度和纬度会命名为‘lon’和‘lat’,不确定的话可以阅读一下相关产品的说明书进行查询。
    或者可以直接调用variables.keys方法:

    print(nc_obj.variables.keys())
    

    输出结果:
    输出结果
    这里的变脸分别是经度、纬度、时间和蒸散发量。
    那么我们想读取蒸散发数值的话,就是和前面类似的操作:

    Data=(nc_obj.variables[str(flag)][:])
    

    看一下读出来的结果的形状:

    print(Data.shape)
    

    输出结果
    这个产品的记录是以月份为单位,一共是40年的。第二个是纬度,第三位是经度,都是以0.5°为单位。
    到这里,数据已经存入数组Data中了,我们可以对它进行后续的操作。

    补充一个题外话,如果想要灵活一点,让我们的程序可以每次读取我们选定的文件,而不需要我们每次更改路径,则可以使用win32ui库。

    import win32ui
    # 0代表另存为对话框,1代表打开文件对话框
    dlg = win32ui.CreateFileDialog(1)
     
    # 默认目录
    dlg.SetOFNInitialDir('D:\Recently\Water_recycle\Data') 
     
    # 显示对话框
    dlg.DoModal()
     
    # 获取用户选择的文件全路径
    filename = dlg.GetPathName()
    
    nc_obj = nc.Dataset(filename)
    
    

    这部分文件读取的内容一开始是在CSDN上找到的,但是后来找不到了,所幸我的程序里还留着,所以就搬运了,如果有朋友找到了之前那个大佬的帖子,麻烦指一下路,我补充一下应用,非常感谢!!

    展开全文
  • 读取nc数据,matlab

    2017-10-24 19:25:17
    matlab读取NC数据方法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • MATLAB读取nc数据并显示

    万次阅读 2018-09-15 17:03:04
    本篇博客主要介绍采用MATLAB读取nc数据并进行显示。 首先是显示经纬度: 示例代码: lon = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'XLONG_C'); lat = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'XLAT...

    本篇博客主要介绍采用MATLAB读取nc数据并进行显示。

    首先是显示经纬度:

    示例代码:

    lon = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'XLONG_C');
    lat = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'XLAT_C');
    plot(lon, lat, 'r')

    运行结果:

    其次是显示地表温度:

    示例代码:

    lon = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'XLONG_C');
    lat = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'XLAT_C');
    skintemp = ncread('met_em.d02.2018-09-12_00_00_00.nc', 'SKINTEMP');
    disp(skintemp)
    skintemp1=skintemp(:,:);
    pcolor(lat(1: 111, 1: 96),lon(1: 111, 1: 96),skintemp1);

    运行结果:

    欢迎关注我的公众号:

                         编程技术与生活(ID:hw_cchang)

     

    展开全文
  • MATLAB批量读取NC数据并计算年平均
  • netcdf读取NC数据,C语言+VS2017环境部署简单说明前期准备环境、软件环境搭建环境配置测试代码 简单说明 本来主要使用C#开发后台的,对C也只是简单会用,因C#调用各种第三方组件都多少存在一些无法解决的问题,...

    netcdf读取NC数据,C语言+VS2017环境部署

    简单说明

    本来主要使用C#开发后台的,对C也只是简单会用,因C#调用各种第三方组件都多少存在一些无法解决的问题,尝试使用C来自己封装,所以编写的啰嗦一些,主要针对我这种小白,写的不对的地方,请大神告知。

    前期准备

    简单介绍环境软件介绍、下载地址等等。

    环境、软件

    使用环境、软件:

    1. Panoply:也是使用netcdf编写的,读取NC文件,用来查看数据,也可以使用其他的;
    2. vs:版本不要太古老,我用的是vs2017
    3. netcdf:我使用的是 4.6.1

    下载链接:

    1. Panoplyhttps://www.giss.nasa.gov/tools/panoply/download/PanoplyWin-4.10.4.zip (官方地址)
    2. vshttps://visualstudio.microsoft.com/zh-hans/downloads/ (官方地址)
      http://msdn.itellyou.cn/ (资源比较全,不保证安全)
    3. netcdfhttps://www.unidata.ucar.edu/downloads/netcdf/ftp/netCDF4.6.1-NC3-32.exe (官方地址)
      https://www.unidata.ucar.edu/downloads/netcdf/index.jsp (其他选择)

    环境搭建

    环境配置

    1. 项目属性\VC++目录\包含目录 添加 C:\Program Files (x86)\netCDF 4.6.1\include (安装位置的include目录)
    2. 项目属性\VC++目录\库目录 添加 C:\Program Files (x86)\netCDF 4.6.1\lib (安装位置的lib目录)
    3. 项目属性\链接器\附加库目录 添加 C:\Program Files (x86)\netCDF 4.6.1\bin\netcdf.dll (安装位置的bin\netcdf.dll文件)
    4. 项目属性\链接器\输入\附加依赖项 添加 netcdf.lib

    必须以Release方式编译
    必须以Release方式编译
    必须以Release方式编译

    测试代码

    test.c

    #include <stido.h>
    int ncid;
    //获取字段数据
    int getColData(char *colname, float *dataArray)
    {
    	int varid;
    	nc_inq_varid(ncid, colname, &varid);
    	nc_get_var_float(ncid, varid, dataArray);
    	return 0;
    }
    //获取字段内容数量
    int getColLen(char *colname)
    {
    	int dimid;
    	size_t size;
    	//获取字段维度
    	nc_inq_dimid(ncid, colname, &dimid);
    	nc_inq_dimlen(ncid, dimid, &size);
    	return (int)size;
    }
    //获取nc数据一维数据
    void getNcData(char *ncFilePath,char *Name)
    {
    	int varid,i,lon_length;
    	float *lon_data = NULL;
    	//打开nc文件
    	nc_open(ncFilePath,0,&ncid);
    	lon_length = getColLen(Name);
    	//声明存储数据空间
    	lon_data = (float *)malloc(lon_length * sizeof(float));
    	if (NULL == lon_data)
    	{
    		return NULL;
    	}
    	getColData(Name, lon_data);
    	for(i = 0; i < lon_length; i++)
    	{
    		printf("%.4f\t",lon_data[i]);
    	}
    	
    }
    int main()
    {
    	getNcData("d:\******.nc","longitude");
    	system("pause");
    	return 0;
    }
    
    展开全文
  • 内容包含java环境包(安装)和panoply包(无需安装),作为气象学习小工具,简单快捷,还可以可视化。
  • IDL 读取nc数据代码

    千次阅读 2018-10-02 16:41:12
    file_ID = NCDF_OPEN(theseFiles[fidx],/NOWRITE) ;open netCDF file for READ only Tag = NCDF_INQUIRE(file_ID) timeid = NCDF_VARID...scale_factor','add_offset一定要注意获取,也要注意最后读取出来的单位。
    file_ID = NCDF_OPEN(theseFiles[fidx],/NOWRITE)   ;open netCDF file for READ only
        Tag = NCDF_INQUIRE(file_ID)
        timeid = NCDF_VARID(file_ID,'time')             ;initial_time0initial_time0_hours  initial_time0
        NCDF_VARGET, file_ID, timeid, time              ;获取 时间维变量
        nt = N_ELEMENTS(time)
        ;print,time
        latid = NCDF_VARID(file_ID,'latitude')               ;g0_lat_2
        NCDF_VARGET, file_ID, latid, latitude           ;获取 时间维变量
        nlat = N_ELEMENTS(latitude)                     ;纬向维长度
        ;print,'dsklfjdsjfkldjsfkljl'+latitude
        lonid = NCDF_VARID(file_ID,'longitude')                ;g0_lon_3
        NCDF_VARGET, file_ID, lonid, longitude           ;获取 时间维变量
        nlon = N_ELEMENTS(longitude)                     ;径向维长度
    
        t2mid = NCDF_VARID(file_ID,'t2m')                ;g0_lon_3
        NCDF_VARGET, file_ID, t2mid, t2m           ;获取 温度维变量
        nt2m = N_ELEMENTS(t2m)
        
        ncdf_attget,file_ID,t2mid,'scale_factor',a
        ncdf_attget,file_ID,t2mid,'add_offset',b
        year=STRMID(thesefiles[fidx],0,4)
        month=STRMID(thesefiles[fidx],5,2)
        outtmp=fltarr(480,15,band[fidx]*4)
        outtmp[*,*,*]=t2m[*,*,*]*a+b
        NCDF_CLOSE, file_ID
        print,'  All parameters of file ' + thesefiles[fidx] + ' have been writen out!'
        outfilename = STRCOMPRESS(outfilepath +string(year,FORMAT='(I04)')+'_'+string(month,FORMAT='(I02)'),/remove_all)
        openw,var_lun,outfilename,/get_lun
        writeu,var_lun,outtmp;
        close,var_lun
        free_lun,var_lun

    scale_factor','add_offset一定要注意获取,也要注意最后读取出来的单位。

    展开全文
  • Matlab 查阅、读取nc数据

    万次阅读 2017-07-24 11:49:42
    1. 查阅nc文件信息:  ncdisp('*.nc','/','full'),
  • 写在前面 netcdf是气象、生态、地理领域非常常用的一种数据格式,读写的方法很多,arcgis、arcpy、python、matlab等等均有相应的方法。 本文基于R语言实现netcdf的数据读取,提取数据中的单个...打开nc数据,并展示其中
  • MATLAB 读取NC数据的命令

    万次阅读 2011-12-09 00:46:36
    对于批量文件,以下提供循环读取nc文件的方法。 file_stru=dir('the/path/of/the/data'); file_stru.name%查看你要读取的文件的编号。file_stru(1).name和file_stru(2).name在window下分别为.和.. for ...
  • 气象水文类, matlab读取nc格式数据到ascii
  • MATLAB打开nc文件并读取nc文件数据

    千次阅读 2020-06-04 10:19:39
    MATLAB读取nc文件 根据上一步中nc文件的基本信息提取nc文件的相应数据。 time=ncread('E:\**\**.nc','time') 将nc文件中所需要的数据保存至txt文档 首先,将所需要的数据提取出来 start=[125,89,123] count=[17,14,...
  • nc数据读取基础教程,适合新手学习掌握。。。。。
  • python读取.nc数据

    万次阅读 2018-12-29 10:37:16
    要用python读取.nc数据,首先要安装netCDF4包。运行 pip install netCDF4 即可。首先通过 import netCDF4 as nc file = nc.Dataset(file_path) 打开文件,如果我们对.nc文件的内容一无所知,那么可以通过 ...
  • JAVA读取NC文件,以读取NOAA数据为例

    千次阅读 2018-08-22 14:16:24
    运行结果: 假如要读具体的数据,比如我要读高度数据ALT的前10个的数据。用代码Variable v.read();就可以了,read括号里头可以加范围,比如读前10个就是Variable v.read(0:9),类似切片。 读高度前10个数据代码: ...
  • python netcdf4读取nc格式的气象数据

    万次阅读 多人点赞 2019-12-04 17:03:06
    二、nc格式数据读取 #!usr/bin/env python # -*- coding: utf-8 -*- """ @Author : zhaoguanhua @Email : zhaogh@hdsxtech.com @Time : 2019/12/4 16:45 @File : weather.py @Software: PyCharm """ im...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,495
精华内容 8,598
关键字:

怎么读取nc数据