Changes from Version 1 of OceanoArchive

Show
Ignore:
Author:
jjr8 (IP: 68.50.117.168)
Timestamp:
07/16/09 13:24:45 (4 months ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OceanoArchive

    v v1  
     1= Building an archive of popular oceanographic products in ArcGIS raster format = 
     2 
     3At Duke, we graduate approximately 100 Masters students per year, most of whom take at least one GIS class. We teach ArcGIS in our GIS classes, because it is the program that our students are most likely to encounter after graduation. As discussed in [wiki:"Converting HDFs to ArcGIS rasters" "this example"], ArcGIS has trouble reading data in HDF, NetCDF, and custom binary formats. Many oceanographic products are published in these formats. To relieve our students of the burden of downloading and converting frequently-used oceanographic products, we maintain an archive of these products in ArcGIS format (specifically, in !ArcInfo binary grid format). 
     4 
     5To maintain the archive, we wrote a Python script that uses MGET and Python's base libraries to scan the archive and the data providers' servers and update the archive with any data not presently in it. The script runs every night as a Windows Scheduled Task. 
     6 
     7== Products downloaded by the script == 
     8 
     9The script currently downloads the following products: 
     10 
     11 * MODIS Aqua, CZCS, OCTS, and GSFC Level 3 Mapped chlorophyll-a from the [http://oceancolor.gsfc.nasa.gov/ftp.html "NASA GSFC OceanColor Group"] 
     12 * Various geostrophic currents datasets from [http://www.aviso.oceanobs.com/ Aviso] that are accessible by OPeNDAP (see [http://www.aviso.oceanobs.com/en/data/data-access-services/opendap/opendap-adt-products/index.html here] and [http://www.aviso.oceanobs.com/en/data/data-access-services/opendap/opendap-sla-products/index.html here]; "merged" products only) 
     13 * Various sea surface height datasets from [http://www.aviso.oceanobs.com/ Aviso] that are accessible by OPeNDAP (see [http://www.aviso.oceanobs.com/en/data/data-access-services/opendap/opendap-adt-products/index.html here] and [http://www.aviso.oceanobs.com/en/data/data-access-services/opendap/opendap-sla-products/index.html here]; "merged" products only) 
     14 * [http://podaac.jpl.nasa.gov/PRODUCTS/p190.html "NOAA GOES Level 3 SST"] from [http://podaac.jpl.nasa.gov/ "NASA PO.DAAC"] 
     15 * [http://www.aviso.oceanobs.com/en/data/data-access-services/opendap/opendap-windwave-products/index.html "Significant wave height"] from [http://www.aviso.oceanobs.com/ Aviso] ("merged" only) 
     16 * [http://www.aviso.oceanobs.com/en/data/data-access-services/opendap/opendap-windwave-products/index.html "Ocean wind speed modulus"] from [http://www.aviso.oceanobs.com/ Aviso] ("merged" only) 
     17 * [http://podaac.jpl.nasa.gov/PRODUCTS/p109.html "QuikSCAT L3 daily gridded ocean wind vectors"] from [http://podaac.jpl.nasa.gov/ "NASA PO.DAAC"] 
     18 
     19We are adding more products to the script. In particular: [http://pathfinder.nodc.noaa.gov/ "NOAA NODC 4km AVHRR Pathfinder SST"]; MODIS Aqua SST, MODIS Terra SST, and the Merged Chlorophyll dataset from the [http://oceancolor.gsfc.nasa.gov/ftp.html "NASA GSFC OceanColor Group"]. 
     20 
     21== Getting the script == 
     22 
     23You can download the script from source:/OceanoArchive. There are three files: 
     24 
     25 * source:/OceanoArchive/UpdateOceano.py - the script itself 
     26 * source:/OceanoArchive/UpdateOceano.cmd - a batch file wrapper that we use to run !UpdateOceano.py (more on this below) 
     27 * source:/OceanoArchive/Logging.ini - the logging configuration file that we use when running the script (more on this below) 
     28 
     29== Requirements == 
     30 
     31 * Windows XP SP2 or later 
     32 * ArcGIS 9.3 or later 
     33   * We use 9.3.1; 9.2 will probably work, but we haven't tested it 
     34 * Python 2.5 
     35   * We use 2.5.4; 2.4 ''may'' work; 2.6 will probably not work 
     36 * [http://sourceforge.net/projects/pywin32/ PyWin32] build 212 or later 
     37 * The latest available version of MGET 
     38   * The script may work with older versions, but it will always work with the latest version 
     39 
     40== Script parameters == 
     41 
     42You can view the script parameters by running !UpdateOceano.py with no parameters: 
     43 
     44{{{ 
     45USAGE: UpdateOceano rootdir tempdir emailaddr [/S startdate] [/E enddate] 
     46                    [/L logini] [/T maxtime] [/P product [...]] 
     47 
     48    rootdir   - Full path to oceano archive root directory. This must start with 
     49                a drive letter, e.g. C:. If the archive is stored on a remote 
     50                computer, access it through a mapped drive. 
     51 
     52    tempdir   - Full path to directory to hold temporary files. If the archive 
     53                is extremely out of date, this directory should have 10 to 200 
     54                GB of free space. For optimal performance, it should be a hard 
     55                drive installed in the local computer. 
     56 
     57    emailaddr - Email address to be provided as the password when logging into 
     58                FTP servers with the anonymous user name. Many FTP servers 
     59                require you to provide an email address when logging in 
     60                anonymously, so this parameter is not optional. 
     61 
     62    startdate - Starting date for the data to download, in YYYY-MM-DD format. 
     63                If not specified, the script will scan the archive and start the 
     64                download at the date that the product ends in the archive. If 
     65                the product has never been downloaded before, the script will 
     66                start the download at the beginning of the product. 
     67 
     68    enddate   - Ending date for the data to download, in YYYY-MM-DD format. If 
     69                not specified, downloading will end with the last date of the 
     70                product. 
     71 
     72    logini    - Full path to Logging.ini file to configure logging. If not 
     73                specified, the normal MGET Logging.ini file will be used 
     74                (from the user's %APPDATA% directory, if it exists, or from the 
     75                GeoEco installation directory, if it does not). 
     76 
     77    maxtime   - Maximum time, in minutes, that the script should run. If the 
     78                script exceeds this time, it will exit with error code 2. Use 
     79                this option to work around ArcGIS memory leaks. Call the script 
     80                from a loop in a batch file that keeps calling the script so 
     81                long as %ERRORLEVEL% is 2 when the script exits. 
     82 
     83    product   - List of one or more products to update, separated by spaces. If 
     84                none are specified, all will be updated. Product names are case 
     85                sensitive. 
     86 
     87The normal way to use this script is to omit the /S, /E, and /P parameters. The 
     88script will then download all of the products, starting where the download ended 
     89last time, and ending with the most recently-available data. 
     90 
     91The products that may be specified for the /P parameter are: 
     92 
     93Chl:GSFC:Aqua, Chl:GSFC:CZCS, Chl:GSFC:OCTS, Chl:GSFC:SeaWiFS, 
     94GC:AVISO, SSH:AVISO, SST:PODAAC:GOES, Wave:AVISO, Winds:AVISO, 
     95Winds:PODAAC:QuikSCAT 
     96}}} 
     97 
     98== Running the script manually == 
     99 
     100''To be written'' 
     101 
     102== Running the script automatically as a Windows Scheduled Task == 
     103 
     104''To be written'' 
     105 
     106== ArcGIS rasters output by the script == 
     107 
     108The script constructs a tree under the directory that you provide as the first parameter to the script. The organization of this tree, the names of the rasters, and so on are not currently documented. You can figure this out by just looking at the output and examining the script source code. If you have questions, feel free to email [mailto:jason.roberts@duke.edu].