[gradsusr] Issues opening GOES-16 NetCDF files

Garcia Orza, Jose Antonio ja.garcia at umh.es
Fri Nov 9 04:22:25 EST 2018


Ok, pero empezaré a las 15:30 :)
Mejórate

De: gradsusr [mailto:gradsusr-bounces at gradsusr.org] En nombre de James Spinks
Enviado el: viernes, 09 de noviembre de 2018 4:13
Para: Robert Kuligowski <bob.kuligowski at noaa.gov>; GrADS Users Forum <gradsusr at gradsusr.org>
Asunto: Re: [gradsusr] Issues opening GOES-16 NetCDF files

Hi All,

I have had success in opening GOES-16 in GrADS and plotting on a lat/lon grid.

There is a trick that includes using the Weather & Climate Tool Kit. I will give steps as follow.

1) Download NOAA's  Weather and Climate Toolkit
https://www.ncdc.noaa.gov/wct/

The toolkit's GUI has direct access to GOES-16 data on Amazon Web Service, so you can access the data and display satellite information on the Weather and Climate toolkit. If desired, you can export the GOES-16 onto a lat/lon grid using the data exporter.
https://www.ncdc.noaa.gov/wct/tutorials/?file=advanced-dataexporter

The data exporter will create a gridded netcdf file and you can use the newly exported file to open in GrADS. The biggest drawback using this method is that you maybe not be able to automate easily if you're trying to stay update on the images.

2) So the next option will be to use the command line and create a script to do the work for you.

I use Linux to do this, so I do not know how this would work on other operating systems. When you download the source source code for the toolkit, there is no compiling of any sorts you need to do.

I used this site to help me create a script to download the latest GOES 16 data. I obviously made tweaks to my script to fit my needs, but this site was a great starting point.
https://geonetcast.wordpress.com/2018/01/10/script-to-download-goes-16-netcdfs-from-amazon-s3/

Once I downloaded the data, I can now use the Weather and Climate Toolkit with command lines to export the original netcdf file to a gridded netcdf file.

Here is the command:

/path_to_the_directory_of_the_toolkit/wct-4.1.0/wct-export /path_to_the_raw_goes_16_data_file/OR_ABI-L1b-RadF-M4C13_G16_s20182741545224_e20182741550041_c20182741550103.nc /path_to_the_directory_you_want_the_file_to_be_created_to/ nc /path_to_the_xml_needed_to_process_the_goes_data/wct-4.1.0/Channel_02/conus.xml
I am providing a sample XML file. I obtained it from the GUI interface of the Weather & Climate Toolkit. You're going to have to read through the XML file and play around with some of the options. The biggest option is setting the lat/long within the XML file. The lat/lon currently set is for CONUS area. There are other options as well, but you're going to have to read through depending on what you want. There are definite drawbacks doing this method, but overall I have been successful in displaying very nice images with GrADS. Since GrADS is not as powerful as python in how GOES can be displayed, you will not be able to plot true color images from the GOES-16 Channels 1-3. But you can display each channel individually. Once you run that command line, then you'll have a netcdf file to plot in grads that are gridded. Please, understand that there will be some drawbacks at first, so you're really going to have to play around with the XML file. Use the Weather and Climate Toolkit's GUI interface to also help guide you as well.

Hope all this helps and good luck!

Copy and page this code into a file with the extension .xml

<?xml version="1.0"?>
<wctExportBatchOptions version="3">
   <!--
      Logging options: These can be 'SEVERE', 'WARNING', 'INFO', 'DEBUG'
   -->
   <logging>WARNING</logging>


<!--
   This determines if the cache will be used for remote files that have already
   been downloaded.  This should be set to FALSE for real-time data where the
   name of the file doesn't change but the data inside the file is regularly updated.
-->
   <useCache>FALSE</useCache>

<!--  ============================================================== -->
<!--  Grid Section - decoding and filtering options                 -->
<!--  ============================================================== -->

   <grid>

   <!--   match="exact|ignoreCase|wildcard|regex"  sometime in the future? -->
      <gridOptions>
         <variable name="Rad"/>
         <!--  Example below uses variable substitution.  This allows variables to be
         sent into the batch processing scripts and replaced in the config file when
         run.  To enable the variable substution, add ':::$KEY1=$VALUE1;$KEY2=VALUE2;...'
         to the filename of the XML batch config.
         Example) wctBatchConfig.xml:::KEY1=VALUE1;KEY2=VALUE2;KEY3=VALUE3;

         Example) wct-export input-file.nc out.kmz kmz wctBatchConfig.xml:::GRIDVAR=RotationTrack30min_altitude_above_msl

         <variable name="${GRIDVAR}"/>
         -->

         <time    lookupType="index" lookup="0"  />
         <runtime lookupType="index" lookup="0"  />
         <height  lookupType="index" lookup="0"  />
      </gridOptions>

      <gridFilter>
         <!--
            Geographic Extent Filter units of decimal degrees
         -->

         <minLat>24</minLat>
         <maxLat>50</maxLat>
         <minLon>-125</minLon>
         <maxLon>-67</maxLon>

         <!--
            Example geographic filter: Uncomment and modify if desired.
            Because the 'min' or 'max' longitude value can be confusing,
            it doesn't matter which has the 'true' min value. This will
            be calculated automatically in the program.  Radar products default
            to the range of the product centered on the Radar site.
            GOES Satellite products default to a generous ConUS extent.
         -->
         <!--
            <minLat> 35.0 </minLat>
            <maxLat> 36.0 </maxLat>
            <minLon>-90.0 </minLon>
            <maxLon> -91.0 </maxLon>
            -->
         <!--
            (-82.6, 26.4, 1.2, 1.2) <minLat> 35.8 </minLat> <maxLat>
            37.0 </maxLat> <minLon> -87.1 </minLon> <maxLon> -85.9
            </maxLon>
         -->



         <!--
            This filter removes values below or above the specified limits
            during the decoding process.
         -->
         <minValue>NONE</minValue>
         <maxValue>NONE</maxValue>
      </gridFilter>
   </grid>


<!--  ============================================================== -->
<!--  Radar Section - decoding and filtering options                 -->
<!--  ============================================================== -->
  <radar>
<!--
 Define Options and Filtering for Command-Line Batch Export
-->
      <radialOptions>
         <!--
            For Level-II NEXRAD this can be: 'Reflectivity',
            'RadialVelocity' or 'SpectrumWidth'
         -->
         <variable>Reflectivity</variable>
         <!--
            0-based number of the desired sweep (sometimes called cut) of
            radar file - some sweeps will not contain any information
            for the desired moment - 0 & 2 generally only have
            Reflectivity data while 1 & 3 have Velocity/Spec. Width -
            The remaining sweeps usually have all moments in each cut
            although this may vary with - vcp 12 and 121.

            Each sweep will have a unique elevation angle.  The sweeps are
            ordered by the time that the sweep starts, where 0 is the first
            sweep in the volume scan.
         -->
         <sweep>0</sweep>
         <!--
            Classify polygon values into 5 dbZ (4 dbZ in Clear-Air Mode)
            intervals
         -->
         <classify>false</classify>

       <!--
        Export RF values for BVEL and SPEC moments
       -->
         <useRFvalues>true</useRFvalues>

         <!--
          Export single cut in point shapefile
         -->
         <exportPoints>false</exportPoints>
         <!--
            Export entire moment in point shapefile (overrides
            exportPoints value and any specified cut integer)
         -->
         <exportAllPoints>false</exportAllPoints>
      </radialOptions>
      <radialFilter>

         <!-- Range Filter units of kilometers -->
         <minRange>NONE</minRange>
         <maxRange>NONE</maxRange>
         <!-- Azimuth Filter units of decimal degrees -->
         <minAzimuth>NONE</minAzimuth>
         <maxAzimuth>NONE</maxAzimuth>
         <!--
            This filter removes values below or above the specified limits
            during the decoding process.
            Use a comma-separated list of min values with a comma-separated
            list of max values. For example, min values of '-200,30' and
            max values of '-30,200' creates 2 value ranges of -200 to
            -30 and 30 to 200. This is useful for velocity products
            where the strongest winds are of most interest.  Use 'NONE',
            comment out or remove if no filter is needed.
         -->
         <minValue>NONE</minValue>
         <maxValue>NONE</maxValue>
         <!--
            All geographic extent fields must be specified for
            geographic filter to be engaged.
         -->
   <!--
    Geographic Extent Filter units of decimal degrees
   -->
         <minLat>NONE</minLat>
         <maxLat>NONE</maxLat>
         <minLon>NONE</minLon>
         <maxLon>NONE</maxLon>
         <!--
            Example geographic filter: Uncomment and modify if desired
            Because the 'min' or 'max' longitude value can be confusing,
            it doesn't matter which has the 'true' min value. This will
            be calculated automatically in the program.
         -->
         <!--
            <minLat> 35.0 </minLat> <maxLat> 36.0 </maxLat> <minLon>
            -90.0 </minLon> <maxLon> -91.0 </maxLon>
         -->
         <!--
            (-82.6, 26.4, 1.2, 1.2) <minLat> 35.8 </minLat> <maxLat>
            37.0 </maxLat> <minLon> -87.1 </minLon> <maxLon> -85.9
            </maxLon>
         -->
         <!--
            Height Filter units of meters (relative to radar site)
         -->
         <minHeight>NONE</minHeight>
         <maxHeight>NONE</maxHeight>
      </radialFilter>
      <level3Options>
         <!--
            Join equal value polygons - this greatly increases
            processing time but reduces filesizes by ~35%
         -->
         <reducePolygons> false</reducePolygons>
      </level3Options>
      <level3Filter>
         <!-- Range Filter units of kilometers -->
         <minRange>NONE</minRange>
         <maxRange>NONE</maxRange>
         <!--
            While most Level-III data is categorized, this software will
            calculate which categories should be included based on max
            and min filter values. Multiple max-min ranges can be
            created for the value filter. Use a comma-separated list of
            min values with a comma-separated list of max values. For
            example, min values of '-200,30' and max values of '-30,200'
            creates 2 value ranges of -200 to -30 and 30 to 200. This is
            useful for velocity products where the strongest winds are
            of most interest.
         -->
         <minValue>NONE</minValue>
         <maxValue>NONE</maxValue>
         <!--
            The Category Override allows non-numeric fields (such as
            'RF' for range folding) to be included if desired.
         -->
         <categoryOverrides>RF</categoryOverrides>
         <!--
            All geographic extent fields must be specified for
            geographic filter to be engaged.
         -->
       <!-- Geographic Extent Filter units of decimal degrees -->
         <minLat>NONE</minLat>
         <maxLat>NONE</maxLat>
         <minLon>NONE</minLon>
         <maxLon>NONE</maxLon>
         <!--
            Example geographic filter: Uncomment and modify if desired
            Because the 'min' or 'max' longitude value can be confusing,
            it doesn't matter which has the 'true' min value. This will
            be calculated automatically in the program.
         -->
         <!--
            <minLat> 35.0 </minLat> <maxLat> 36.0 </maxLat> <minLon>
            -90.0 </minLon> <maxLon> -91.0 </maxLon>
         -->
      </level3Filter>
   </radar>



<netcdf xmlns='http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2'
    location=' ' >

  <dimension name='number_of_time_bounds' length='2' />
  <dimension name='band' length='1' />
  <dimension name='number_of_image_bounds' length='2' />
  <dimension name='y' length='21696' />
  <dimension name='x' length='21696' />
  <dimension name='num_star_looks' length='24' />

  <attribute name='naming_authority' value='gov.nesdis.noaa' />
  <attribute name='Conventions' value='CF-1.7' />
  <attribute name='Metadata_Conventions' value='Unidata Dataset Discovery v1.0' />
  <attribute name='standard_name_vocabulary' value='CF Standard Name Table (v25, 05 July 2013)' />
  <attribute name='institution' value='DOC/NOAA/NESDIS > U.S. Department of Commerce, National Oceanic and Atmospheric Administration, National Environmental Satellite, Data, and Information Services' />
  <attribute name='project' value='GOES' />
  <attribute name='production_site' value='RBU' />
  <attribute name='production_environment' value='OE' />
  <attribute name='spatial_resolution' value='0.5km at nadir' />
  <attribute name='orbital_slot' value='GOES-East' />
  <attribute name='platform_ID' value='G16' />
  <attribute name='instrument_type' value='GOES R Series Advanced Baseline Imager' />
  <attribute name='scene_id' value='Full Disk' />
  <attribute name='instrument_ID' value='FM1' />
  <attribute name='title' value='ABI L1b Radiances' />
  <attribute name='summary' value='Single reflective band ABI L1b Radiance Products are digital maps of outgoing radiance values at the top of the atmosphere for visible and near-IR bands.' />
  <attribute name='keywords' value='SPECTRAL/ENGINEERING > VISIBLE WAVELENGTHS > VISIBLE RADIANCE' />
  <attribute name='keywords_vocabulary' value='NASA Global Change Master Directory (GCMD) Earth Science Keywords, Version 7.0.0.0.0' />
  <attribute name='iso_series_metadata_id' value='a70be540-c38b-11e0-962b-0800200c9a66' />
  <attribute name='license' value='Unclassified data.  Access is restricted to approved users only.' />
  <attribute name='processing_level' value='National Aeronautics and Space Administration (NASA) L1b' />
  <attribute name='cdm_data_type' value='Image' />
  <attribute name='dataset_name' value='OR_ABI-L1b-RadF-M3C02_G16_s20182170000445_e20182170011212_c20182170011255.nc' />
  <attribute name='production_data_source' value='Realtime' />
  <attribute name='timeline_id' value='ABI Mode 3' />
  <attribute name='date_created' value='2018-08-05T00:11:25.5Z' />
  <attribute name='time_coverage_start' value='2018-08-05T00:00:44.5Z' />
  <attribute name='time_coverage_end' value='2018-08-05T00:11:21.2Z' />
  <attribute name='id' value='b390de3f-74b5-4ec9-8798-271c753765ce' />
  <attribute name='_CoordSysBuilder' value='ucar.nc2.dataset.conv.CF1Convention' />

  <variable name='Rad' type='float' shape='y x' >
    <attribute name='long_name' value='ABI L1b Radiances' />
    <attribute name='standard_name' value='toa_outgoing_radiance_per_unit_wavelength' />
    <attribute name='sensor_band_bit_depth' value='12 ' type='byte' />
    <attribute name='units' value='W m-2 sr-1 um-1' />
    <attribute name='resolution' value='y: 0.000014 rad x: 0.000014 rad' />
    <attribute name='coordinates' value='band_id band_wavelength t y x' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: point area: point' />
    <attribute name='ancillary_variables' value='DQF' />
    <attribute name='_ChunkSizes' value='226  226 ' type='int' />
  </variable>
  <variable name='DQF' type='byte' shape='y x' >
    <attribute name='_FillValue' value='-1 ' type='byte' />
    <attribute name='long_name' value='ABI L1b Radiances data quality flags' />
    <attribute name='standard_name' value='status_flag' />
    <attribute name='_Unsigned' value='true' />
    <attribute name='valid_range' value='0  3 ' type='byte' />
    <attribute name='units' value='1' />
    <attribute name='coordinates' value='band_id band_wavelength t y x' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: point area: point' />
    <attribute name='flag_values' value='0  1  2  3 ' type='byte' />
    <attribute name='flag_meanings' value='good_pixel_qf conditionally_usable_pixel_qf out_of_range_pixel_qf no_value_pixel_qf' />
    <attribute name='number_of_qf_values' value='4 ' type='byte' />
    <attribute name='percent_good_pixel_qf' value='0.9999922 ' type='float' />
    <attribute name='percent_conditionally_usable_pixel_qf' value='3.0E-7 ' type='float' />
    <attribute name='percent_out_of_range_pixel_qf' value='3.8E-6 ' type='float' />
    <attribute name='percent_no_value_pixel_qf' value='0.0 ' type='float' />
    <attribute name='_ChunkSizes' value='226  226 ' type='int' />
  </variable>
  <variable name='time_bounds' type='double' shape='number_of_time_bounds' >
    <attribute name='long_name' value='Scan start and end times in seconds since epoch (2000-01-01 12:00:00)' />
  </variable>
  <variable name='goes_imager_projection' type='int' >
    <attribute name='long_name' value='GOES-R ABI fixed grid projection' />
    <attribute name='grid_mapping_name' value='geostationary' />
    <attribute name='perspective_point_height' value='3.5786023E7 ' type='double' />
    <attribute name='semi_major_axis' value='6378137.0 ' type='double' />
    <attribute name='semi_minor_axis' value='6356752.31414 ' type='double' />
    <attribute name='inverse_flattening' value='298.2572221 ' type='double' />
    <attribute name='latitude_of_projection_origin' value='0.0 ' type='double' />
    <attribute name='longitude_of_projection_origin' value='-75.0 ' type='double' />
    <attribute name='sweep_angle_axis' value='x' />
    <attribute name='_CoordinateTransformType' value='Projection' />
    <attribute name='_CoordinateAxisTypes' value='GeoX GeoY' />
  </variable>
  <variable name='y_image_bounds' type='float' shape='number_of_image_bounds' >
    <attribute name='long_name' value='GOES-R fixed grid projection y-coordinate north/south extent of image' />
  </variable>
  <variable name='x_image_bounds' type='float' shape='number_of_image_bounds' >
    <attribute name='long_name' value='GOES-R fixed grid projection x-coordinate west/east extent of image' />
  </variable>
  <variable name='nominal_satellite_subpoint_lat' type='float' >
    <attribute name='long_name' value='nominal satellite subpoint latitude (platform latitude)' />
    <attribute name='standard_name' value='latitude' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='degrees_north' />
  </variable>
  <variable name='nominal_satellite_subpoint_lon' type='float' >
    <attribute name='long_name' value='nominal satellite subpoint longitude (platform longitude)' />
    <attribute name='standard_name' value='longitude' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='degrees_east' />
  </variable>
  <variable name='nominal_satellite_height' type='float' >
    <attribute name='long_name' value='nominal satellite height above GRS 80 ellipsoid (platform altitude)' />
    <attribute name='standard_name' value='height_above_reference_ellipsoid' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='km' />
  </variable>
  <variable name='geospatial_lat_lon_extent' type='float' >
    <attribute name='long_name' value='geospatial latitude and longitude references' />
    <attribute name='geospatial_westbound_longitude' value='-156.2995 ' type='float' />
    <attribute name='geospatial_northbound_latitude' value='81.3282 ' type='float' />
    <attribute name='geospatial_eastbound_longitude' value='6.2995 ' type='float' />
    <attribute name='geospatial_southbound_latitude' value='-81.3282 ' type='float' />
    <attribute name='geospatial_lat_center' value='0.0 ' type='float' />
    <attribute name='geospatial_lon_center' value='-75.0 ' type='float' />
    <attribute name='geospatial_lat_nadir' value='0.0 ' type='float' />
    <attribute name='geospatial_lon_nadir' value='-75.0 ' type='float' />
    <attribute name='geospatial_lat_units' value='degrees_north' />
    <attribute name='geospatial_lon_units' value='degrees_east' />
  </variable>
  <variable name='yaw_flip_flag' type='byte' >
    <attribute name='long_name' value='Flag indicating the spacecraft is operating in yaw flip configuration' />
    <attribute name='_Unsigned' value='true' />
    <attribute name='_FillValue' value='-1 ' type='byte' />
    <attribute name='valid_range' value='0  1 ' type='byte' />
    <attribute name='units' value='1' />
    <attribute name='coordinates' value='t' />
    <attribute name='flag_values' value='0 1' />
    <attribute name='flag_meanings' value='false true' />
  </variable>
  <variable name='esun' type='float' >
    <attribute name='long_name' value='bandpass-weighted solar irradiance at the mean Earth-Sun distance' />
    <attribute name='standard_name' value='toa_shortwave_irradiance_per_unit_wavelength' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='W m-2 um-1' />
    <attribute name='coordinates' value='band_id band_wavelength t' />
    <attribute name='cell_methods' value='t: mean' />
  </variable>
  <variable name='kappa0' type='float' >
    <attribute name='long_name' value='Inverse of the incoming top of atmosphere radiance at current earth-sun distance (PI d2 esun-1)-1, where d is the ratio of instantaneous Earth-Sun distance divided by the mean Earth-Sun distance, esun is the bandpass-weighted solar irradiance and PI is a standard constant used to convert ABI L1b radiance to reflectance' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='(W m-2 um-1)-1' />
    <attribute name='coordinates' value='band_id band_wavelength t' />
    <attribute name='cell_methods' value='t: mean' />
  </variable>
  <variable name='planck_fk1' type='float' >
    <attribute name='long_name' value='wavenumber-dependent coefficient (2 h c2/ nu3) used in the ABI emissive band monochromatic brightness temperature computation, where nu =central wavenumber and h and c are standard constants' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='W m-1' />
    <attribute name='coordinates' value='band_id band_wavelength' />
  </variable>
  <variable name='planck_fk2' type='float' >
    <attribute name='long_name' value='wavenumber-dependent coefficient (h c nu/b) used in the ABI emissive band monochromatic brightness temperature computation, where nu = central wavenumber and h, c, and b are standard constants' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='K' />
    <attribute name='coordinates' value='band_id band_wavelength' />
  </variable>
  <variable name='planck_bc1' type='float' >
    <attribute name='long_name' value='spectral bandpass correction offset for brightness temperature (B(nu) - bc_1)/bc_2 where B()=planck_function() and nu=wavenumber' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='K' />
    <attribute name='coordinates' value='band_id band_wavelength' />
  </variable>
  <variable name='planck_bc2' type='float' >
    <attribute name='long_name' value='spectral bandpass correction scale factor for brightness temperature (B(nu) - bc_1)/bc_2 where B()=planck_function() and nu=wavenumber' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='1' />
    <attribute name='coordinates' value='band_id band_wavelength' />
  </variable>
  <variable name='valid_pixel_count' type='int' >
    <attribute name='long_name' value='number of good and conditionally usable pixels' />
    <attribute name='_FillValue' value='-1 ' type='int' />
    <attribute name='units' value='count' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: sum (interval: 0.000014 rad comment: good and conditionally usable quality pixels only)' />
  </variable>
  <variable name='missing_pixel_count' type='int' >
    <attribute name='long_name' value='number of missing pixels' />
    <attribute name='_FillValue' value='-1 ' type='int' />
    <attribute name='units' value='count' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: sum (interval: 0.000014 rad comment: missing ABI fixed grid pixels only)' />
  </variable>
  <variable name='saturated_pixel_count' type='int' >
    <attribute name='long_name' value='number of saturated pixels' />
    <attribute name='_FillValue' value='-1 ' type='int' />
    <attribute name='units' value='count' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: sum (interval: 0.000014 rad comment: radiometrically saturated geolocated/not missing pixels only)' />
  </variable>
  <variable name='undersaturated_pixel_count' type='int' >
    <attribute name='long_name' value='number of undersaturated pixels' />
    <attribute name='_FillValue' value='-1 ' type='int' />
    <attribute name='units' value='count' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: sum (interval: 0.000014 rad comment: radiometrically undersaturated geolocated/not missing pixels only)' />
  </variable>
  <variable name='min_radiance_value_of_valid_pixels' type='float' >
    <attribute name='long_name' value='minimum radiance value of pixels' />
    <attribute name='standard_name' value='toa_outgoing_radiance_per_unit_wavelength' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='valid_range' value='-20.289911  628.98724 ' type='float' />
    <attribute name='units' value='W m-2 sr-1 um-1' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: minimum (interval: 0.000014 rad comment: good and conditionally usable quality pixels only)' />
  </variable>
  <variable name='max_radiance_value_of_valid_pixels' type='float' >
    <attribute name='long_name' value='maximum radiance value of pixels' />
    <attribute name='standard_name' value='toa_outgoing_radiance_per_unit_wavelength' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='valid_range' value='-20.289911  628.98724 ' type='float' />
    <attribute name='units' value='W m-2 sr-1 um-1' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: maximum (interval: 0.000014 rad comment: good and conditionally usable quality pixels only)' />
  </variable>
  <variable name='mean_radiance_value_of_valid_pixels' type='float' >
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: mean (interval: 0.000014 rad comment: good and conditionally usable quality pixels only)' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='units' value='W m-2 sr-1 um-1' />
    <attribute name='long_name' value='mean radiance value of pixels' />
    <attribute name='standard_name' value='toa_outgoing_radiance_per_unit_wavelength' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='valid_range' value='-20.289911  628.98724 ' type='float' />
  </variable>
  <variable name='std_dev_radiance_value_of_valid_pixels' type='float' >
    <attribute name='long_name' value='standard deviation of radiance values of pixels' />
    <attribute name='standard_name' value='toa_outgoing_radiance_per_unit_wavelength' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='W m-2 sr-1 um-1' />
    <attribute name='coordinates' value='band_id band_wavelength t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: standard_deviation (interval: 0.000014 rad comment: good and conditionally usable quality pixels only)' />
  </variable>
  <variable name='percent_uncorrectable_L0_errors' type='float' >
    <attribute name='long_name' value='percent data lost due to uncorrectable L0 errors' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='valid_range' value='0.0  1.0 ' type='float' />
    <attribute name='units' value='percent' />
    <attribute name='coordinates' value='t y_image x_image' />
    <attribute name='grid_mapping' value='goes_imager_projection' />
    <attribute name='cell_methods' value='t: sum area: sum (uncorrectable L0 errors only)' />
  </variable>
  <variable name='earth_sun_distance_anomaly_in_AU' type='float' >
    <attribute name='long_name' value='earth sun distance anomaly in astronomical units' />
    <attribute name='_FillValue' value='-999.0 ' type='float' />
    <attribute name='units' value='ua' />
    <attribute name='coordinates' value='t' />
    <attribute name='cell_methods' value='t: mean' />
  </variable>
  <variable name='algorithm_dynamic_input_data_container' type='int' >
    <attribute name='long_name' value='container for filenames of dynamic algorithm input data' />
    <attribute name='input_ABI_L0_data' value='OR_ABI-L0-F-M3_G16_s20182170000445_e20182170011212_c*.nc' />
  </variable>
  <variable name='processing_parm_version_container' type='int' >
    <attribute name='long_name' value='container for processing parameter filenames' />
    <attribute name='L1b_processing_parm_version' value='ABI-L1b-PARM_G16_v01r00.zip' />
  </variable>
  <variable name='algorithm_product_version_container' type='int' >
    <attribute name='long_name' value='container for algorithm package filename and product version' />
    <attribute name='algorithm_version' value='OR_ABI-L1b-ALG-COMMON_v01r00.zip' />
    <attribute name='product_version' value='v01r00' />
  </variable>
  <variable name='star_id' type='short' shape='num_star_looks' >
    <attribute name='long_name' value='ABI star catalog identifier associated with observed star' />
    <attribute name='_Unsigned' value='true' />
    <attribute name='_FillValue' value='-1 ' type='short' />
    <attribute name='coordinates' value='band_id band_wavelength_star_look t_star_look' />
  </variable>
  <variable name='t' type='double' >
    <attribute name='long_name' value='J2000 epoch mid-point between the start and end image scan in seconds' />
    <attribute name='standard_name' value='time' />
    <attribute name='units' value='seconds since 2000-01-01 12:00:00' />
    <attribute name='axis' value='T' />
    <attribute name='bounds' value='time_bounds' />
    <attribute name='calendar' value='gregorian' />
    <attribute name='_CoordinateAxisType' value='Time' />
  </variable>
  <variable name='y' type='float' shape='y' >
    <attribute name='units' value='rad' />
    <attribute name='axis' value='Y' />
    <attribute name='long_name' value='GOES fixed grid projection y-coordinate' />
    <attribute name='standard_name' value='projection_y_coordinate' />
    <attribute name='_CoordinateAxisType' value='GeoY' />
  </variable>
  <variable name='x' type='float' shape='x' >
    <attribute name='units' value='rad' />
    <attribute name='axis' value='X' />
    <attribute name='long_name' value='GOES fixed grid projection x-coordinate' />
    <attribute name='standard_name' value='projection_x_coordinate' />
    <attribute name='_CoordinateAxisType' value='GeoX' />
  </variable>
  <variable name='y_image' type='float' >
    <attribute name='axis' value='Y' />
    <attribute name='units' value='rad' />
    <attribute name='long_name' value='GOES-R fixed grid projection y-coordinate center of image' />
    <attribute name='standard_name' value='projection_y_coordinate' />
    <attribute name='_CoordinateAxisType' value='GeoY' />
  </variable>
  <variable name='x_image' type='float' >
    <attribute name='long_name' value='GOES-R fixed grid projection x-coordinate center of image' />
    <attribute name='standard_name' value='projection_x_coordinate' />
    <attribute name='units' value='rad' />
    <attribute name='axis' value='X' />
    <attribute name='_CoordinateAxisType' value='GeoX' />
  </variable>
  <variable name='band_id' type='byte' shape='band' >
    <attribute name='long_name' value='ABI band number' />
    <attribute name='standard_name' value='sensor_band_identifier' />
    <attribute name='units' value='1' />
  </variable>
  <variable name='band_wavelength' type='float' shape='band' >
    <attribute name='long_name' value='ABI band central wavelength' />
    <attribute name='standard_name' value='sensor_band_central_radiation_wavelength' />
    <attribute name='units' value='um' />
  </variable>
  <variable name='t_star_look' type='double' shape='num_star_looks' >
    <attribute name='long_name' value='J2000 epoch time of star observed in seconds' />
    <attribute name='standard_name' value='time' />
    <attribute name='units' value='seconds since 2000-01-01 12:00:00' />
    <attribute name='axis' value='T' />
    <attribute name='calendar' value='gregorian' />
    <attribute name='_CoordinateAxisType' value='Time' />
  </variable>
  <variable name='band_wavelength_star_look' type='float' shape='num_star_looks' >
    <attribute name='long_name' value='ABI band central wavelength associated with observed star' />
    <attribute name='standard_name' value='sensor_band_central_radiation_wavelength' />
    <attribute name='units' value='um' />
  </variable>
</netcdf>


   <exportGridOptions>
      <!--
         'squareGridSize' represents the size for the 'long' side of the
         raster grid. The short side is dynamically calculated (always
         height because we are on a lat/lon grid). The grid cell
         resolution is dynamically calculated. For example, if 1000 is
         used, the width will be 1000, but the height will probably be
         somewhere between 800 and 900 depending on the latitude. This
         is done to reduce filesize by minimizing the amount of 'noData'
         areas outside the extent of the Radar site. If this value is
         '-1', the 'gridCellResolution' value will be used and the
         raster size is dynamically generated.
      -->
      <squareGridSize>-1</squareGridSize>
      <!--
         'gridCellResolution' represents the grid cell resolution in
         decimal degrees. The actual size (height and width) of the
         raster is dynamically calculated based on this value and the
         extent of the data.  Currently all GOES Satellite data extents
         default to a general ConUS area.  If this value is '-1', the
         'squareGridSize' value will be used and the grid cell
         resolution is dynamically generated. ** This functionality
         implemented in version >= 1.5.1 **
      -->
      <gridCellResolution>-1</gridCellResolution>

      <!-- 'noDataValue': Value for 'No Data' points in the grid -->
      <noDataValue>-999</noDataValue>
      <!--
         'smoothFactor': Smoothing factor to apply to the grid 0 = No
         Smoothing, 8 = Moderate Smoothing, 16 = Heavy Smoothing PLEASE
         USE WITH CAUTION!!! The smoothing algorithm is a simple
         kernal-based smoothing used in common image manipulation
         software. Each pixel will be equally averaged with a radius of
         neighboring pixels. The number neighboring pixels used depends
         on the smoothing factor and zoom extent. NOTE: Excessive
         smoothing will distort the data and remove important features.
         PLEASE USE WITH CAUTION!!!
      -->
      <smoothFactor>0</smoothFactor>
   </exportGridOptions>





   <exportKmlOptions>
      <!--
         Can be 'DRAPE_ON_MODEL', 'CLAMPED_TO_GROUND' or 'ABSOLUTE'
         'DRAPE_ON_MODEL' only applies to Radial datatype.
       -->
      <altMode> DRAPE_ON_MODEL </altMode>
      <!--
         'elevationExaggeration' ONLY applies when altMode is 'DRAPE_ON_MODEL'
         This is because COLLADA models are not automatically exaggerated when
         the Google Earth terrain exaggeration is increased.  The Google Earth
         exaggeration only applies to terrain and absolute heights above the
         terrain.
      -->
      <elevationExaggeration> 3 </elevationExaggeration>


      <!--
         A value of NONE indicates using the default palette.  For some data
         files, such as NEXRAD and GOES, the default palette is meaningful.
         For generic gridded datasets, the default 'rainbow' will be used
         along with the min/max values in the data.

         Example external palette:
         E:\work\export\nexrad-bref.wctpal
       -->
      <palette> rainbow-example.wctpal </palette>


       <!--
         'drawColorMapTransparentBackgroundPattern' currently does not apply to
         legends created from Radar datasets.

         The location of the legend is defined using the KML syntax for
         screen overlay objects.  For more information, check out:
         https://developers.google.com/kml/documentation/kml_tut#screen_overlays
       -->
       <legend drawColorMapTransparentBackgroundPattern="true">
           <location>
              <![CDATA[
          <overlayXY x="0" y="1" xunits="fraction" yunits="fraction"/>
          <screenXY x="0" y="0.975" xunits="fraction" yunits="fraction"/>
          <rotationXY x="0" y="0" xunits="fraction" yunits="fraction"/>
          <size x="-1" y="-1" xunits="fraction" yunits="fraction"/>
              ]]>
           </location>
       </legend>


       <!--
         Logo URL used in KMZ.  The special URL value of 'NOAA' will use the
         default NOAA logo which is packaged as part of the WCT.

         The location of the logo is defined using the KML syntax for
         screen overlay objects.  For more information, check out:
         https://developers.google.com/kml/documentation/kml_tut#screen_overlays
       -->
       <logo url="NOAA">
          <location>
             <![CDATA[
           <overlayXY x="1" y="0" xunits="fraction" yunits="fraction"/>
           <screenXY x="1" y="0.125" xunits="fraction" yunits="fraction"/>
           <rotationXY x="0" y="0" xunits="fraction" yunits="fraction"/>
           <size x="-1" y="-1" xunits="fraction" yunits="fraction"/>
             ]]>
          </location>
       </logo>

   </exportKmlOptions>


   <!-- Multiple timesteps defined by multiple files or dimensions -->
   <!-- operations of 'EXPORT_ALL', 'MATH_MAX', 'MATH_MIN', etc... -->
   <!--
   <multipleTimestepHandler operation="EXPORT_ALL" />
   -->

</wctExportBatchOptions>



________________________________
From: gradsusr <gradsusr-bounces at gradsusr.org<mailto:gradsusr-bounces at gradsusr.org>> on behalf of Robert Kuligowski <bob.kuligowski at noaa.gov<mailto:bob.kuligowski at noaa.gov>>
Sent: Wednesday, November 7, 2018 2:55 PM
To: gradsusr at gradsusr.org<mailto:gradsusr at gradsusr.org>
Subject: Re: [gradsusr] Issues opening GOES-16 NetCDF files


Karl and Jeff,

    The problem is that the GOES-16 data aren't on a constant grid or on a standard map projection, so I don't know of an easy way to make a GrADS control file that can adequately capture the navigation information in the file.  I've resorted to writing FORTRAN 90 code to remap the GOES-16 data onto a lat / lon grid and then plotting that in GrADS.

Cheers,

Bob
On 11/7/2018 1:50 PM, Jeff Duda wrote:
This page (http://cola.gmu.edu/grads/gadoc/gradcomdxdfopen.html) will give you all the information you need to create a control file. You can use ncdump -h or ncdump -c to get the attribute and dimension information and coordinate dumps needed.

Jeff Duda

On Wed, Nov 7, 2018 at 11:36 AM Schneider, Karl P <kps5442 at psu.edu<mailto:kps5442 at psu.edu>> wrote:
Bob, to clarify, I can create an image, but the problem is that like you mentioned, I'm not sure of a way to overlay the basemap.

Jeff,
That seems like what I need to do. Could you provide an example of a control file that might do the trick?

Karl

On Nov 7, 2018, at 1:12 PM, Jeff Duda <jeffduda319 at gmail.com<mailto:jeffduda319 at gmail.com>> wrote:
Have you tried writing a short control file and using xdfopen instead? That is a way of getting around netcdf files that aren't perfectly formatted.

Jeff Duda

On Wed, Nov 7, 2018 at 9:45 AM Schneider, Karl P <kps5442 at psu.edu<mailto:kps5442 at psu.edu>> wrote:

Hi everyone,

I'm looking for a way to plot some satellite data in GrADS. I've found a source for GOES-16 netcdf data, but its format is not compatible as shown below; the lat and lon are set to the number of grid points in the file, not the lat/lon extent of the file:


ga-> sdfopen OR_ABI-L2-CMIPC-M3C02_G16_s20183111612182_e20183111614555_c20183111615060.nc
Scanning self-describing file:  OR_ABI-L2-CMIPC-M3C02_G16_s20183111612182_e20183111614555_c20183111615060.nc
SDF file has no discernable time coordinate -- using default values.
SDF file OR_ABI-L2-CMIPC-M3C02_G16_s20183111612182_e20183111614555_c20183111615060.nc is open as file 1
LON set to 0 9999
LAT set to 0 5999

I've seen this issue pop up previously on the forum, but there was no good answer I could make sense of. I'm hoping someone could share some code with me to help resolve the issue, or better yet point me to a source of netcdf's that can be read in via the sdfopen command.

Thanks,
Karl

_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org<mailto:gradsusr at gradsusr.org>
http://gradsusr.org/mailman/listinfo/gradsusr<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgradsusr.org%2Fmailman%2Flistinfo%2Fgradsusr&data=02%7C01%7Ckps5442%40psu.edu%7C9dca7760f52641c0adf408d644dce4ba%7C7cf48d453ddb4389a9c1c115526eb52e%7C0%7C0%7C636772112853068537&sdata=7lEB5pmnM3i16TznhRnOfh3BHnr%2BQLb6cVldeLZguSY%3D&reserved=0>


--
Jeff Duda, Research Scientist

University of Colorado Boulder

Cooperative Institute for Research in Environmental Sciences

NOAA/OAR/ESRL/Global Systems Division
Boulder, CO
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org<mailto:gradsusr at gradsusr.org>
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgradsusr.org%2Fmailman%2Flistinfo%2Fgradsusr&data=02%7C01%7Ckps5442%40psu.edu%7C9dca7760f52641c0adf408d644dce4ba%7C7cf48d453ddb4389a9c1c115526eb52e%7C0%7C0%7C636772112853078546&sdata=jQIS0vA2UoiRz%2FpYuquZg3ga91H5ZknmLKxlttogSUc%3D&reserved=0
_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org<mailto:gradsusr at gradsusr.org>
http://gradsusr.org/mailman/listinfo/gradsusr


--
Jeff Duda, Research Scientist

University of Colorado Boulder

Cooperative Institute for Research in Environmental Sciences

NOAA/OAR/ESRL/Global Systems Division
Boulder, CO



_______________________________________________

gradsusr mailing list

gradsusr at gradsusr.org<mailto:gradsusr at gradsusr.org>

http://gradsusr.org/mailman/listinfo/gradsusr

--

Bob Kuligowski, Ph.D.

Meteorologist

NOAA/NESDIS/Center for Satellite Applications and Research (STAR)



Mailing Address:

National Oceanic and Atmospheric Administration

NESDIS STAR/SMCD

Bob Kuligowski

NCWCP E/RA2

5830 University Research Court

2nd Floor, Office #2828

College Park, MD 20740-3818



Phone:  (301) 683-3593

Fax  :  (301) 683-3616



http://www.star.nesdis.noaa.gov/star/Kuligowski_B.php

http://www.star.nesdis.noaa.gov/smcd/emb/ff/index.php


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://gradsusr.org/pipermail/gradsusr/attachments/20181109/dde38cec/attachment-0001.html>


More information about the gradsusr mailing list