;# ;# IDL Code to read and display GHRSST-PP L2P SWATH data files ;# ;# Copyright (c) Met Office ;# ;# ;# Author: Craig Donlon ;# Last revision: 2005-09-09 ;# ;# Purpose ;# This code is provided as demonstatio code to help users work with ;# GHRSST-PP GDSv1.5 L2P data files. see http://www.ghrsst-pp.org ;# for more information about the GHRSST-PP and the data processing ;# specification (GDS) version 1.5. ;# ;# This code is based on a cdf2idl dump of a Medspiration L2P AATSR file ;# Differences between the content of GHRSST-PP swath, grid and vector L2P ;# files mean that you need to adapt this code which is based on a swath L2P file. ;# ;# Disclaimer ;# this code is provided free of charge as aguide for progeammers. There is no support or warranty ;# for the routines provided. ;# ;# ;# Open an L2P netCDF data file (*.nc) close,/all fn=dialog_pickfile(/read,/must_exist,filter=['*.nc','*,NC']) ncid = NCDF_OPEN(fn) NCDF_VARGET, ncid, 0, time ; Read in variable 'time' NCDF_ATTGET, ncid, 0, 'long_name', time_long_name time_long_name = STRING(time_long_name) NCDF_ATTGET, ncid, 0, 'units', time_units time_units = STRING(time_units) NCDF_VARGET, ncid, 1, lat ; Read in variable 'lat' NCDF_ATTGET, ncid, 1, 'long_name', lat_long_name lat_long_name = STRING(lat_long_name) NCDF_ATTGET, ncid, 1, 'units', lat_units lat_units = STRING(lat_units) NCDF_VARGET, ncid, 2, lon ; Read in variable 'lon' NCDF_ATTGET, ncid, 2, 'long_name', lon_long_name lon_long_name = STRING(lon_long_name) NCDF_ATTGET, ncid, 2, 'units', lon_units lon_units = STRING(lon_units) NCDF_VARGET, ncid, 3, sea_surface_temperature ; Read in variable 'sea_surface_temperature' NCDF_ATTGET, ncid, 3, 'long_name', sea_surface_temperature_long_name sea_surface_temperature_long_name = STRING(sea_surface_temperature_long_name) NCDF_ATTGET, ncid, 3, 'units', sea_surface_temperature_units sea_surface_temperature_units = STRING(sea_surface_temperature_units) NCDF_ATTGET, ncid, 3, '_FillValue', sea_surface_temperature__FillValue sea_surface_temperature__FillValue = STRING(sea_surface_temperature__FillValue) NCDF_ATTGET, ncid, 3, 'add_offset', sea_surface_temperature_add_offset sea_surface_temperature_add_offset = STRING(sea_surface_temperature_add_offset) NCDF_ATTGET, ncid, 3, 'scale_factor', sea_surface_temperature_scale_factor sea_surface_temperature_scale_factor = STRING(sea_surface_temperature_scale_factor) NCDF_ATTGET, ncid, 3, 'valid_min', sea_surface_temperature_valid_min sea_surface_temperature_valid_min = STRING(sea_surface_temperature_valid_min) NCDF_ATTGET, ncid, 3, 'valid_max', sea_surface_temperature_valid_max sea_surface_temperature_valid_max = STRING(sea_surface_temperature_valid_max) NCDF_ATTGET, ncid, 3, 'coordinates', sea_surface_temperature_coordinates sea_surface_temperature_coordinates = STRING(sea_surface_temperature_coordinates) NCDF_ATTGET, ncid, 3, 'source', sea_surface_temperature_source sea_surface_temperature_source = STRING(sea_surface_temperature_source) NCDF_VARGET, ncid, 4, sst_dtime ; Read in variable 'sst_dtime' NCDF_ATTGET, ncid, 4, 'long_name', sst_dtime_long_name sst_dtime_long_name = STRING(sst_dtime_long_name) NCDF_ATTGET, ncid, 4, 'units', sst_dtime_units sst_dtime_units = STRING(sst_dtime_units) NCDF_ATTGET, ncid, 4, 'add_offset', sst_dtime_add_offset sst_dtime_add_offset = STRING(sst_dtime_add_offset) NCDF_ATTGET, ncid, 4, 'scale_factor', sst_dtime_scale_factor sst_dtime_scale_factor = STRING(sst_dtime_scale_factor) NCDF_ATTGET, ncid, 4, '_FillValue', sst_dtime__FillValue sst_dtime__FillValue = STRING(sst_dtime__FillValue) NCDF_ATTGET, ncid, 4, 'valid_min', sst_dtime_valid_min sst_dtime_valid_min = STRING(sst_dtime_valid_min) NCDF_ATTGET, ncid, 4, 'valid_max', sst_dtime_valid_max sst_dtime_valid_max = STRING(sst_dtime_valid_max) NCDF_ATTGET, ncid, 4, 'coordinates', sst_dtime_coordinates sst_dtime_coordinates = STRING(sst_dtime_coordinates) NCDF_VARGET, ncid, 5, satellite_zenith_angle ; Read in variable 'satellite_zenith_angle' NCDF_ATTGET, ncid, 5, 'long_name', satellite_zenith_angle_long_name satellite_zenith_angle_long_name = STRING(satellite_zenith_angle_long_name) NCDF_ATTGET, ncid, 5, 'units', satellite_zenith_angle_units satellite_zenith_angle_units = STRING(satellite_zenith_angle_units) NCDF_ATTGET, ncid, 5, '_FillValue', satellite_zenith_angle__FillValue satellite_zenith_angle__FillValue = STRING(satellite_zenith_angle__FillValue) NCDF_ATTGET, ncid, 5, 'add_offset', satellite_zenith_angle_add_offset satellite_zenith_angle_add_offset = STRING(satellite_zenith_angle_add_offset) NCDF_ATTGET, ncid, 5, 'scale_factor', satellite_zenith_angle_scale_factor satellite_zenith_angle_scale_factor = STRING(satellite_zenith_angle_scale_factor) NCDF_ATTGET, ncid, 5, 'valid_min', satellite_zenith_angle_valid_min satellite_zenith_angle_valid_min = STRING(satellite_zenith_angle_valid_min) NCDF_ATTGET, ncid, 5, 'valid_max', satellite_zenith_angle_valid_max satellite_zenith_angle_valid_max = STRING(satellite_zenith_angle_valid_max) NCDF_ATTGET, ncid, 5, 'coordinates', satellite_zenith_angle_coordinates satellite_zenith_angle_coordinates = STRING(satellite_zenith_angle_coordinates) NCDF_VARGET, ncid, 6, sea_ice_fraction ; Read in variable 'sea_ice_fraction' NCDF_ATTGET, ncid, 6, 'long_name', sea_ice_fraction_long_name sea_ice_fraction_long_name = STRING(sea_ice_fraction_long_name) NCDF_ATTGET, ncid, 6, 'units', sea_ice_fraction_units sea_ice_fraction_units = STRING(sea_ice_fraction_units) NCDF_ATTGET, ncid, 6, '_FillValue', sea_ice_fraction__FillValue sea_ice_fraction__FillValue = STRING(sea_ice_fraction__FillValue) NCDF_ATTGET, ncid, 6, 'add_offset', sea_ice_fraction_add_offset sea_ice_fraction_add_offset = STRING(sea_ice_fraction_add_offset) NCDF_ATTGET, ncid, 6, 'scale_factor', sea_ice_fraction_scale_factor sea_ice_fraction_scale_factor = STRING(sea_ice_fraction_scale_factor) NCDF_ATTGET, ncid, 6, 'valid_min', sea_ice_fraction_valid_min sea_ice_fraction_valid_min = STRING(sea_ice_fraction_valid_min) NCDF_ATTGET, ncid, 6, 'valid_max', sea_ice_fraction_valid_max sea_ice_fraction_valid_max = STRING(sea_ice_fraction_valid_max) NCDF_ATTGET, ncid, 6, 'coordinates', sea_ice_fraction_coordinates sea_ice_fraction_coordinates = STRING(sea_ice_fraction_coordinates) NCDF_VARGET, ncid, 7, sources_of_sea_ice_fraction ; Read in variable 'sources_of_sea_ice_fraction' NCDF_ATTGET, ncid, 7, 'long_name', sources_of_sea_ice_fraction_long_name sources_of_sea_ice_fraction_long_name = STRING(sources_of_sea_ice_fraction_long_name) NCDF_ATTGET, ncid, 7, '_FillValue', sources_of_sea_ice_fraction__FillValue sources_of_sea_ice_fraction__FillValue = STRING(sources_of_sea_ice_fraction__FillValue) NCDF_ATTGET, ncid, 7, 'comment', sources_of_sea_ice_fraction_comment sources_of_sea_ice_fraction_comment = STRING(sources_of_sea_ice_fraction_comment) NCDF_ATTGET, ncid, 7, 'coordinates', sources_of_sea_ice_fraction_coordinates sources_of_sea_ice_fraction_coordinates = STRING(sources_of_sea_ice_fraction_coordinates) NCDF_VARGET, ncid, 8, DT_analysis ; Read in variable 'DT_analysis' NCDF_ATTGET, ncid, 8, 'long_name', DT_analysis_long_name DT_analysis_long_name = STRING(DT_analysis_long_name) NCDF_ATTGET, ncid, 8, 'units', DT_analysis_units DT_analysis_units = STRING(DT_analysis_units) NCDF_ATTGET, ncid, 8, '_FillValue', DT_analysis__FillValue DT_analysis__FillValue = STRING(DT_analysis__FillValue) NCDF_ATTGET, ncid, 8, 'add_offset', DT_analysis_add_offset DT_analysis_add_offset = STRING(DT_analysis_add_offset) NCDF_ATTGET, ncid, 8, 'scale_factor', DT_analysis_scale_factor DT_analysis_scale_factor = STRING(DT_analysis_scale_factor) NCDF_ATTGET, ncid, 8, 'valid_min', DT_analysis_valid_min DT_analysis_valid_min = STRING(DT_analysis_valid_min) NCDF_ATTGET, ncid, 8, 'valid_max', DT_analysis_valid_max DT_analysis_valid_max = STRING(DT_analysis_valid_max) NCDF_ATTGET, ncid, 8, 'coordinates', DT_analysis_coordinates DT_analysis_coordinates = STRING(DT_analysis_coordinates) NCDF_ATTGET, ncid, 8, 'reference', DT_analysis_reference DT_analysis_reference = STRING(DT_analysis_reference) NCDF_VARGET, ncid, 9, rejection_flag ; Read in variable 'rejection_flag' NCDF_ATTGET, ncid, 9, 'long_name', rejection_flag_long_name rejection_flag_long_name = STRING(rejection_flag_long_name) NCDF_ATTGET, ncid, 9, 'comment', rejection_flag_comment rejection_flag_comment = STRING(rejection_flag_comment) NCDF_ATTGET, ncid, 9, 'coordinates', rejection_flag_coordinates rejection_flag_coordinates = STRING(rejection_flag_coordinates) NCDF_VARGET, ncid, 10, proximity_confidence ; Read in variable 'proximity_confidence' NCDF_ATTGET, ncid, 10, 'long_name', proximity_confidence_long_name proximity_confidence_long_name = STRING(proximity_confidence_long_name) NCDF_ATTGET, ncid, 10, '_FillValue', proximity_confidence__FillValue proximity_confidence__FillValue = STRING(proximity_confidence__FillValue) NCDF_ATTGET, ncid, 10, 'coordinates', proximity_confidence_coordinates proximity_confidence_coordinates = STRING(proximity_confidence_coordinates) NCDF_VARGET, ncid, 11, confidence_flag ; Read in variable 'confidence_flag' NCDF_ATTGET, ncid, 11, 'long_name', confidence_flag_long_name confidence_flag_long_name = STRING(confidence_flag_long_name) NCDF_ATTGET, ncid, 11, 'comment', confidence_flag_comment confidence_flag_comment = STRING(confidence_flag_comment) NCDF_ATTGET, ncid, 11, 'coordinates', confidence_flag_coordinates confidence_flag_coordinates = STRING(confidence_flag_coordinates) NCDF_VARGET, ncid, 12, SSES_bias_error ; Read in variable 'SSES_bias_error' NCDF_ATTGET, ncid, 12, 'long_name', SSES_bias_error_long_name SSES_bias_error_long_name = STRING(SSES_bias_error_long_name) NCDF_ATTGET, ncid, 12, 'units', SSES_bias_error_units SSES_bias_error_units = STRING(SSES_bias_error_units) NCDF_ATTGET, ncid, 12, '_FillValue', SSES_bias_error__FillValue SSES_bias_error__FillValue = STRING(SSES_bias_error__FillValue) NCDF_ATTGET, ncid, 12, 'add_offset', SSES_bias_error_add_offset SSES_bias_error_add_offset = STRING(SSES_bias_error_add_offset) NCDF_ATTGET, ncid, 12, 'scale_factor', SSES_bias_error_scale_factor SSES_bias_error_scale_factor = STRING(SSES_bias_error_scale_factor) NCDF_ATTGET, ncid, 12, 'valid_min', SSES_bias_error_valid_min SSES_bias_error_valid_min = STRING(SSES_bias_error_valid_min) NCDF_ATTGET, ncid, 12, 'valid_max', SSES_bias_error_valid_max SSES_bias_error_valid_max = STRING(SSES_bias_error_valid_max) NCDF_ATTGET, ncid, 12, 'coordinates', SSES_bias_error_coordinates SSES_bias_error_coordinates = STRING(SSES_bias_error_coordinates) NCDF_VARGET, ncid, 13, SSES_standard_deviation_error ; Read in variable 'SSES_standard_deviation_error' NCDF_ATTGET, ncid, 13, 'long_name', SSES_standard_deviation_error_long_name SSES_standard_deviation_error_long_name = STRING(SSES_standard_deviation_error_long_name) NCDF_ATTGET, ncid, 13, 'units', SSES_standard_deviation_error_units SSES_standard_deviation_error_units = STRING(SSES_standard_deviation_error_units) NCDF_ATTGET, ncid, 13, '_FillValue', SSES_standard_deviation_error__FillValue SSES_standard_deviation_error__FillValue = STRING(SSES_standard_deviation_error__FillValue) NCDF_ATTGET, ncid, 13, 'add_offset', SSES_standard_deviation_error_add_offset SSES_standard_deviation_error_add_offset = STRING(SSES_standard_deviation_error_add_offset) NCDF_ATTGET, ncid, 13, 'scale_factor', SSES_standard_deviation_error_scale_factor SSES_standard_deviation_error_scale_factor = STRING(SSES_standard_deviation_error_scale_factor) NCDF_ATTGET, ncid, 13, 'valid_min', SSES_standard_deviation_error_valid_min SSES_standard_deviation_error_valid_min = STRING(SSES_standard_deviation_error_valid_min) NCDF_ATTGET, ncid, 13, 'valid_max', SSES_standard_deviation_error_valid_max SSES_standard_deviation_error_valid_max = STRING(SSES_standard_deviation_error_valid_max) NCDF_ATTGET, ncid, 13, 'coordinates', SSES_standard_deviation_error_coordinates SSES_standard_deviation_error_coordinates = STRING(SSES_standard_deviation_error_coordinates) NCDF_VARGET, ncid, 14, aerosol_optical_depth ; Read in variable 'aerosol_optical_depth' NCDF_ATTGET, ncid, 14, 'long_name', aerosol_optical_depth_long_name aerosol_optical_depth_long_name = STRING(aerosol_optical_depth_long_name) NCDF_ATTGET, ncid, 14, 'units', aerosol_optical_depth_units aerosol_optical_depth_units = STRING(aerosol_optical_depth_units) NCDF_ATTGET, ncid, 14, '_FillValue', aerosol_optical_depth__FillValue aerosol_optical_depth__FillValue = STRING(aerosol_optical_depth__FillValue) NCDF_ATTGET, ncid, 14, 'add_offset', aerosol_optical_depth_add_offset aerosol_optical_depth_add_offset = STRING(aerosol_optical_depth_add_offset) NCDF_ATTGET, ncid, 14, 'scale_factor', aerosol_optical_depth_scale_factor aerosol_optical_depth_scale_factor = STRING(aerosol_optical_depth_scale_factor) NCDF_ATTGET, ncid, 14, 'valid_min', aerosol_optical_depth_valid_min aerosol_optical_depth_valid_min = STRING(aerosol_optical_depth_valid_min) NCDF_ATTGET, ncid, 14, 'valid_max', aerosol_optical_depth_valid_max aerosol_optical_depth_valid_max = STRING(aerosol_optical_depth_valid_max) NCDF_ATTGET, ncid, 14, 'coordinates', aerosol_optical_depth_coordinates aerosol_optical_depth_coordinates = STRING(aerosol_optical_depth_coordinates) NCDF_VARGET, ncid, 15, aod_dtime_from_sst ; Read in variable 'aod_dtime_from_sst' NCDF_ATTGET, ncid, 15, 'long_name', aod_dtime_from_sst_long_name aod_dtime_from_sst_long_name = STRING(aod_dtime_from_sst_long_name) NCDF_ATTGET, ncid, 15, 'units', aod_dtime_from_sst_units aod_dtime_from_sst_units = STRING(aod_dtime_from_sst_units) NCDF_ATTGET, ncid, 15, '_FillValue', aod_dtime_from_sst__FillValue aod_dtime_from_sst__FillValue = STRING(aod_dtime_from_sst__FillValue) NCDF_ATTGET, ncid, 15, 'add_offset', aod_dtime_from_sst_add_offset aod_dtime_from_sst_add_offset = STRING(aod_dtime_from_sst_add_offset) NCDF_ATTGET, ncid, 15, 'scale_factor', aod_dtime_from_sst_scale_factor aod_dtime_from_sst_scale_factor = STRING(aod_dtime_from_sst_scale_factor) NCDF_ATTGET, ncid, 15, 'valid_min', aod_dtime_from_sst_valid_min aod_dtime_from_sst_valid_min = STRING(aod_dtime_from_sst_valid_min) NCDF_ATTGET, ncid, 15, 'valid_max', aod_dtime_from_sst_valid_max aod_dtime_from_sst_valid_max = STRING(aod_dtime_from_sst_valid_max) NCDF_ATTGET, ncid, 15, 'coordinates', aod_dtime_from_sst_coordinates aod_dtime_from_sst_coordinates = STRING(aod_dtime_from_sst_coordinates) NCDF_VARGET, ncid, 16, sources_of_aod ; Read in variable 'sources_of_aod' NCDF_ATTGET, ncid, 16, 'long_name', sources_of_aod_long_name sources_of_aod_long_name = STRING(sources_of_aod_long_name) NCDF_ATTGET, ncid, 16, '_FillValue', sources_of_aod__FillValue sources_of_aod__FillValue = STRING(sources_of_aod__FillValue) NCDF_ATTGET, ncid, 16, 'comment', sources_of_aod_comment sources_of_aod_comment = STRING(sources_of_aod_comment) NCDF_ATTGET, ncid, 16, 'coordinates', sources_of_aod_coordinates sources_of_aod_coordinates = STRING(sources_of_aod_coordinates) NCDF_VARGET, ncid, 17, wind_speed ; Read in variable 'wind_speed' NCDF_ATTGET, ncid, 17, 'long_name', wind_speed_long_name wind_speed_long_name = STRING(wind_speed_long_name) NCDF_ATTGET, ncid, 17, 'units', wind_speed_units wind_speed_units = STRING(wind_speed_units) NCDF_ATTGET, ncid, 17, '_FillValue', wind_speed__FillValue wind_speed__FillValue = STRING(wind_speed__FillValue) NCDF_ATTGET, ncid, 17, 'add_offset', wind_speed_add_offset wind_speed_add_offset = STRING(wind_speed_add_offset) NCDF_ATTGET, ncid, 17, 'scale_factor', wind_speed_scale_factor wind_speed_scale_factor = STRING(wind_speed_scale_factor) NCDF_ATTGET, ncid, 17, 'valid_min', wind_speed_valid_min wind_speed_valid_min = STRING(wind_speed_valid_min) NCDF_ATTGET, ncid, 17, 'valid_max', wind_speed_valid_max wind_speed_valid_max = STRING(wind_speed_valid_max) NCDF_ATTGET, ncid, 17, 'coordinates', wind_speed_coordinates wind_speed_coordinates = STRING(wind_speed_coordinates) NCDF_VARGET, ncid, 18, wind_speed_dtime_from_sst ; Read in variable 'wind_speed_dtime_from_sst' NCDF_ATTGET, ncid, 18, 'long_name', wind_speed_dtime_from_sst_long_name wind_speed_dtime_from_sst_long_name = STRING(wind_speed_dtime_from_sst_long_name) NCDF_ATTGET, ncid, 18, 'units', wind_speed_dtime_from_sst_units wind_speed_dtime_from_sst_units = STRING(wind_speed_dtime_from_sst_units) NCDF_ATTGET, ncid, 18, '_FillValue', wind_speed_dtime_from_sst__FillValue wind_speed_dtime_from_sst__FillValue = STRING(wind_speed_dtime_from_sst__FillValue) NCDF_ATTGET, ncid, 18, 'add_offset', wind_speed_dtime_from_sst_add_offset wind_speed_dtime_from_sst_add_offset = STRING(wind_speed_dtime_from_sst_add_offset) NCDF_ATTGET, ncid, 18, 'scale_factor', wind_speed_dtime_from_sst_scale_factor wind_speed_dtime_from_sst_scale_factor = STRING(wind_speed_dtime_from_sst_scale_factor) NCDF_ATTGET, ncid, 18, 'valid_min', wind_speed_dtime_from_sst_valid_min wind_speed_dtime_from_sst_valid_min = STRING(wind_speed_dtime_from_sst_valid_min) NCDF_ATTGET, ncid, 18, 'valid_max', wind_speed_dtime_from_sst_valid_max wind_speed_dtime_from_sst_valid_max = STRING(wind_speed_dtime_from_sst_valid_max) NCDF_ATTGET, ncid, 18, 'coordinates', wind_speed_dtime_from_sst_coordinates wind_speed_dtime_from_sst_coordinates = STRING(wind_speed_dtime_from_sst_coordinates) NCDF_VARGET, ncid, 19, sources_of_wind_speed ; Read in variable 'sources_of_wind_speed' NCDF_ATTGET, ncid, 19, 'long_name', sources_of_wind_speed_long_name sources_of_wind_speed_long_name = STRING(sources_of_wind_speed_long_name) NCDF_ATTGET, ncid, 19, '_FillValue', sources_of_wind_speed__FillValue sources_of_wind_speed__FillValue = STRING(sources_of_wind_speed__FillValue) NCDF_ATTGET, ncid, 19, 'comment', sources_of_wind_speed_comment sources_of_wind_speed_comment = STRING(sources_of_wind_speed_comment) NCDF_ATTGET, ncid, 19, 'coordinates', sources_of_wind_speed_coordinates sources_of_wind_speed_coordinates = STRING(sources_of_wind_speed_coordinates) NCDF_VARGET, ncid, 20, surface_solar_irradiance ; Read in variable 'surface_solar_irradiance' NCDF_ATTGET, ncid, 20, 'long_name', surface_solar_irradiance_long_name surface_solar_irradiance_long_name = STRING(surface_solar_irradiance_long_name) NCDF_ATTGET, ncid, 20, 'units', surface_solar_irradiance_units surface_solar_irradiance_units = STRING(surface_solar_irradiance_units) NCDF_ATTGET, ncid, 20, '_FillValue', surface_solar_irradiance__FillValue surface_solar_irradiance__FillValue = STRING(surface_solar_irradiance__FillValue) NCDF_ATTGET, ncid, 20, 'add_offset', surface_solar_irradiance_add_offset surface_solar_irradiance_add_offset = STRING(surface_solar_irradiance_add_offset) NCDF_ATTGET, ncid, 20, 'scale_factor', surface_solar_irradiance_scale_factor surface_solar_irradiance_scale_factor = STRING(surface_solar_irradiance_scale_factor) NCDF_ATTGET, ncid, 20, 'valid_min', surface_solar_irradiance_valid_min surface_solar_irradiance_valid_min = STRING(surface_solar_irradiance_valid_min) NCDF_ATTGET, ncid, 20, 'valid_max', surface_solar_irradiance_valid_max surface_solar_irradiance_valid_max = STRING(surface_solar_irradiance_valid_max) NCDF_ATTGET, ncid, 20, 'coordinates', surface_solar_irradiance_coordinates surface_solar_irradiance_coordinates = STRING(surface_solar_irradiance_coordinates) NCDF_VARGET, ncid, 21, ssi_dtime_from_sst ; Read in variable 'ssi_dtime_from_sst' NCDF_ATTGET, ncid, 21, 'long_name', ssi_dtime_from_sst_long_name ssi_dtime_from_sst_long_name = STRING(ssi_dtime_from_sst_long_name) NCDF_ATTGET, ncid, 21, 'units', ssi_dtime_from_sst_units ssi_dtime_from_sst_units = STRING(ssi_dtime_from_sst_units) NCDF_ATTGET, ncid, 21, '_FillValue', ssi_dtime_from_sst__FillValue ssi_dtime_from_sst__FillValue = STRING(ssi_dtime_from_sst__FillValue) NCDF_ATTGET, ncid, 21, 'add_offset', ssi_dtime_from_sst_add_offset ssi_dtime_from_sst_add_offset = STRING(ssi_dtime_from_sst_add_offset) NCDF_ATTGET, ncid, 21, 'scale_factor', ssi_dtime_from_sst_scale_factor ssi_dtime_from_sst_scale_factor = STRING(ssi_dtime_from_sst_scale_factor) NCDF_ATTGET, ncid, 21, 'valid_min', ssi_dtime_from_sst_valid_min ssi_dtime_from_sst_valid_min = STRING(ssi_dtime_from_sst_valid_min) NCDF_ATTGET, ncid, 21, 'valid_max', ssi_dtime_from_sst_valid_max ssi_dtime_from_sst_valid_max = STRING(ssi_dtime_from_sst_valid_max) NCDF_ATTGET, ncid, 21, 'coordinates', ssi_dtime_from_sst_coordinates ssi_dtime_from_sst_coordinates = STRING(ssi_dtime_from_sst_coordinates) NCDF_VARGET, ncid, 22, sources_of_ssi ; Read in variable 'sources_of_ssi' NCDF_ATTGET, ncid, 22, 'long_name', sources_of_ssi_long_name sources_of_ssi_long_name = STRING(sources_of_ssi_long_name) NCDF_ATTGET, ncid, 22, '_FillValue', sources_of_ssi__FillValue sources_of_ssi__FillValue = STRING(sources_of_ssi__FillValue) NCDF_ATTGET, ncid, 22, 'comment', sources_of_ssi_comment sources_of_ssi_comment = STRING(sources_of_ssi_comment) NCDF_ATTGET, ncid, 22, 'coordinates', sources_of_ssi_coordinates sources_of_ssi_coordinates = STRING(sources_of_ssi_coordinates) ; Read in the Global Attributes. NCDF_ATTGET, ncid, /GLOBAL, 'Conventions', Conventions Conventions = STRING(Conventions) NCDF_ATTGET, ncid, /GLOBAL, 'title', title title = STRING(title) NCDF_ATTGET, ncid, /GLOBAL, 'DSD_entry_id', DSD_entry_id DSD_entry_id = STRING(DSD_entry_id) NCDF_ATTGET, ncid, /GLOBAL, 'references', references references = STRING(references) NCDF_ATTGET, ncid, /GLOBAL, 'institution', institution institution = STRING(institution) NCDF_ATTGET, ncid, /GLOBAL, 'contact', contact contact = STRING(contact) NCDF_ATTGET, ncid, /GLOBAL, 'GDS_version_id', GDS_version_id GDS_version_id = STRING(GDS_version_id) NCDF_ATTGET, ncid, /GLOBAL, 'netcdf_version_id', netcdf_version_id netcdf_version_id = STRING(netcdf_version_id) NCDF_ATTGET, ncid, /GLOBAL, 'product_version', product_version product_version = STRING(product_version) NCDF_ATTGET, ncid, /GLOBAL, 'creation_date', creation_date creation_date = STRING(creation_date) NCDF_ATTGET, ncid, /GLOBAL, 'history', history history = STRING(history) NCDF_ATTGET, ncid, /GLOBAL, 'platform', platform platform = STRING(platform) NCDF_ATTGET, ncid, /GLOBAL, 'sensor', sensor sensor = STRING(sensor) NCDF_ATTGET, ncid, /GLOBAL, 'spatial_resolution', spatial_resolution spatial_resolution = STRING(spatial_resolution) NCDF_ATTGET, ncid, /GLOBAL, 'start_date', start_date start_date = STRING(start_date) NCDF_ATTGET, ncid, /GLOBAL, 'start_time', start_time start_time = STRING(start_time) NCDF_ATTGET, ncid, /GLOBAL, 'stop_date', stop_date stop_date = STRING(stop_date) NCDF_ATTGET, ncid, /GLOBAL, 'stop_time', stop_time stop_time = STRING(stop_time) NCDF_ATTGET, ncid, /GLOBAL, 'southernmost_latitude', southernmost_latitude southernmost_latitude = STRING(southernmost_latitude) NCDF_ATTGET, ncid, /GLOBAL, 'northernmost_latitude', northernmost_latitude northernmost_latitude = STRING(northernmost_latitude) NCDF_ATTGET, ncid, /GLOBAL, 'westernmost_longitude', westernmost_longitude westernmost_longitude = STRING(westernmost_longitude) NCDF_ATTGET, ncid, /GLOBAL, 'easternmost_longitude', easternmost_longitude easternmost_longitude = STRING(easternmost_longitude) NCDF_ATTGET, ncid, /GLOBAL, 'file_quality_index', file_quality_index file_quality_index = STRING(file_quality_index) NCDF_ATTGET, ncid, /GLOBAL, 'comment', comment comment = STRING(comment) NCDF_CLOSE, ncid ; Close the NetCDF file end