Matlab葵花卫星NC文件读取,以图像形式保存,或以mat形式保存

关于葵花卫星NC文件的读取

其实很早就想写一下,因为去年的时候自己也是慢慢研究。其实这东西很简单,但是对于当时刚了解这玩意,网上也没找到,自己瞎搞了半天。现在共享一下,希望可以帮助刚刚了解的人。

先上代码,然后再解释。

首先贴上代码:

clc;
clear all;


  
    ncFilePath ='NC_H08_20150707_0400_R21_FLDK.02401_02401.nc';
      nc_name='20150707_0400'
%     latitude = ncread(ncFilePath, 'latitude');
%     longitude = ncread(ncFilePath, 'longitude');
%     albedo_03 = ncread(ncFilePath, 'albedo_03'); albedo_03 = albedo_03';
        %  读取文件各通道变量
    latitude = ncread(ncFilePath, 'latitude');
    longitude = ncread(ncFilePath, 'longitude');
    albedo_01 = ncread(ncFilePath, 'albedo_01'); albedo_01 = albedo_01';
    albedo_02 = ncread(ncFilePath, 'albedo_02'); albedo_02 = albedo_02';
    albedo_03 = ncread(ncFilePath, 'albedo_03'); albedo_03 = albedo_03';
    albedo_04 = ncread(ncFilePath, 'albedo_04'); albedo_04 = albedo_04';
    albedo_05 = ncread(ncFilePath, 'albedo_05'); albedo_05 = albedo_05';
    albedo_06 = ncread(ncFilePath, 'albedo_06'); albedo_06 = albedo_06';
    tbb_07 = ncread(ncFilePath, 'tbb_07'); tbb_07 = tbb_07';
    tbb_08 = ncread(ncFilePath, 'tbb_08'); tbb_08 = tbb_08';
    tbb_09 = ncread(ncFilePath, 'tbb_09'); tbb_09 = tbb_09';
    tbb_10 = ncread(ncFilePath, 'tbb_10'); tbb_10 = tbb_10';
    tbb_11 = ncread(ncFilePath, 'tbb_11'); tbb_11 = tbb_11';
    tbb_12 = ncread(ncFilePath, 'tbb_12'); tbb_12 = tbb_12';
    tbb_13 = ncread(ncFilePath, 'tbb_13'); tbb_13 = tbb_13';
    tbb_14 = ncread(ncFilePath, 'tbb_14'); tbb_14 = tbb_14';
    tbb_15 = ncread(ncFilePath, 'tbb_15'); tbb_15 = tbb_15';
    tbb_16 = ncread(ncFilePath, 'tbb_16'); tbb_16 = tbb_16';
    
    a = 351; a1 = a + 511;
    b = 731; b1 = b + 511;
    latitude_part = latitude(a:a1);
    longitude_part = longitude(b: b1);


    albedo_01_part = albedo_01(a:a1, b: b1);
    albedo_02_part = albedo_02(a:a1, b: b1);
    albedo_03_part = albedo_03(a:a1, b: b1);
    albedo_04_part = albedo_04(a:a1, b: b1);
    albedo_05_part = albedo_05(a:a1, b: b1);
    albedo_06_part = albedo_06(a:a1, b: b1);
    tbb_07_part = tbb_07(a:a1, b: b1);
    tbb_08_part = tbb_08(a:a1, b: b1);
    tbb_09_part = tbb_09(a:a1, b: b1);
    tbb_10_part = tbb_10(a:a1, b: b1);
    tbb_11_part = tbb_11(a:a1, b: b1);
    tbb_12_part = tbb_12(a:a1, b: b1);
    tbb_13_part = tbb_13(a:a1, b: b1);
    tbb_14_part = tbb_14(a:a1, b: b1);
    tbb_15_part = tbb_15(a:a1, b: b1);
    tbb_16_part = tbb_16(a:a1, b: b1);
    SAZ = ncread(ncFilePath, 'SAZ');       % satellite zenith angle
    SAA = ncread(ncFilePath, 'SAA');       % satellite azimuth angle
    SOZ = ncread(ncFilePath, 'SOZ');  SOZ = SOZ';     % solar zenith angle
    SOA = ncread(ncFilePath, 'SOA');       % solar azimuth angle
    Hour = ncread(ncFilePath, 'Hour');

    SOZ_part = SOZ(a: a1, b: b1);
    tmp_SOZ = cosd(SOZ_part);
    albedo_01_soz = albedo_01_part ;
    albedo_02_soz = albedo_02_part ;
    albedo_03_soz = albedo_03_part ;
    albedo_04_soz = albedo_04_part ;
    albedo_05_soz = albedo_05_part ;
    albedo_06_soz = albedo_06_part ;
    %1
    min_01 = min(min(albedo_01_soz));
    max_01 = max(max(albedo_01_soz));
    X_01 = (albedo_01_soz - min_01);
    max_X_01 = max(max(X_01));
    X_01 = (X_01/max_X_01);
    %2
    min_02 = min(min(albedo_02_soz));
    max_02 = max(max(albedo_02_soz));
    X_02 = (albedo_02_soz - min_02);
    max_X_02 = max(max(X_02));
    X_02 = (X_02/max_X_02);
    %3
    min_03 = min(min(albedo_03_soz));
    max_03 = max(max(albedo_03_soz));
    X_03 = (albedo_03_soz - min_03);
    max_X_03 = max(max(X_03));
    X_03 = (X_03/max_X_03);
    %4
    min_04 = min(min(albedo_04_soz));
    max_04 = max(max(albedo_04_soz));
    X_04 = (albedo_04_soz - min_04);
    max_X_04 = max(max(X_04));
    X_04 = (X_04/max_X_04);
    %5
    min_05 = min(min(albedo_05_soz));
    max_05 = max(max(albedo_05_soz));
    X_05 = (albedo_05_soz - min_05);
    max_X_05 = max(max(X_05));
    X_05 = (X_05/max_X_05);
    %6
    min_06 = min(min(albedo_06_soz));
    max_06 = max(max(albedo_06_soz));
    X_06 = (albedo_06_soz - min_06);
    max_X_06 = max(max(X_06));
    X_06 = (X_06/max_X_06);
    %7
    min_07 = min(min(tbb_07_part));
    max_07 = max(max(tbb_07_part));
    X_07 = (tbb_07_part - min_07);
    max_X_07 = max(max(X_07));
    X_07 = (X_07/max_X_07);
    %8
   min_08 = min(min(tbb_08_part));
    max_08 = max(max(tbb_08_part));
    X_08 = (tbb_08_part - min_08);
    max_X_08 = max(max(X_08));
    X_08 = (X_08/max_X_08);
    %9
  min_09 = min(min(tbb_09_part));
    max_09 = max(max(tbb_09_part));
    X_09 = (tbb_09_part - min_09);
    max_X_09 = max(max(X_09));
    X_09 = (X_09/max_X_09);
    %10
     min_10 = min(min(tbb_10_part));
    max_10 = max(max(tbb_10_part));
    X_10 = (tbb_10_part - min_10);
    max_X_10 = max(max(X_10));
    X_10 = (X_10/max_X_10);
    %11
     min_11 = min(min(tbb_11_part));
    max_11 = max(max(tbb_11_part));
    X_11 = (tbb_11_part - min_11);
    max_X_11 = max(max(X_11));
    X_11 = (X_11/max_X_11);
    %12
     min_12 = min(min(tbb_12_part));
    max_12 = max(max(tbb_12_part));
    X_12 = (tbb_12_part - min_12);
    max_X_12 = max(max(X_12));
    X_12 = (X_12/max_X_12);
    %13
     min_13 = min(min(tbb_13_part));
    max_13 = max(max(tbb_13_part));
    X_13 = (tbb_13_part - min_13);
    max_X_13 = max(max(X_13));
    X_13 = (X_13/max_X_13);
    %14
    min_14 = min(min(tbb_14_part));
    max_14 = max(max(tbb_14_part));
    X_14 = (tbb_14_part - min_14);
    max_X_14 = max(max(X_14));
    X_14 = (X_14/max_X_14);
    %15
     min_15 = min(min(tbb_15_part));
    max_15 = max(max(tbb_15_part));
    X_15 = (tbb_15_part - min_15);
    max_X_15 = max(max(X_15));
    X_15 = (X_15/max_X_15);
    %16
    min_16 = min(min(tbb_16_part));
    max_16 = max(max(tbb_16_part));
    X_16 = (tbb_16_part - min_16);
    max_X_16 = max(max(X_16));
    X_16 = (X_16/max_X_16);
    if ~exist('F:\csdn\Band1','dir')
        mkdir('F:\csdn\Band1');
    end
    savepath_01= strcat('F:\csdn\Band1', '\', nc_name, '.png');
    imwrite( albedo_01_part, savepath_01);
    if ~exist('F:\csdn\Band2','dir')
        mkdir('F:\csdn\Band2');
    end
    savepath_02= strcat('F:\csdn\Band2', '\', nc_name, '.png');
    imwrite(albedo_02_part, savepath_02);
    if ~exist('F:\csdn\Band3','dir')
        mkdir('F:\csdn\Band3');
    end
    savepath_03= strcat('F:\csdn\Band3', '\', nc_name, '.png');
    imwrite(albedo_03_part, savepath_03);
    if ~exist('F:\csdn\Band4','dir')
        mkdir('F:\csdn\Band4');
    end
    savepath_04= strcat('F:\csdn\Band4', '\', nc_name, '.png');
    imwrite(albedo_04_part, savepath_04);
    if ~exist('F:\csdn\Band5','dir')
        mkdir('F:\csdn\Band5');
    end
    savepath_05= strcat('F:\csdn\Band5', '\', nc_name, '.png');
    imwrite(albedo_05_part, savepath_05);
    if ~exist('F:\csdn\Band6','dir')
        mkdir('F:\csdn\Band6');
    end
    savepath_06= strcat('F:\csdn\Band6', '\', nc_name, '.png');
    imwrite(albedo_06_part, savepath_06);
    if ~exist('F:\csdn\Band7','dir')
        mkdir('F:\csdn\Band7');
    end
     savepath_07= strcat('F:\csdn\Band7', '\', nc_name, '.png');
    imwrite( X_07, savepath_07);
    if ~exist('F:\csdn\Band8','dir')
        mkdir('F:\csdn\Band8');
    end
    savepath_08= strcat('F:\csdn\Band8', '\', nc_name, '.png');
    imwrite( X_08, savepath_08);
    if ~exist('F:\csdn\Band9','dir')
        mkdir('F:\csdn\Band9');
    end
    savepath_09= strcat('F:\csdn\Band9', '\', nc_name, '.png');
    imwrite( X_09, savepath_09);
    if ~exist('F:\csdn\Band10','dir')
        mkdir('F:\csdn\Band10');
    end
    savepath_10= strcat('F:\csdn\Band10', '\', nc_name, '.png');
    imwrite( X_10, savepath_10);
    if ~exist('F:\csdn\Band11','dir')
        mkdir('F:\csdn\Band11');
    end
    savepath_11= strcat('F:\csdn\Band11', '\', nc_name, '.png');
    imwrite( X_11, savepath_11);
    if ~exist('F:\csdn\Band12','dir')
        mkdir('F:\csdn\Band12');
    end
    savepath_12= strcat('F:\csdn\Band12', '\', nc_name, '.png');
    imwrite( X_12, savepath_12);
    if ~exist('F:\csdn\Band13','dir')
        mkdir('F:\csdn\Band13');
    end
    savepath_13= strcat('F:\csdn\Band13', '\', nc_name, '.png');
    imwrite( X_13, savepath_13);
    if ~exist('F:\csdn\Band14','dir')
        mkdir('F:\csdn\Band14');
    end
    savepath_14= strcat('F:\csdn\Band14', '\', nc_name, '.png');
    imwrite( X_14, savepath_14);
    if ~exist('F:\csdn\Band15','dir')
        mkdir('F:\csdn\Band15');
    end
    savepath_15= strcat('F:\csdn\Band15', '\', nc_name, '.png');
    imwrite( X_15, savepath_15);
    if ~exist('F:\csdn\Band16','dir')
        mkdir('F:\csdn\Band16');
    end
    savepath_16= strcat('F:\csdn\Band16', '\', nc_name, '.png');
    imwrite( X_16, savepath_16);
%--------------------你可以把它十六个通道保存在一个mat里,其实我们需要的还是它的原始数据------------------------------------------
%     savepath_16= strcat('F:\测试', '\', nc_name, '.mat');
%     save(savepath_16,'tbb_07_part','tbb_08_part','tbb_14_part','tbb_15_part');
 
    




代码解释:

在这里插入图片描述
这就是读取nc文件中的数据嘛,我所使用的是葵花十六个通道的NC文件,可以读取上述的属性。
在这里插入图片描述
在这里插入图片描述

这个是区域的选择,可以从读取的经度和纬度的矩阵里选取自己需要读取的经纬度的行列数。我是以512读取的。
在这里插入图片描述

变成图片嘛,自然需要归一化一下。十六个通道都归一化一下。
在这里插入图片描述
保存图片嘛,有十六个通道自然需要十六个文件夹,然后imwrite,写进去。
你如果想保存原来的数值,你就采用mat文件存储,因为有十六个通道,我就不一一写了。
以下是例子,你可以把16个通道都放一个mat里。

在这里插入图片描述

结果展示:

在这里插入图片描述
在这里插入图片描述

好了,到此结束。
其实有代码你们可以稍微看看运行一下就懂了。很简单,没有参考的话 自己真的是搞半天。

  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Escape the bug

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

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

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

打赏作者

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

抵扣说明:

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

余额充值