[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20050701: wavelet decompression ADDE server code



>From: "Valentijn Venus" <address@hidden>
>Organization: ITC
>Keywords: 200507011338.j61DcBjo014148 McIDAS MSG wavlet development

Hi Valentijn,

I hope you are well...

>we're trying to add the xrit decompress sources to the McIDAS sources so that 
>it can handle Meteosat 8 data wavelet compressed data.

OK.

>In Fortran /home/mcidas/mcidas2004/src/msgtaget2.for line 1635 t/m 1668 we
>will add the xrit code. 

This sounds reasonable.  The NOAAPORT GINI ADDE server, giniaget, may
be interesting for you to look at to see how I incorporated
uncompressing image data into a server.  It was not too hard to do, but
it was a bit tricky.

>is there a simple makefile you could suggest for recompiling this part of
>McIDAS?

I think that the easiest thing to do is to simply use the main McIDAS
makefile (and it is good you saved the original source before proceeding):

<as 'mcidas'>
cd ~mcidas/mcidas2004/src
make msgtaget2.o          <- may need to be 'make VENDOR=-g77 msgtaget2.o'
                             depending on your compilation environment

Once you have gotten to the point of eliminating errors in your compilation
of msgtaget2.for, you can tell McIDAS to go ahead and relink the
applications that depend on msgtaget2.o:

make                      <- may need to be 'make VENDOR=-g77'

The other approach is to take the McIDAS makefile and strip out all
of the stuff that is not related to what you are trying to accomplish.
I have done this once before for a site, and it is not too hard, but
it does take some playing around.  If you decide to go this route,
I would then do your development in a directory other than the src
directory of the distribution you are working on:

~mcidas/mcidas/src             <- you will need to create this directory

If you are interested in pursuing this approach, I will dig around to 
see if I can find the makefile I created for the other site.

>The original file has been saved as 
>/home/mcidas/mcidas2004/src/msgtaget2.for.bak.

Good move!

Cheers,

Tom
--
NOTE: All email exchanges with Unidata User Support are recorded in the
Unidata inquiry tracking system and then made publicly available
through the web.  If you do not want to have your interactions made
available in this way, you must let us know in each email you send to us.

>From address@hidden  Tue Jul  5 14:25:59 2005

Hi Tom, 
 
>From: "Valentijn Venus" <address@hidden>
>Organization: ITC
>Keywords: 200507011338.j61DcBjo014148 McIDAS MSG wavlet development

>Hi Valentijn,

>I hope you are well...

yes thank you i am well. Just returned from  trip to Kenya. We're tying
to setup a joint (short) course with Kenyatti University and the
Regional Centre for Mapping for Resource Development (RCMRD) in
Nairobi. I evangelised for ditributed data access technologies (McIDAS
ADDE, DODS, and IDV). Were planning for June next year, and hope to get
this Meteosat-8 ADDE working for them. If it supports the compressed
XRIT data also the financial side of things remain interesting. McIDAS
licenses are still very expensive? As you see, i'm still eager getting
this technology into Africa.

>we're trying to add the xrit decompress sources to the McIDAS sources so that
>it can handle Meteosat 8 data wavelet compressed data.

>OK.

>In Fortran /home/mcidas/mcidas2004/src/msgtaget2.for line 1635 t/m 1668 we
>will add the xrit code.

>This sounds reasonable.  The NOAAPORT GINI ADDE server, giniaget, may
>be interesting for you to look at to see how I incorporated
>uncompressing image data into a server.  It was not too hard to do, but
>it was a bit tricky.

Cool, can you send me the sources, and a reference to the lines you
added/changed?

>is there a simple makefile you could suggest for recompiling this part of
>McIDAS?

>I think that the easiest thing to do is to simply use the main McIDAS
>makefile (and it is good you saved the original source before proceeding):

><as 'mcidas'>
>cd ~mcidas/mcidas2004/src
>make msgtaget2.o          <- may need to be 'make VENDOR=-g77 msgtaget2.o'
>                             depending on your compilation environment

>Once you have gotten to the point of eliminating errors in your compilation
>of msgtaget2.for, you can tell McIDAS to go ahead and relink the
>applications that depend on msgtaget2.o:

> make                      <- may need to be 'make VENDOR=-g77'
>
>The other approach is to take the McIDAS makefile and strip out all
>of the stuff that is not related to what you are trying to accomplish.
>.I have done this once before for a site, and it is not too hard, but
>it does take some playing around.  If you decide to go this route,
>I would then do your development in a directory other than the src
>directory of the distribution you are working on:

>~mcidas/mcidas/src             <- you will need to create this directory

>If you are interested in pursuing this approach, I will dig around to
>see if I can find the makefile I created for the other site.

OK. Thanks for the advise. I think i will go the easy route first, and
if thing fail i'll get back to you for that custom make file.

One other thing. How do you call C routines form the Fortran sources as
the XRIT decompress code is supplied to us in C.  A simple google
yielded this:

To call C routines from a Fortran program, you will have to write some
C code.  Fortran passes arguments by reference or address, so the C
function has to be prepared to accept the variable as an address.  This
means that you will have to write functions in C that are called from
Fortran that set up the arguments properly before calling the library
function.  Schematically, this might be something like this [...]

http://web.mit.edu/answers/c/fortran_call_c.html

Another approach would be to completely rewrite the wavelet transform
code from C to Fortran. Although the programmer assigned to this task
is the best one we have in the building, any help is be appreciated.

>The original file has been saved as 
>/home/mcidas/mcidas2004/src/msgtaget2.for.bak.

>Good move!

Cheers,

Valentijn