<div dir="ltr"><div><div><div><div><div>Hi Lei,<br><br></div>I had spent sometime on reading the GFEDS v4 data using NCL version 6.2.1 and have written the attached NCL script that reads the data for each month, and emission source for 18 years and a particular aerosol type. I do not if you need those calculations as I did inside the loops to obtain final aerosol emissions which is summed over all 6 sources. To check the accuracy of calculation it prints &quot;glob_mn&quot; which can be compared with table values provided on the data site.<br></div><br></div>I hope that may work for you, at least should provide some sense how deal with grouped hdf5 data.<br></div><div>Let us how it works.<br></div><div><br></div>Good Luck!<br></div>Rashed<br><br><br>Date: Tue, 9 Jun 2015 13:35:18 -0400<br>
From: dream916 &lt;<a href="mailto:dream916@gmail.com">dream916@gmail.com</a>&gt;<br>
Subject: [ncl-talk] Read HDF5 file<br>
To: ncl-talk forum &lt;<a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:CABOT6NTdtm4HYqW5HV%2BV6whq9jzD8xyKVOYxiAQi%2BZgQP%2B%2BuJQ@mail.gmail.com">CABOT6NTdtm4HYqW5HV+V6whq9jzD8xyKVOYxiAQi+ZgQP++uJQ@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br><br>Hi,<br>
<br>
I was trying to read global fire emission dataset v4 in hdf4 format. I<br>
searched online and couldn&#39;t find any examples how to read groups within<br>
group. My code is as follows:<br>
<br>
; read hdf5 fire dataset<br>
begin<br>
setfileoption(&quot;h5&quot;, &quot;FileStructure&quot;, &quot;Advanced&quot;)<br>
f = addfile(&quot;GFED4.0s_1997.hdf5&quot;,&quot;r&quot;)<br>
grps = getfilegroups(f,&quot;/&quot;,0)<br>
print(grps)<br>
grps2 = getfilegroups(f,&quot;/emissions/&quot;,0)<br>
print(grps2)<br>
lat = f-&gt;lat<br>
lon = f-&gt;lon<br>
printVarSummary(lat)<br>
printVarSummary(lon)<br>
g = f=&gt;ancill<br>
gridarea = g-&gt;grid_cell_area<br>
printVarSummary(gridarea)<br>
emissions = f=&gt;emissions<br>
<br>
in the dataset, emissions is a group which contains two subgroups (month<br>
and partitioning) (see below).<br>
<br>
group: emissions {<br>
<br>
<br>
  group: \01 {<br>
<br>
    dimensions:<br>
<br>
    phony_dim_52 = 720 ;<br>
<br>
    phony_dim_53 = 1440 ;<br>
<br>
    variables:<br>
<br>
    float C(phony_dim_52, phony_dim_53) ;<br>
<br>
     string C:long_name = &quot;GFED4s biomass burning carbon emissions&quot; ;<br>
<br>
     string C:units = &quot;g C / m^2 / month&quot; ;<br>
<br>
    float DM(phony_dim_52, phony_dim_53) ;<br>
<br>
     string DM:long_name = &quot;GFED4s biomass burning dry matter emissions&quot; ;<br>
<br>
     string DM:units = &quot;kg DM / m^2 / month&quot; ;<br>
<br>
    float small_fire_fraction(phony_dim_52, phony_dim_53) ;<br>
<br>
     string small_fire_fraction:long_name = &quot;Fraction of total GFED4s<br>
biomass burning emissions originating from \&quot;small fire burned area\&quot;&quot; ;<br>
<br>
     string small_fire_fraction:units = &quot;Unitless (fraction)&quot; ;<br>
<br>
<br>
    group: partitioning {<br>
<br>
      dimensions:<br>
<br>
      phony_dim_50 = 720 ;<br>
<br>
      phony_dim_51 = 1440 ;<br>
<br>
      variables:<br>
<br>
      float C_AGRI(phony_dim_50, phony_dim_51) ;<br>
<br>
       string C_AGRI:long_name = &quot;Contribution of agricultural waste<br>
burning to total monthly biomass burning carbon emissions&quot; ;<br>
<br>
       string C_AGRI:units = &quot;Unitless&quot; ;<br>
<br>
      float C_BORF(phony_dim_50, phony_dim_51) ;<br>
<br>
       string C_BORF:long_name = &quot;Contribution of boreal forest fires to<br>
total monthly biomass burning carbon emissions&quot; ;<br>
<br>
       string C_BORF:units = &quot;Unitless&quot; ;<br>
<br>
So my question is how to read the monthly emissions and partitioning<br>
associated with each month into an array.<br>
Thanks,<br>
Lei Meng<br></div>