[Thread Prev][Thread Next][Index]
Re: [ferret_users] ASCII DATA
Hi Ashley -
Is there a reason why you need to read the lon,lat values in the
file? It sounds as if you already know the axis information (since
you are defining a grid based on some knowledge of the structure).
What is the point of having lon and lat on a lat/lon/time grid?
But if you do want to keep this information, one way is to do 2
separate reads. It requires knowing the format of the data records
(or a careful read of Chapter 2, section 5.2 of the manual on
"delimited reads"), or see the last block below for a kluge.
! first read lon,lat
define axis/x=8.0833E:22.917E/npo=90 xaxis
define axis/y=48.083:53.917/npo=36 yaxis
define grid/x=xaxis/y=yaxis mygridxy
file/var="lat,lon"/g=mygridxy/ord=xy mydatafile.dat ! note: need
those quotes around the variable list!
! save the lon,lat variables for later use
save/file=saved_lon_lat.cdf lon,lat
! now read the data pre, knowing the fortran format of the file
! if you decided that you don't really need lon,lat, then just start
here
define axis/t=15-SEP-1988:14-AUG-1989:`365.2425/12`/units=days/T0=15-
SEP-1988 taxis
define grid/x=xaxis/y=yaxis/t=taxis mygridxyt
file/format=(12x,12f9.1)/var=pre/g= mygridxyt/col=12/ord=xyt
mydatafile.dat
! I have "guessed" at the format, note the use of "12x" to skip 12
spaces at the beginning of each record
! if you don't know the format, or if it is free format, then you can
still do this as in step 1 above,
! using an extra write/read to force a format
file/
var="lat,lon,pre1,pre2,pre3,pre4,pre5,pre6,pre7,pre8,pre9,pre10,pre11,pr
e12"/g=mygridxy/ord=xy mydatafile.dat
! write it out to a dummy file
list/nohead/format=(12f9.1)/file=dummy.dat
pre1,pre2,pre3,pre4,pre5,pre6,pre7,pre8,pre9,pre10,pre11,pre12
! now read it back in, on the grid you want
file/format=(12f9.1)/var=pre/g= mygridxyt/col=12/ord=xyt dummy.dat
I think that will work!
Billy K
On Dec 11, 2006, at 2:41 PM, Jaison Kurian wrote:
Hi Ashley,
Your ascii file is not in a format which can be properly
opened in Ferret. Columns 3-14 contains data on an XYT grid, which
should be readed along the line/row using /COLUMNS qualifier. But the
presence of lon and lat in the first 2 columns makes this jobs diffi-
cult. Ferret can skip lines/rows easily, but not columns. There are
many Linux "text" commands which can modify the original ASCII data
to a format which can be opened in Ferret.
Here is an example using "awk" utility in Linux/Unix (you can
also try commands like column, cut, sed, colrm etc). Modify this
example according to your ASCII data and give a try. Please let me
know if you have any problems with this method.
Regards,
Jaison
Example for reading ASCII data after removing first 2-columns
-------------------------------------------------------------
Suppose you have an ascii file with 3-lon, 2-lat & 12-time points,
arranged as Lon, lat, data(t=1:12) ..like this
1 1 1 2 3 4 5 6 7 8 9 10 11 18
2 1 0 8 9 7 6 5 4 2 3 19 10 13
3 1 5 3 2 4 9 3 2 6 2 16 14 12
1 2 1 2 3 4 5 6 7 8 9 10 11 18
2 2 0 8 9 7 6 5 4 2 3 19 10 14
3 2 5 3 2 4 9 3 2 6 2 16 14 12
in a file latlon_prec.dat. Then try as follows
!-----------------jnl file starts
here---------------------------------
! If you precisely know the lat lon points to define the grid, then
you
! don't need the first two columns of the ASCII data. Also ferret
! will not skip "columns". Remove first two columns using awk
command
! as follows, save the resulting data to an intermediate file
spawn rm -f prec.dat ! remove if this intermediate file exists
spawn awk '{$1=$2=""; print}' latlon_prec.dat > prec.dat
! define input grid
define axis/x=1:3:1 xax
define axis/y=1:2:1 yax
define axis/t=1:12:1 tax
define grid/x=xax/y=yax/t=tax gfile
! read in data from the intermediate file
! give the proper ORDER in which data is arranged--> along a line/
row
! time varies fastest (since we are reading with COLUMNS qualifier)
! so T should come first....choose X and Y as required...
FILE/grid=gfile/ORDER=TXY/COLUMNS=12/var=prec prec.dat
list/i=3/j=2 prec ! check if data has been properly read
set var/bad=-999.99/title="My variable"/units="my_units" prec
! do your calculations here
! save the data if you need to access it easily in future..
! sp rm -f savedata.nc
! save/file=savedata/APPEND prec
! save/file=savedata/APPEND other, variables, here
! remove the intermediate file
sp rm -f prec.dat
!---------------------------------------------------------------------
---
On Mon, 4 Dec 2006, Ashley Watson wrote:
Hi everyone,
I'm trying to read an ASCII data file with 3 variables. The file
looks like:
lon lat Pre(t=1) Pre(t=2) ............Pre(t=12)
.....................................................................
...............
.....................................................................
...............
.....................................................................
..............
So there are 14 columns in datafile. The first two variables are
lat, lon
and the third one is variable with 12 timesteps.
I tried to read this data with commnds:
define axis/x=8.0833E:22.917E/npo=90 xaxis
define axis/y=48.083:53.917/npo=36 yaxis
define
axis/t=15-SEP-1988:14-AUG-1989:`365.2425/12`/units=days/T0=15-
SEP-1988 taxis
define grid/x=xaxis/y=yaxis/t=taxis mygrid
file/var=lat,lon,pre/grid=mygrid/col=14/order=xyt mydatafile.dat
It does'nt work. show data command shows:
I J K L
lon 1:90 1:36 ... 1:12
lat 1:90 1:36 ... 1:12
pre 1:90 1:36 ... 1:12
The problem is L should be 1 for lat, lat variables. Whats wrong. Any
suggestion
Ashley
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
William S. Kessler
NOAA / Pacific Marine Environmental Laboratory
7600 Sand Point Way NE
Seattle WA 98115 USA
william.s.kessler@noaa.gov
Tel: 206-526-6221
Fax: 206-526-6744
Home page: http://www.pmel.noaa.gov/people/kessler/
[Thread Prev][Thread Next][Index]
Dept of Commerce /
NOAA /
OAR /
PMEL /
TMAP
Contact Us | Privacy Policy | Disclaimer | Accessibility Statement