[gradsusr] Can Grads convert NOAA AVHRR netcdf file into a georeferenced Gtiff file
Dan Martin
sailmaui at gmail.com
Wed Mar 6 14:47:53 EST 2019
This data would need to be converted to L3 for grads to read. That can be
done, but the coastwatch utilities will likely produce what you need.
https://coastwatch.noaa.gov/cw/user-resources/coastwatch-utilities.html#Downloads
On Tue, Mar 5, 2019 at 4:20 PM Stephen Woodbridge <
stephenwoodbridge37 at gmail.com> wrote:
> Hi All,
>
> I'm struggling to find a way to convert NOAA AVHRR SST netcdf file into
> a georeferenced GTiff file, like:
>
>
> ftp://ftp.star.nesdis.noaa.gov/pub/socd2/coastwatch/sst/nrt/avhrr_gac/noaa18/l2p/2019/063/20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_G-ACSPO_V2.41-v02.0-fv01.0.nc
>
> My standard goto too is normally GDAL but it does not handle files like
> this where every pixel has its own lat/lon. I seems like you need to
> convert the irregular points into a gridded x-y array in some projection
> then write that out to a gtiff, but I'm lost on how to do this.
>
> I have only used Grads once before to convert a grads script into a
> gradspy script to extract date that had been getting plotted to a data
> array.
>
> Any help would be appreciated.
>
> Thanks,
> -Steve W
>
> below are and ncdump -h and gdalinfo output:
>
> $ ncdump -h
>
> 20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_G-ACSPO_V2.41-v02.0-fv01.0.nc
> netcdf
> \20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_G-ACSPO_V2.41-v02.0-fv01.0
>
> {
> dimensions:
> ni = 409 ;
> nj = 7200 ;
> time = 1 ;
> variables:
> int time(time) ;
> time:comment = "seconds since 1981-01-01 00:00:00" ;
> time:long_name = "reference time of sst file" ;
> time:standard_name = "time" ;
> time:units = "seconds since 1981-01-01 00:00:00" ;
> time:calendar = "Gregorian" ;
> time:axis = "T" ;
> short sst_dtime(time, nj, ni) ;
> sst_dtime:add_offset = 0.f ;
> sst_dtime:comment = "time plus sst_dtime gives seconds
> since 1981-01-01 00:00:00 UTC" ;
> sst_dtime:coordinates = "lon lat" ;
> sst_dtime:long_name = "time difference from reference
> time" ;
> sst_dtime:scale_factor = 0.25f ;
> sst_dtime:units = "seconds" ;
> sst_dtime:valid_max = 32767s ;
> sst_dtime:valid_min = -32767s ;
> sst_dtime:_FillValue = -32768s ;
> byte dt_analysis(time, nj, ni) ;
> dt_analysis:add_offset = 0.f ;
> dt_analysis:comment = "Deviation from reference SST,
> i.e., dt_analysis = SST - reference SST" ;
> dt_analysis:coordinates = "lon lat" ;
> dt_analysis:long_name = "deviation from SST reference" ;
> dt_analysis:source = "CMC0.2deg-CMC-L4-GLOB-v2.0" ;
> dt_analysis:scale_factor = 0.1f ;
> dt_analysis:units = "kelvin" ;
> dt_analysis:valid_max = 127b ;
> dt_analysis:valid_min = -127b ;
> dt_analysis:_FillValue = -128b ;
> float lat(nj, ni) ;
> lat:comment = "Latitude of retrievals" ;
> lat:long_name = "latitude" ;
> lat:standard_name = "latitude" ;
> lat:units = "degrees_north" ;
> lat:valid_max = 90.f ;
> lat:valid_min = -90.f ;
> float lon(nj, ni) ;
> lon:comment = "Longitude of retrievals" ;
> lon:long_name = "longitude" ;
> lon:standard_name = "longitude" ;
> lon:units = "degrees_east" ;
> lon:valid_max = 180.f ;
> lon:valid_min = -180.f ;
> byte satellite_zenith_angle(time, nj, ni) ;
> satellite_zenith_angle:add_offset = 0.f ;
> satellite_zenith_angle:comment = "satellite zenith angle"
> ;
> satellite_zenith_angle:coordinates = "lon lat" ;
> satellite_zenith_angle:long_name = "satellite zenith
> angle" ;
> satellite_zenith_angle:scale_factor = 1.f ;
> satellite_zenith_angle:units = "degrees" ;
> satellite_zenith_angle:valid_max = 127b ;
> satellite_zenith_angle:valid_min = -127b ;
> satellite_zenith_angle:_FillValue = -128b ;
> short sea_surface_temperature(time, nj, ni) ;
> sea_surface_temperature:add_offset = 273.15f ;
> sea_surface_temperature:comment = "SST obtained by
> regression with buoy measurements" ;
> sea_surface_temperature:coordinates = "lon lat" ;
> sea_surface_temperature:long_name = "sea surface skin
> temperature" ;
> sea_surface_temperature:scale_factor = 0.01f ;
> sea_surface_temperature:source = "NOAA" ;
> sea_surface_temperature:standard_name =
> "sea_surface_skin_temperature" ;
> sea_surface_temperature:units = "kelvin" ;
> sea_surface_temperature:valid_max = 32767s ;
> sea_surface_temperature:valid_min = -32767s ;
> sea_surface_temperature:_FillValue = -32768s ;
> byte sses_bias(time, nj, ni) ;
> sses_bias:add_offset = 0.f ;
> sses_bias:comment = "Estimated based on buoys
> measurements" ;
> sses_bias:coordinates = "lon lat" ;
> sses_bias:long_name = "SSES bias estimate" ;
> sses_bias:scale_factor = 0.016f ;
> sses_bias:units = "kelvin" ;
> sses_bias:valid_max = 127b ;
> sses_bias:valid_min = -127b ;
> sses_bias:_FillValue = -128b ;
> byte sses_standard_deviation(time, nj, ni) ;
> sses_standard_deviation:add_offset = 1.f ;
> sses_standard_deviation:comment = "Estimated based on
> buoys measurements" ;
> sses_standard_deviation:coordinates = "lon lat" ;
> sses_standard_deviation:long_name = "SSES standard
> deviation" ;
> sses_standard_deviation:scale_factor = 0.01f ;
> sses_standard_deviation:units = "kelvin" ;
> sses_standard_deviation:valid_max = 127b ;
> sses_standard_deviation:valid_min = -127b ;
> sses_standard_deviation:_FillValue = -128b ;
> byte sea_ice_fraction(time, nj, ni) ;
> sea_ice_fraction:add_offset = 0.f ;
> sea_ice_fraction:comment = "Fractional sea ice cover
> from reference SST" ;
> sea_ice_fraction:coordinates = "lon lat" ;
> sea_ice_fraction:long_name = "sea ice fraction" ;
> sea_ice_fraction:scale_factor = 0.01f ;
> sea_ice_fraction:source = "CMC0.2deg-CMC-L4-GLOB-v2.0" ;
> sea_ice_fraction:standard_name = "sea_ice_area_fraction" ;
> sea_ice_fraction:units = "1" ;
> sea_ice_fraction:valid_max = 100b ;
> sea_ice_fraction:valid_min = 0b ;
> sea_ice_fraction:_FillValue = -128b ;
> short l2p_flags(time, nj, ni) ;
> l2p_flags:comment = "L2P common flags in bits 1-6 and
> data provider flags (from ACSPO mask) in bits 9-16: bit01 (0=IR:
> 1=microwave); bit02 (0=ocean; 1=land); bit03 (0=no ice; 1=ice);
> bits04-08 (reserved,set to 0); bit09 (0=radiance valid; 1=invalid);
> bit10 (0=night; 1=day); bit11 (0=ocean; 1=land); bit12 (0=good quality
> data; 1=degraded quality data due to \"twilight\" region); bit13 (0=no
> glint; 1=glint); bit14 (0=no snow/ice; 1=snow/ice); bits15-16 (00=clear;
> 01=probably clear; 10=cloudy; 11=clear-sky mask undefined)" ;
> l2p_flags:coordinates = "lon lat" ;
> l2p_flags:flag_masks = 1s, 2s, 4s, 256s, 512s, 1024s,
> 2048s, 4096s, 8192s, -16384s ;
> l2p_flags:flag_meanings = "microwave land ice invalid
> day land twilight glint ice probably_clear_or_cloudy_or_undefined" ;
> l2p_flags:long_name = "L2P flags" ;
> l2p_flags:valid_max = 32767s ;
> l2p_flags:valid_min = -32768s ;
> byte quality_level(time, nj, ni) ;
> quality_level:comment = "Based on l2p_flags" ;
> quality_level:coordinates = "lon lat" ;
> quality_level:flag_meanings = "invalid not_used
> not_used cloudy probably_clear clear" ;
> quality_level:flag_values = 0b, 1b, 2b, 3b, 4b, 5b ;
> quality_level:long_name = "quality level of SST pixel" ;
> quality_level:valid_max = 5b ;
> quality_level:valid_min = 0b ;
> quality_level:_FillValue = 0b ;
> byte wind_speed(time, nj, ni) ;
> wind_speed:add_offset = 0.f ;
> wind_speed:comment = "Typically represents surface
> winds (10 meters above the sea surface)" ;
> wind_speed:coordinates = "lon lat" ;
> wind_speed:height = "10 m" ;
> wind_speed:long_name = "wind speed" ;
> wind_speed:scale_factor = 0.15f ;
> wind_speed:source = "Wind speed from NCEP GFS data" ;
> wind_speed:standard_name = "wind_speed" ;
> wind_speed:units = "m s-1" ;
> wind_speed:valid_max = 127b ;
> wind_speed:valid_min = -127b ;
> wind_speed:_FillValue = -128b ;
> short brightness_temperature_11um(time, nj, ni) ;
> brightness_temperature_11um:add_offset = 273.15f ;
> brightness_temperature_11um:comment = "non L2P core
> field; brightness temperature for 10.8 um channel AVHRR Ch. 4" ;
> brightness_temperature_11um:coordinates = "lon lat" ;
> brightness_temperature_11um:long_name = "brightness
> temperature for 10.8 um channel" ;
> brightness_temperature_11um:scale_factor = 0.01f ;
> brightness_temperature_11um:source = "AVHRR channel 4" ;
> brightness_temperature_11um:units = "kelvin" ;
> brightness_temperature_11um:valid_max = 32767s ;
> brightness_temperature_11um:valid_min = -32767s ;
> brightness_temperature_11um:_FillValue = -32768s ;
> short brightness_temperature_12um(time, nj, ni) ;
> brightness_temperature_12um:add_offset = 273.15f ;
> brightness_temperature_12um:comment = "non L2P core
> field; brightness temperature for 12.0 um channel AVHRR Ch. 5" ;
> brightness_temperature_12um:coordinates = "lon lat" ;
> brightness_temperature_12um:long_name = "brightness
> temperature for 12.0 um channel" ;
> brightness_temperature_12um:scale_factor = 0.01f ;
> brightness_temperature_12um:source = "AVHRR channel 5" ;
> brightness_temperature_12um:units = "kelvin" ;
> brightness_temperature_12um:valid_max = 32767s ;
> brightness_temperature_12um:valid_min = -32767s ;
> brightness_temperature_12um:_FillValue = -32768s ;
> short brightness_temperature_4um(time, nj, ni) ;
> brightness_temperature_4um:add_offset = 273.15f ;
> brightness_temperature_4um:comment = "non L2P core
> field; brightness temperature for 3.7 um channel AVHRR Ch. 3b" ;
> brightness_temperature_4um:coordinates = "lon lat" ;
> brightness_temperature_4um:long_name = "brightness
> temperature for 3.7 um channel" ;
> brightness_temperature_4um:scale_factor = 0.01f ;
> brightness_temperature_4um:source = "AVHRR channel 3b" ;
> brightness_temperature_4um:units = "kelvin" ;
> brightness_temperature_4um:valid_max = 32767s ;
> brightness_temperature_4um:valid_min = -32767s ;
> brightness_temperature_4um:_FillValue = -32768s ;
>
> // global attributes:
> :geospatial_bounds = "POLYGON(( 3.520 14.209,
> 176.005 20.284, -156.649 15.860, -23.493 9.963, 3.520 14.209))" ;
> :geospatial_first_scanline_first_fov_lat = 20.28396f ;
> :geospatial_first_scanline_first_fov_lon = 176.0049f ;
> :geospatial_first_scanline_last_fov_lat = 15.86f ;
> :geospatial_first_scanline_last_fov_lon = -156.6491f ;
> :geospatial_last_scanline_first_fov_lat = 14.20918f ;
> :geospatial_last_scanline_first_fov_lon = 3.520287f ;
> :geospatial_last_scanline_last_fov_lat = 9.962526f ;
> :geospatial_last_scanline_last_fov_lon = -23.49267f ;
> :Conventions = "CF-1.6" ;
> :Metadata_Conventions = "Unidata Dataset Discovery v1.0" ;
> :acknowledgment = "Please acknowledge the use of these
> data with the following statement: These data were provided by Group for
> High Resolution Sea Surface Temperature (GHRSST) and the National
> Oceanic and Atmospheric Administration (NOAA)." ;
> :cdm_data_type = "swath" ;
> :comment = "none" ;
> :creator_email = "Alex.Ignatov at noaa.gov" ;
> :creator_name = "Alex Ignatov" ;
> :creator_url = "http://www.star.nesdis.noaa.gov" ;
> :date_created = "20190304T214051Z" ;
> :easternmost_longitude = 180.f ;
> :file_quality_level = 3s ;
> :gds_version_id = "02.0" ;
> :geospatial_lat_resolution = 0.0099f ;
> :geospatial_lat_units = "degrees_north" ;
> :geospatial_lon_resolution = 0.0099f ;
> :geospatial_lon_units = "degrees_east" ;
> :history = "Created by Advanced Clear-Sky Processor for
> Oceans (ACSPO)-AVHRR at NOAA/NESDIS/OSPO." ;
> :id = "AVHRR18_G-OSPO-L2P-v2.41" ;
> :institution = "NOAA/NESDIS/OSPO" ;
> :keywords = "Oceans > Ocean Temperature > Sea Surface
> Temperature" ;
> :keywords_vocabulary = "NASA Global Change Master
> Directory (GCMD) Science Keywords" ;
> :license = "GHRSST protocol describes data use as free
> and open" ;
> :metadata_link =
> "
> http://podaac.jpl.nasa.gov/ws/metadata/dataset/?format=iso&shortName=AVHRR18_G-OSPO-L2P-v2.41"
>
> ;
> :naming_authority = "org.ghrsst" ;
> :northernmost_latitude = 20.28396f ;
> :platform = "NOAA-18" ;
> :processing_level = "L2P" ;
> :product_version = "2.41" ;
> :project = "Group for High Resolution Sea Surface
> Temperature" ;
> :publisher_email = "ghrsst-po at nceo.ac.uk" ;
> :publisher_name = "The GHRSST Project Office" ;
> :publisher_url = "http://www.ghrsst.org" ;
> :references = "Data convention: GHRSST Data
> Specification (GDS) v2.0. Algorithms: ACSPO-AVHRR ATBD (NOAA/NESDIS/STAR)"
> ;
> :sensor = "AVHRR_GAC" ;
> :source =
> "AVHRR_L1b,CMC0.2deg-CMC-L4-GLOB-v2.0,NOAA-NCEP-GFS" ;
> :southernmost_latitude = -90.f ;
> :spatial_resolution = "1.1 km at nadir" ;
> :standard_name_vocabulary = "CF Standard Name Table
> (v26, 08 November 2013)" ;
> :start_time = "20190304T200000Z" ;
> :stop_time = "20190304T205959Z" ;
> :summary = "Sea surface temperature retrievals produced
> by NOAA/NESDIS/OSPO office from AVHRR sensor" ;
> :time_coverage_end = "20190304T205959Z" ;
> :time_coverage_start = "20190304T200000Z" ;
> :title = "AVHRR L2P SST" ;
> :uuid = "2eaa373c-3ec6-11e9-ac15-f9642917379f" ;
> :westernmost_longitude = -180.f ;
> :netcdf_version_id = "4.3.2 of Sep 24 2015 08:51:38 $" ;
> }
>
>
> $ gdalinfo
> NETCDF:20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_
> G-ACSPO_V2.41-v02.0-fv01.0.nc:sea_surface_temperature
> Warning 1: dimension #2 (ni) is not a Longitude/X dimension.
> Warning 1: dimension #1 (nj) is not a Latitude/Y dimension.
> Driver: netCDF/Network Common Data Format
> Files:
>
> 20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_G-ACSPO_V2.41-v02.0-fv01.0.nc
> Size is 409, 7200
> Coordinate System is `'
> Metadata:
> NC_GLOBAL#acknowledgment=Please acknowledge the use of these data
> with the following statement: These data were provided by Group for High
> Resolution Sea Surface Temperature (GHRSST) and the National Oceanic and
> Atmospheric Administration (NOAA).
> NC_GLOBAL#cdm_data_type=swath
> NC_GLOBAL#comment=none
> NC_GLOBAL#Conventions=CF-1.6
> NC_GLOBAL#creator_email=Alex.Ignatov at noaa.gov
> NC_GLOBAL#creator_name=Alex Ignatov
> NC_GLOBAL#creator_url=http://www.star.nesdis.noaa.gov
> NC_GLOBAL#date_created=20190304T214051Z
> NC_GLOBAL#easternmost_longitude=180
> NC_GLOBAL#file_quality_level=3
> NC_GLOBAL#gds_version_id=02.0
> NC_GLOBAL#geospatial_bounds=POLYGON(( 3.520 14.209, 176.005
> 20.284, -156.649 15.860, -23.493 9.963, 3.520 14.209))
> NC_GLOBAL#geospatial_first_scanline_first_fov_lat=20.283962
> NC_GLOBAL#geospatial_first_scanline_first_fov_lon=176.00494
> NC_GLOBAL#geospatial_first_scanline_last_fov_lat=15.859998
> NC_GLOBAL#geospatial_first_scanline_last_fov_lon=-156.64908
> NC_GLOBAL#geospatial_last_scanline_first_fov_lat=14.20918
> NC_GLOBAL#geospatial_last_scanline_first_fov_lon=3.5202866
> NC_GLOBAL#geospatial_last_scanline_last_fov_lat=9.9625263
> NC_GLOBAL#geospatial_last_scanline_last_fov_lon=-23.492666
> NC_GLOBAL#geospatial_lat_resolution=0.0098999999
> NC_GLOBAL#geospatial_lat_units=degrees_north
> NC_GLOBAL#geospatial_lon_resolution=0.0098999999
> NC_GLOBAL#geospatial_lon_units=degrees_east
> NC_GLOBAL#history=Created by Advanced Clear-Sky Processor for Oceans
> (ACSPO)-AVHRR at NOAA/NESDIS/OSPO.
> NC_GLOBAL#id=AVHRR18_G-OSPO-L2P-v2.41
> NC_GLOBAL#institution=NOAA/NESDIS/OSPO
> NC_GLOBAL#keywords=Oceans > Ocean Temperature > Sea Surface Temperature
> NC_GLOBAL#keywords_vocabulary=NASA Global Change Master Directory
> (GCMD) Science Keywords
> NC_GLOBAL#license=GHRSST protocol describes data use as free and open
> NC_GLOBAL#Metadata_Conventions=Unidata Dataset Discovery v1.0
> NC_GLOBAL#metadata_link=
> http://podaac.jpl.nasa.gov/ws/metadata/dataset/?format=iso&shortName=AVHRR18_G-OSPO-L2P-v2.41
> NC_GLOBAL#naming_authority=org.ghrsst
> NC_GLOBAL#netcdf_version_id=4.3.2 of Sep 24 2015 08:51:38 $
> NC_GLOBAL#northernmost_latitude=20.283962
> NC_GLOBAL#platform=NOAA-18
> NC_GLOBAL#processing_level=L2P
> NC_GLOBAL#product_version=2.41
> NC_GLOBAL#project=Group for High Resolution Sea Surface Temperature
> NC_GLOBAL#publisher_email=ghrsst-po at nceo.ac.uk
> NC_GLOBAL#publisher_name=The GHRSST Project Office
> NC_GLOBAL#publisher_url=http://www.ghrsst.org
> NC_GLOBAL#references=Data convention: GHRSST Data Specification (GDS)
> v2.0. Algorithms: ACSPO-AVHRR ATBD (NOAA/NESDIS/STAR)
> NC_GLOBAL#sensor=AVHRR_GAC
> NC_GLOBAL#source=AVHRR_L1b,CMC0.2deg-CMC-L4-GLOB-v2.0,NOAA-NCEP-GFS
> NC_GLOBAL#southernmost_latitude=-90
> NC_GLOBAL#spatial_resolution=1.1 km at nadir
> NC_GLOBAL#standard_name_vocabulary=CF Standard Name Table (v26, 08
> November 2013)
> NC_GLOBAL#start_time=20190304T200000Z
> NC_GLOBAL#stop_time=20190304T205959Z
> NC_GLOBAL#summary=Sea surface temperature retrievals produced by
> NOAA/NESDIS/OSPO office from AVHRR sensor
> NC_GLOBAL#time_coverage_end=20190304T205959Z
> NC_GLOBAL#time_coverage_start=20190304T200000Z
> NC_GLOBAL#title=AVHRR L2P SST
> NC_GLOBAL#uuid=2eaa373c-3ec6-11e9-ac15-f9642917379f
> NC_GLOBAL#westernmost_longitude=-180
> NETCDF_DIM_EXTRA={time}
> NETCDF_DIM_time_DEF={1,4}
> NETCDF_DIM_time_VALUES=1204574400
> sea_surface_temperature#_FillValue=-32768
> sea_surface_temperature#add_offset=273.14999
> sea_surface_temperature#comment=SST obtained by regression with buoy
> measurements
> sea_surface_temperature#coordinates=lon lat
> sea_surface_temperature#long_name=sea surface skin temperature
> sea_surface_temperature#scale_factor=0.0099999998
> sea_surface_temperature#source=NOAA
> sea_surface_temperature#standard_name=sea_surface_skin_temperature
> sea_surface_temperature#units=kelvin
> sea_surface_temperature#valid_max=32767
> sea_surface_temperature#valid_min=-32767
> time#axis=T
> time#calendar=Gregorian
> time#comment=seconds since 1981-01-01 00:00:00
> time#long_name=reference time of sst file
> time#standard_name=time
> time#units=seconds since 1981-01-01 00:00:00
> Geolocation:
> LINE_OFFSET=0
> LINE_STEP=1
> PIXEL_OFFSET=0
> PIXEL_STEP=1
> SRS=GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS
>
> 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]]
> X_BAND=1
> X_DATASET=NETCDF:"
> 20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_G-ACSPO_V2.41-v02.0-fv01.0.nc
> ":lon
> Y_BAND=1
> Y_DATASET=NETCDF:"
> 20190304200000-OSPO-L2P_GHRSST-SSTsubskin-AVHRR18_G-ACSPO_V2.41-v02.0-fv01.0.nc
> ":lat
> Corner Coordinates:
> Upper Left ( 0.0, 0.0)
> Lower Left ( 0.0, 7200.0)
> Upper Right ( 409.0, 0.0)
> Lower Right ( 409.0, 7200.0)
> Center ( 204.5, 3600.0)
> Band 1 Block=409x1024 Type=Int16, ColorInterp=Undefined
> NoData Value=-32768
> Offset: 273.149993896484, Scale:0.00999999977648258
> Metadata:
> _FillValue=-32768
> add_offset=273.14999
> comment=SST obtained by regression with buoy measurements
> coordinates=lon lat
> long_name=sea surface skin temperature
> NETCDF_DIM_time=1204574400
> NETCDF_VARNAME=sea_surface_temperature
> scale_factor=0.0099999998
> source=NOAA
> standard_name=sea_surface_skin_temperature
> units=kelvin
> valid_max=32767
> valid_min=-32767
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://gradsusr.org/pipermail/gradsusr/attachments/20190306/b41f8160/attachment-0001.html>
More information about the gradsusr
mailing list