#!/usr/local/bin/perl #-- -*-perl-*- # Thur Feb 10, 2004 Yan Gu # Copied from gcv_glob_L2B_1x1, modified for half degree data set # Thur Feb 22, 2001 Stacey Campbell # Copied from gcv_glob_L2B, modified for a different data set # Tue Apr 04 16:57:05 EDT 2000 Austin David # Copied from gcv_glob, modified for a different data set # Mon Jul 26 15:03:30 EDT 1999 Austin David # Copied from nscat-gcv, modified for a different data set # performs interactive downloading of NSCAT gridded data # based on getwoce, getcoare and nscat-get # jns 07 Oct 1997 # 26 Oct 1997 - playing with the -T (taint checking) flag # 04 May 1998 - revised for the GCV Indian Ocean NSCAT winds # 06 Aug 1998 - revised to bring it into line with nscat-get's # multi-tabular calendar entry (aka a bank calendar) # first entry is blank, since the arrays are in the range of 0->N # and a zeroeth month doesn't make much sense... ;) @smon=(' ','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); #init these lists to the months, they'll be replaced along the way. # this is retarded @size=(0,0,0,0,0,0,0,0,0,0,0,0,0); @sfile=@smon; @efile=@smon; use CGI; use CGI::Carp; use Date::Manip; use Time::JulianDay; use File::Basename; $|=1; # we want piping hot pipes! # Fields are located in $paths = "/Net/data/qscat/data/glob_L2B_1d/"; $paths = "/Net/data/qscat/data/glob_qscat_hd/"; # read up the coaps header file for inclusion #print "Content-type: text/html\n\n"; open(COAPS,"/Net/coaps/httpd/docs/lib/nav/navbar_test.html") or die $!; @coaps=; close(COAPS); opendir DIR, $paths || die "can't open directory: $paths"; %files = (); @years = sort grep(/^[0-9]{4}$/, readdir(DIR)); foreach $year (@years) { @filesnc = (); opendir YEAR, $paths.$year||die "can't open year $year in $paths\n"; push @filesnc, sort grep(/\.nc$/, readdir(YEAR)); $files{$year} = join " ", @filesnc if @filesnc; } closedir(DIR); print qq( QuikSCAT Cross Validated Global Pseudo-Stresses @coaps

COAPS QuikSCAT Global Monthly Pseudo-Stress Vectors using Variational Method with Generalized Cross Validation


Monthly fields of pseudo-stress are produced using a variational approach (direct minimization) with tuning parameters determined using Generalized Cross-Validation (GCV). These products are on a 0.5x0.5° grid. The scatterometer winds, and these gridded winds, are calibrated to a height of 10 m. This approach utilizes the only QuikSCAT observations filtered by the NOF rain flag and should be considered as a research quality data set.

The technique used to make these fields is based on the method of Pegion, P. J., M. A. Bourassa, D. M. Legler, and J. J. O\'Brien, 2000: Objectively-derived daily "winds" from satellite scatterometer data. Mon. Wea. Rev., 128, 3150-3168.


From this interface, you can download individual files, files grouped by year, or the entire collection of gridded QuikSCAT data produced here at COAPS.

These files are in NetCDF format, which can be obtained from UNIDATA.

Routines to read the NetCDF formatted files can be found here.

\n); # We need to sum the files in month-long bits; there are/will be # several years, so we count those, too... $sum = 0; foreach $year (sort @years) { # for every month in this year ... foreach $mon (sort (split ' ', $files{$year})) { # grab the date-part of the filename (undef,undef,$dates)=split(/\_/,$mon); $dates = basename($dates,'.nc'); ($yr,$mons)=unpack("A4A2",$dates); $this_mon = -s $paths . $yr . "/" . $mon; if ($this_mon) { $size{"$yr"} += $this_mon; } # we keep a running total, too: $sum += $this_mon; } } $sum=sprintf "%6.2f mb",$sum/(1024*1024); print qq (

Select to download either a set of files, or a single file.

); print qq( "; ##### print ""; print ""; print "
Set of files Single file
); print qq(

Download entire dataset, or just selected years as a convenient tar file:

Entire Dataset ($sum)
); $check = "checked"; sub bymon { ($y,$m) = split "/", $a; ($z,$n) = split "/", $b; # print "y $y v $z and $m v $n
\n"; $y <=> $z or $m <=> $n; } foreach $yr (sort keys %size) { #($year, $mon) = split "/", $ym; # debug # print "
\nSizing: $year, $mon\n"; print "\t"; print qq( $yr ); print "(" . (sprintf "%6.2f kb", $size{$yr}/1024) . ")
\n"; $check=''; } print "
\n"; print qq(

Please select one of the following options (compression is highly recommended):

tar\'d file
gzip\'d tar file
compress\'d tar file

); print "

"; print ""; print ""; print "Download an individual uncompressed file: (Only available for years listed left.)\n"; print ""; print ""; print "


"; print "Year: "; print "\n"; print "Month: "; print "\n"; print "

\n"; ##### print "
"; print qq(
); print < http://www.coaps.fsu.edu/scatterometry/index.shtml http://www.coaps.fsu.edu/lib/biblio/scatterometry/ http://www.coaps.fsu.edu/ NSCAT Background QuickSCAT Background http://www.coaps.fsu.edu/scatterometry/Nscat/animations.shtml
http://www.coaps.fsu.edu/qscat/anim/
http://www.coaps.fsu.edu/scatterometry/Nscat/still_images.shtml science applications links http://www.coaps.fsu.edu/scatterometry/Nscat/sci_appl.shtml http://www.coaps.fsu.edu/scatterometry/Nscat/swaths.shtml http://www.coaps.fsu.edu/~bourassa/QSCAT_CV/swaths.shtml http://www.coaps.fsu.edu/scatterometry/Nscat/gridded.shtml http://www.coaps.fsu.edu/~bourassa/QSCAT_CV/gridded.shtml http://www.coaps.fsu.edu/~bourassa/scat_html/NSCAT_CV/data_sets.shtml qscat cal/val
NEXT print qq(Last modified 17 July 2000
Feedback - Dr. Mark Bourassa \n); # (c) Tue Apr 18 17:25:07 EDT 2000 Austin David -- all the noise above