Opened 9 years ago

Closed 9 years ago

#429 closed defect (duplicate)

eum2ropp -l needs to convert r_leo etc from ECI to ECF coords

Reported by: Ian Culverwell Owned by: Ian Culverwell
Priority: normal Milestone: 9.0
Component: ropp_io Version: 8.0
Keywords: Cc:

Description

Running the attached script through the attached datafile generates this output (also attached):

Generating netCDF file with level 1a content:  eum2ropp_l1a.nc
r_leo from eum2ropp -l:
		r_leo:reference_frame = "ECI" ;
r_leo[0]=-1074675.19168 
r_leo[19073]=-3927680.39718 
r_leo[38146]=-5945752.48389 



Generating netCDF file without level 1a content:  eum2ropp_l1a.nc
r_leo from eum2ropp:
		r_leo:reference_frame = "ECF" ;
r_leo[0]=3812868.29909 
r_leo[1]=-1867721.91995 
r_leo[2]=-5822922.34771 



Generating BUFR file from ROPP file with level 1a content:  eum2ropp_l1a.nc.bufr
r_leo from eum2ropp -l | ropp2bufr:
 IN DIRECTION OF 0 DEGREES LONGITUDE, DISTANCE FROM THEM            -1074675.25
 IN DIRECTION 90 DEGREES EAST, DISTANCE FROM THE EARTHSM            -3927680.50
 IN DIRECTION OF THE NORTH POLE, DISTANCE FROM THE EARTM            -5945752.50


Generating BUFR file from ROPP file without level 1a content:  eum2ropp_l1b.nc.bufr
r_leo from eum2ropp | ropp2bufr:
 IN DIRECTION OF 0 DEGREES LONGITUDE, DISTANCE FROM THEM             3812868.25
 IN DIRECTION 90 DEGREES EAST, DISTANCE FROM THE EARTHSM            -1867721.88
 IN DIRECTION OF THE NORTH POLE, DISTANCE FROM THE EARTM            -5822922.50


Generating netCDF file from BUFR file with level 1a content:  eum2ropp_l1a.nc.bufr.nc
r_leo from eum2ropp -l | ropp2bufr | bufr2ropp:
		r_leo:reference_frame = "ECF" ;
r_leo[0]=-1074675.25 
r_leo[1]=-3927680.5 
r_leo[2]=-5945752.5 



Generating BUFR file from ROPP file without level 1a content:  eum2ropp_l1b.nc.bufr.nc
r_leo from eum2ropp | ropp2bufr | bufr2ropp:
		r_leo:reference_frame = "ECF" ;
r_leo[0]=3812868.25 
r_leo[1]=-1867721.88 
r_leo[2]=-5822922.5 



**** Axel's equivalent output ***
r_leo when going with level 1a:
 r_leo =
  -1074675.25,
  -3927680.5,
  -5945752.5 ;
}


r_leo when going without level 1a:
 r_leo =
  3812868.25,
  -1867721.88,
  -5822922.5 ;
}

Note that the lev1a satellite coordinates (r_receiver etc), which are in ECI coords, are transplanted without transformation into the BUFR file, where they are assumed to be in ECF coords ('cos that's what BUFR needs). bufr2ropp therefore outputs the unchanged numbers in that format too. This is obviously wrong. They should be converted to ECF coords (via a call to eci2ecf) as soon as they are read in, and the reference frame changed to 'ECF'.

Note that you can only get the lev1b (single value) r_leo etc (which are in ECF coords, so no need to fix these) by running the attached version of ropp_io_read_ncdf_get.f90, which contains the crucial difference from the ROPP8.0 version that

IF (getbufr) THEN

has been replaced by

IF (.NOT. getlevel1a) THEN

at about line 2537. We should include this change in ROPP too.

Attachments (4)

test1.sh (2.4 KB ) - added by Ian Culverwell 9 years ago.
test1.sh
test1.out (1.8 KB ) - added by Ian Culverwell 9 years ago.
test1.out
ropp_io_read_ncdf_get.f90 (129.5 KB ) - added by Ian Culverwell 9 years ago.
ropp_io_read_ncdf_get.f90
GRAS_1B_M02_20080701000214Z_20080701000329Z_R_O_20150413081448Z_G19_NN.nc (4.2 MB ) - added by Ian Culverwell 9 years ago.
GRAS_1B_M02_20080701000214Z_20080701000329Z_R_O_20150413081448Z_G19_NN.nc

Change history (7)

by Ian Culverwell, 9 years ago

Attachment: test1.sh added

test1.sh

by Ian Culverwell, 9 years ago

Attachment: test1.out added

test1.out

by Ian Culverwell, 9 years ago

Attachment: ropp_io_read_ncdf_get.f90 added

ropp_io_read_ncdf_get.f90

by Ian Culverwell, 9 years ago

GRAS_1B_M02_20080701000214Z_20080701000329Z_R_O_20150413081448Z_G19_NN.nc

comment:1 by Ian Culverwell, 9 years ago

Trying this in a branch converts

r_leo from eum2ropp -l:
		r_leo:reference_frame = "ECI" ;
r_leo[0]=-1074675.19168 
r_leo[19073]=-3927680.39718 
r_leo[38146]=-5945752.48389 

to

		r_leo:reference_frame = "ECF" ;
r_leo[0]=3680094.93176 
r_leo[19073]=-1743129.76089 
r_leo[38146]=-5945752.48389 

which is a lot closer to the 'straight' eum2ropp values of

r_leo from eum2ropp:
		r_leo:reference_frame = "ECF" ;
r_leo[0]=3812868.29909 
r_leo[1]=-1867721.91995 
r_leo[2]=-5822922.34771 

So it looks sensible.

comment:2 by Ian Culverwell, 9 years ago

This change has been superseded by the work of #452, which was implemented in the ROPP90_prototype branch at r4857. Closing as 'duplicate'.

comment:3 by Ian Culverwell, 9 years ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.