爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12340|回复: 15

[程序设计] matlab读取grd错误

[复制链接]
发表于 2013-10-30 17:50:33 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
新手才接触matlab  , 在网上、论坛找了很多经验贴,写了个读grd的程序,但是画不出图  求大神看看哪里出错了:

clc;clear all;
fid=fopen('E:\data\EL_19930101.grd','rb');
ssh=fread(fid,inf,'float32');   %inf表示读取全部数据float32为浮点型
fclose(fid);
%size(a)
ssh=reshape(ssh,620,866,1,1);   %为866方向,620为Y方向,1为垂直方向,1为时间维数

load lonlat lon lat
m_proj('Equidistant Cylindrical','lon',[107.9583 180],'lat',[10.4583 62.0413]);%
[lon,lat]=meshgrid(lon,lat);
m_pcolor(lon,lat,ssh);
%m_scatter(lon,lat,ssh);
colorbar;
caxis([-0.8992 1.0409])
m_coast('patch',[0.5647 0.9333 0.5647]);
ssh(ssh<-10)=NaN;

% m_contourf(lon,lat,ssh)
m_grid;


对应的grd文件用grads画出来的图 EL_19930101.png

CTL文件:

dset E:\data\EL_19930101.grd      
title FRA-JCOPE2
options big_endian template
undef -99.9999
xdef  866 levels
   107.958336   108.041672   108.125008   108.208344   108.291679   108.375015
   108.458351   108.541687   108.625023   108.708359   108.791695   108.875031
   108.958366   109.041702   109.125038   109.208374   109.291710   109.375046
   109.458382   109.541718   109.625053   109.708389   109.791725   109.875061
   109.958397   110.041733   110.125069   110.208405   110.291740   110.375076
   110.458412   110.541748   110.625084   110.708420   110.791756   110.875092
   110.958427   111.041763   111.125099   111.208435   111.291771   111.375107
   111.458443   111.541779   111.625114   111.708450   111.791786   111.875122
   111.958458   112.041794   112.125130   112.208466   112.291801   112.375137
   112.458473   112.541809   112.625145   112.708481   112.791817   112.875153
   112.958488   113.041824   113.125160   113.208496   113.291832   113.375168
   113.458504   113.541840   113.625175   113.708511   113.791847   113.875183
   113.958519   114.041855   114.125191   114.208527   114.291862   114.375198
   114.458534   114.541870   114.625206   114.708542   114.791878   114.875214
   114.958549   115.041885   115.125221   115.208557   115.291893   115.375229
   115.458565   115.541901   115.625237   115.708572   115.791908   115.875244
   115.958580   116.041916   116.125252   116.208588   116.291924   116.375259
   116.458595   116.541931   116.625267   116.708603   116.791939   116.875275
   116.958611   117.041946   117.125282   117.208618   117.291954   117.375290
   117.458626   117.541962   117.625298   117.708633   117.791969   117.875305
   117.958641   118.041977   118.125313   118.208649   118.291985   118.375320
   118.458656   118.541992   118.625328   118.708664   118.792000   118.875336
   118.958672   119.042007   119.125343   119.208679   119.292015   119.375351
   119.458687   119.542023   119.625359   119.708694   119.792030   119.875366
   119.958702   120.042038   120.125374   120.208710   120.292046   120.375381
   120.458717   120.542053   120.625389   120.708725   120.792061   120.875397
   120.958733   121.042068   121.125404   121.208740   121.292076   121.375412
   121.458748   121.542084   121.625420   121.708755   121.792091   121.875427
   121.958763   122.042099   122.125435   122.208771   122.292107   122.375443
   122.458778   122.542114   122.625450   122.708786   122.792122   122.875458
   122.958794   123.042130   123.125465   123.208801   123.292137   123.375473
   123.458809   123.542145   123.625481   123.708817   123.792152   123.875488
   123.958824   124.042160   124.125496   124.208832   124.292168   124.375504
   124.458839   124.542175   124.625511   124.708847   124.792183   124.875519
   124.958855   125.042191   125.125526   125.208862   125.292198   125.375534
   125.458870   125.542206   125.625542   125.708878   125.792213   125.875549
   125.958885   126.042221   126.125557   126.208893   126.292229   126.375565
   126.458900   126.542236   126.625572   126.708908   126.792244   126.875580
   126.958916   127.042252   127.125587   127.208923   127.292259   127.375595
   127.458931   127.542267   127.625603   127.708939   127.792274   127.875610
   127.958946   128.042282   128.125610   128.208939   128.292267   128.375595
   128.458923   128.542252   128.625580   128.708908   128.792236   128.875565
   128.958893   129.042221   129.125549   129.208878   129.292206   129.375534
   129.458862   129.542191   129.625519   129.708847   129.792175   129.875504
   129.958832   130.042160   130.125488   130.208817   130.292145   130.375473
   130.458801   130.542130   130.625458   130.708786   130.792114   130.875443
   130.958771   131.042099   131.125427   131.208755   131.292084   131.375412
   131.458740   131.542068   131.625397   131.708725   131.792053   131.875381
   131.958710   132.042038   132.125366   132.208694   132.292023   132.375351
   132.458679   132.542007   132.625336   132.708664   132.791992   132.875320
   132.958649   133.041977   133.125305   133.208633   133.291962   133.375290
   133.458618   133.541946   133.625275   133.708603   133.791931   133.875259
   133.958588   134.041916   134.125244   134.208572   134.291901   134.375229
   134.458557   134.541885   134.625214   134.708542   134.791870   134.875198
   134.958527   135.041855   135.125183   135.208511   135.291840   135.375168
   135.458496   135.541824   135.625153   135.708481   135.791809   135.875137
   135.958466   136.041794   136.125122   136.208450   136.291779   136.375107
   136.458435   136.541763   136.625092   136.708420   136.791748   136.875076
   136.958405   137.041733   137.125061   137.208389   137.291718   137.375046
   137.458374   137.541702   137.625031   137.708359   137.791687   137.875015
   137.958344   138.041672   138.125000   138.208328   138.291656   138.374985
   138.458313   138.541641   138.624969   138.708298   138.791626   138.874954
   138.958282   139.041611   139.124939   139.208267   139.291595   139.374924
   139.458252   139.541580   139.624908   139.708237   139.791565   139.874893
   139.958221   140.041550   140.124878   140.208206   140.291534   140.374863
   140.458191   140.541519   140.624847   140.708176   140.791504   140.874832
   140.958160   141.041489   141.124817   141.208145   141.291473   141.374802
   141.458130   141.541458   141.624786   141.708115   141.791443   141.874771
   141.958099   142.041428   142.124756   142.208084   142.291412   142.374741
   142.458069   142.541397   142.624725   142.708054   142.791382   142.874710
   142.958038   143.041367   143.124695   143.208023   143.291351   143.374680
   143.458008   143.541336   143.624664   143.707993   143.791321   143.874649
   143.957977   144.041306   144.124634   144.207962   144.291290   144.374619
   144.457947   144.541275   144.624603   144.707932   144.791260   144.874588
   144.957916   145.041245   145.124573   145.207901   145.291229   145.374557
   145.457886   145.541214   145.624542   145.707870   145.791199   145.874527
   145.957855   146.041183   146.124512   146.207840   146.291168   146.374496
   146.457825   146.541153   146.624481   146.707809   146.791138   146.874466
   146.957794   147.041122   147.124451   147.207779   147.291107   147.374435
   147.457764   147.541092   147.624420   147.707748   147.791077   147.874405
   147.957733   148.041061   148.124390   148.207718   148.291046   148.374374
   148.457703   148.541031   148.624359   148.707687   148.791016   148.874344
   148.957672   149.041000   149.124329   149.207657   149.290985   149.374313
   149.457642   149.540970   149.624298   149.707626   149.790955   149.874283
   149.957611   150.040939   150.124268   150.207596   150.290924   150.374252
   150.457581   150.540909   150.624237   150.707565   150.790894   150.874222
   150.957550   151.040878   151.124207   151.207535   151.290863   151.374191
   151.457520   151.540848   151.624176   151.707504   151.790833   151.874161
   151.957489   152.040817   152.124146   152.207474   152.290802   152.374130
   152.457458   152.540787   152.624115   152.707443   152.790771   152.874100
   152.957428   153.040756   153.124084   153.207413   153.290741   153.374069
   153.457397   153.540726   153.624054   153.707382   153.790710   153.874039
   153.957367   154.040695   154.124023   154.207352   154.290680   154.374008
   154.457336   154.540665   154.623993   154.707321   154.790649   154.873978
   154.957306   155.040634   155.123962   155.207291   155.290619   155.373947
   155.457275   155.540604   155.623932   155.707260   155.790588   155.873917
   155.957245   156.040573   156.123901   156.207230   156.290558   156.373886
   156.457214   156.540543   156.623871   156.707199   156.790527   156.873856
   156.957184   157.040512   157.123840   157.207169   157.290497   157.373825
   157.457153   157.540482   157.623810   157.707138   157.790466   157.873795
   157.957123   158.040451   158.123779   158.207108   158.290436   158.373764
   158.457092   158.540421   158.623749   158.707077   158.790405   158.873734
   158.957062   159.040390   159.123718   159.207047   159.290375   159.373703
   159.457031   159.540359   159.623688   159.707016   159.790344   159.873672
   159.957001   160.040329   160.123657   160.206985   160.290314   160.373642
   160.456970   160.540298   160.623627   160.706955   160.790283   160.873611
   160.956940   161.040268   161.123596   161.206924   161.290253   161.373581
   161.456909   161.540237   161.623566   161.706894   161.790222   161.873550
   161.956879   162.040207   162.123535   162.206863   162.290192   162.373520
   162.456848   162.540176   162.623505   162.706833   162.790161   162.873489
   162.956818   163.040146   163.123474   163.206802   163.290131   163.373459
   163.456787   163.540115   163.623444   163.706772   163.790100   163.873428
   163.956757   164.040085   164.123413   164.206741   164.290070   164.373398
   164.456726   164.540054   164.623383   164.706711   164.790039   164.873367
   164.956696   165.040024   165.123352   165.206680   165.290009   165.373337
   165.456665   165.539993   165.623322   165.706650   165.789978   165.873306
   165.956635   166.039963   166.123291   166.206619   166.289948   166.373276
   166.456604   166.539932   166.623260   166.706589   166.789917   166.873245
   166.956573   167.039902   167.123230   167.206558   167.289886   167.373215
   167.456543   167.539871   167.623199   167.706528   167.789856   167.873184
   167.956512   168.039841   168.123169   168.206497   168.289825   168.373154
   168.456482   168.539810   168.623138   168.706467   168.789795   168.873123
   168.956451   169.039780   169.123108   169.206436   169.289764   169.373093
   169.456421   169.539749   169.623077   169.706406   169.789734   169.873062
   169.956390   170.039719   170.123047   170.206375   170.289703   170.373032
   170.456360   170.539688   170.623016   170.706345   170.789673   170.873001
   170.956329   171.039658   171.122986   171.206314   171.289642   171.372971
   171.456299   171.539627   171.622955   171.706284   171.789612   171.872940
   171.956268   172.039597   172.122925   172.206253   172.289581   172.372910
   172.456238   172.539566   172.622894   172.706223   172.789551   172.872879
   172.956207   173.039536   173.122864   173.206192   173.289520   173.372849
   173.456177   173.539505   173.622833   173.706161   173.789490   173.872818
   173.956146   174.039474   174.122803   174.206131   174.289459   174.372787
   174.456116   174.539444   174.622772   174.706100   174.789429   174.872757
   174.956085   175.039413   175.122742   175.206070   175.289398   175.372726
   175.456055   175.539383   175.622711   175.706039   175.789368   175.872696
   175.956024   176.039352   176.122681   176.206009   176.289337   176.372665
   176.455994   176.539322   176.622650   176.705978   176.789307   176.872635
   176.955963   177.039291   177.122620   177.205948   177.289276   177.372604
   177.455933   177.539261   177.622589   177.705917   177.789246   177.872574
   177.955902   178.039230   178.122559   178.205887   178.289215   178.372543
   178.455872   178.539200   178.622528   178.705856   178.789185   178.872513
   178.955841   179.039169   179.122498   179.205826   179.289154   179.372482
   179.455811   179.539139   179.622467   179.705795   179.789124   179.872452
   179.955780   180.039108
ydef  620 levels
    10.458333    10.541666    10.624999    10.708332    10.791665    10.874998
    10.958331    11.041664    11.124997    11.208330    11.291663    11.374996
    11.458329    11.541662    11.624995    11.708328    11.791661    11.874994
    11.958327    12.041660    12.124993    12.208326    12.291659    12.374992
    12.458325    12.541658    12.624991    12.708324    12.791657    12.874990
    12.958323    13.041656    13.124990    13.208323    13.291656    13.374989
    13.458322    13.541655    13.624988    13.708321    13.791654    13.874987
    13.958320    14.041653    14.124986    14.208319    14.291652    14.374985
    14.458318    14.541651    14.624984    14.708317    14.791650    14.874983
    14.958316    15.041649    15.124982    15.208315    15.291648    15.374981
    15.458314    15.541647    15.624980    15.708313    15.791646    15.874979
    15.958312    16.041645    16.124979    16.208313    16.291647    16.374981
    16.458315    16.541649    16.624983    16.708317    16.791651    16.874985
    16.958319    17.041653    17.124987    17.208321    17.291655    17.374989
    17.458323    17.541656    17.624990    17.708324    17.791658    17.874992
    17.958326    18.041660    18.124994    18.208328    18.291662    18.374996
    18.458330    18.541664    18.624998    18.708332    18.791666    18.875000
    18.958334    19.041668    19.125002    19.208336    19.291670    19.375004
    19.458338    19.541672    19.625006    19.708340    19.791674    19.875008
    19.958342    20.041676    20.125010    20.208344    20.291677    20.375011
    20.458345    20.541679    20.625013    20.708347    20.791681    20.875015
    20.958349    21.041683    21.125017    21.208351    21.291685    21.375019
    21.458353    21.541687    21.625021    21.708355    21.791689    21.875023
    21.958357    22.041691    22.125025    22.208359    22.291693    22.375027
    22.458361    22.541695    22.625029    22.708363    22.791697    22.875031
    22.958364    23.041698    23.125032    23.208366    23.291700    23.375034
    23.458368    23.541702    23.625036    23.708370    23.791704    23.875038
    23.958372    24.041706    24.125040    24.208374    24.291708    24.375042
    24.458376    24.541710    24.625044    24.708378    24.791712    24.875046
    24.958380    25.041714    25.125048    25.208382    25.291716    25.375050
    25.458384    25.541718    25.625051    25.708385    25.791719    25.875053
    25.958387    26.041721    26.125055    26.208389    26.291723    26.375057
    26.458391    26.541725    26.625059    26.708393    26.791727    26.875061
    26.958395    27.041729    27.125063    27.208397    27.291731    27.375065
    27.458399    27.541733    27.625067    27.708401    27.791735    27.875069
    27.958403    28.041737    28.125071    28.208405    28.291739    28.375072
    28.458406    28.541740    28.625074    28.708408    28.791742    28.875076
    28.958410    29.041744    29.125078    29.208412    29.291746    29.375080
    29.458414    29.541748    29.625082    29.708416    29.791750    29.875084
    29.958418    30.041752    30.125086    30.208420    30.291754    30.375088
    30.458422    30.541756    30.625090    30.708424    30.791758    30.875092
    30.958426    31.041759    31.125093    31.208427    31.291761    31.375095
    31.458429    31.541763    31.625097    31.708431    31.791765    31.875099
    31.958433    32.041767    32.125099    32.208431    32.291763    32.375095
    32.458427    32.541759    32.625092    32.708424    32.791756    32.875088
    32.958420    33.041752    33.125084    33.208416    33.291748    33.375080
    33.458412    33.541744    33.625076    33.708408    33.791740    33.875072
    33.958405    34.041737    34.125069    34.208401    34.291733    34.375065
    34.458397    34.541729    34.625061    34.708393    34.791725    34.875057
    34.958389    35.041721    35.125053    35.208385    35.291718    35.375050
    35.458382    35.541714    35.625046    35.708378    35.791710    35.875042
    35.958374    36.041706    36.125038    36.208370    36.291702    36.375034
    36.458366    36.541698    36.625031    36.708363    36.791695    36.875027
    36.958359    37.041691    37.125023    37.208355    37.291687    37.375019
    37.458351    37.541683    37.625015    37.708347    37.791679    37.875011
    37.958344    38.041676    38.125008    38.208340    38.291672    38.375004
    38.458336    38.541668    38.625000    38.708332    38.791664    38.874996
    38.958328    39.041660    39.124992    39.208324    39.291656    39.374989
    39.458321    39.541653    39.624985    39.708317    39.791649    39.874981
    39.958313    40.041645    40.124977    40.208309    40.291641    40.374973
    40.458305    40.541637    40.624969    40.708302    40.791634    40.874966
    40.958298    41.041630    41.124962    41.208294    41.291626    41.374958
    41.458290    41.541622    41.624954    41.708286    41.791618    41.874950
    41.958282    42.041615    42.124947    42.208279    42.291611    42.374943
    42.458275    42.541607    42.624939    42.708271    42.791603    42.874935
    42.958267    43.041599    43.124931    43.208263    43.291595    43.374928
    43.458260    43.541592    43.624924    43.708256    43.791588    43.874920
    43.958252    44.041584    44.124916    44.208248    44.291580    44.374912
    44.458244    44.541576    44.624908    44.708241    44.791573    44.874905
    44.958237    45.041569    45.124901    45.208233    45.291565    45.374897
    45.458229    45.541561    45.624893    45.708225    45.791557    45.874889
    45.958221    46.041553    46.124886    46.208218    46.291550    46.374882
    46.458214    46.541546    46.624878    46.708210    46.791542    46.874874
    46.958206    47.041538    47.124870    47.208202    47.291534    47.374866
    47.458199    47.541531    47.624863    47.708195    47.791527    47.874859
    47.958191    48.041523    48.124855    48.208187    48.291519    48.374851
    48.458183    48.541515    48.624847    48.708179    48.791512    48.874844
    48.958176    49.041508    49.124840    49.208172    49.291504    49.374836
    49.458168    49.541500    49.624832    49.708164    49.791496    49.874828
    49.958160    50.041492    50.124825    50.208157    50.291489    50.374821
    50.458153    50.541485    50.624817    50.708149    50.791481    50.874813
    50.958145    51.041477    51.124809    51.208141    51.291473    51.374805
    51.458138    51.541470    51.624802    51.708134    51.791466    51.874798
    51.958130    52.041462    52.124794    52.208126    52.291458    52.374790
    52.458122    52.541454    52.624786    52.708118    52.791451    52.874783
    52.958115    53.041447    53.124779    53.208111    53.291443    53.374775
    53.458107    53.541439    53.624771    53.708103    53.791435    53.874767
    53.958099    54.041431    54.124763    54.208096    54.291428    54.374760
    54.458092    54.541424    54.624756    54.708088    54.791420    54.874752
    54.958084    55.041416    55.124748    55.208080    55.291412    55.374744
    55.458076    55.541409    55.624741    55.708073    55.791405    55.874737
    55.958069    56.041401    56.124733    56.208065    56.291397    56.374729
    56.458061    56.541393    56.624725    56.708057    56.791389    56.874722
    56.958054    57.041386    57.124718    57.208050    57.291382    57.374714
    57.458046    57.541378    57.624710    57.708042    57.791374    57.874706
    57.958038    58.041370    58.124702    58.208035    58.291367    58.374699
    58.458031    58.541363    58.624695    58.708027    58.791359    58.874691
    58.958023    59.041355    59.124687    59.208019    59.291351    59.374683
    59.458015    59.541348    59.624680    59.708012    59.791344    59.874676
    59.958008    60.041340    60.124672    60.208004    60.291336    60.374668
    60.458000    60.541332    60.624664    60.707996    60.791328    60.874660
    60.957993    61.041325    61.124657    61.207989    61.291321    61.374653
    61.457985    61.541317    61.624649    61.707981    61.791313    61.874645
    61.957977    62.041309
zdef    1 linear 0 1.
tdef    1 linear  1JAN1993  1DY
vars 1
el 1 0 Sea surface height (m)
endvars





密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 17:52:50 | 显示全部楼层
大神{:5_275:}{:5_275:}{:5_275:}
@Aires
@artmunich
密码修改失败请联系微信:mofangbao
发表于 2013-10-30 18:05:15 | 显示全部楼层
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 18:21:40 | 显示全部楼层
Aires 发表于 2013-10-30 18:05
先把缺测设为NaN,再用m_pcolor。

缺测值设为NaN怎么设置的啊  是ssh(ssh<-10)=NaN 么 ?

读入grd数据有错误么?
ssh=fread(fid,inf,'float32');   %inf表示读取全部数据float32为浮点型
fclose(fid);
%size(a)
ssh=reshape(ssh,620,866,1,1);   %为866方向,620为Y方向,1为垂直方向,1为时间维数
密码修改失败请联系微信:mofangbao
发表于 2013-10-30 19:17:56 | 显示全部楼层
二进制的数据我很少读,你help一下看一下函数用的是否正确。设为NaN的方法是正确的。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 19:28:39 | 显示全部楼层
我不知道环境维数
ssh=reshape(ssh,620,866,1,1);   %为866方向,620为Y方向,1为垂直方向,1为时间维数
这样写与grd是维数顺序读取是不是一致, 求用过是大神 帮忙看看啊
密码修改失败请联系微信:mofangbao
发表于 2013-10-30 22:40:11 | 显示全部楼层
LZ最好分两步走:
1.看看读出来的数据量级对不对,随便取这个数据某行某列看看数值是多少,跟实际相不相符,如果不符直接读法有问题,再进行讨论;
2.如果量级大致对了,把图画出来看看和grads的对比一下,尤其海岸线那一块很明显就能看出地图投影方式对不对(就是数据排列方式了),要是不对可以通过转置和调整reshape维数的方式修正,最终以跟grads图像一致为准。
只是提供个思路,希望有帮助。

点评

图很漂亮: 0.0 刚好需要: 5.0
谢谢共享: 0.0 已经有人发过了: 0.0
图很漂亮: 0 刚好需要: 5 谢谢共享: 0 已经有人发过了: 0
  发表于 2013-10-31 11:08

评分

参与人数 1金钱 +2 收起 理由
新八不是废材男 + 2

查看全部评分

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-31 11:07:57 | 显示全部楼层
斥鷃 发表于 2013-10-30 22:40
LZ最好分两步走:
1.看看读出来的数据量级对不对,随便取这个数据某行某列看看数值是多少,跟实际相不相符 ...

非常感谢你,
     grads 中有能直接在图形上标出图中数据值的语句么? 我的做法是用cbar 1.0 0 画出色标  然后跟用matlab读出的数据比较 数据量级是一致的。
   然后用上面的画图,却是这个结果: figure 1.png
帮忙看看要怎么改



密码修改失败请联系微信:mofangbao
发表于 2013-10-31 14:21:47 | 显示全部楼层
你上面这张图是用pcolor画的吗,如果是,程序后面加上 shading flat 应该就可以了。
具体可详见help shading
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-2 18:32:05 | 显示全部楼层
shadowcathy 发表于 2013-10-31 14:21
你上面这张图是用pcolor画的吗,如果是,程序后面加上 shading flat 应该就可以了。
具体可详见help shadi ...

非常感谢你的回复,问题已解决。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表