512b0efd15352bf237ce78edec87e6a5a333f77c
[baltrad-wrwp.git] / bin / wrwp_main.c
1 /* --------------------------------------------------------------------
2 Copyright (C) 2011 Swedish Meteorological and Hydrological Institute, SMHI
3
4 This is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8
9 This software is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with HLHDF.  If not, see <http://www.gnu.org/licenses/>.
16 ------------------------------------------------------------------------*/
17 #include "wrwp.h"
18
19 /** Main function for deriving weather radar wind and reflectivity profiles
20  * @file
21  * @author G´┐Żnther Haase, SMHI
22  * @date 2011-11-29
23  */
24 int main (int argc,char *argv[]) {
25 #ifdef KALLE
26         RaveIO_t* raveio = RaveIO_open (argv[1]);
27         PolarVolume_t* inobj = NULL;
28         PolarVolume_t* result = NULL;
29
30         if (argc<3) {
31                 printf ("Usage: %s <input ODIM_H5 polar volume> <output ODIM_H5 polar volume> \n",argv[0]);
32                 exit (1);
33         }
34
35         /*Opening of HDF5 radar input file.*/
36         if (RaveIO_getObjectType (raveio) == Rave_ObjectType_PVOL) {
37                 inobj = (PolarVolume_t*)RaveIO_getObject (raveio);
38         }
39         else {
40                 printf ("Input file is not a polar volume. Giving up ...\n");
41                 RAVE_OBJECT_RELEASE (inobj);
42                 return 1;
43         }
44         RaveIO_close (raveio);
45
46         result = wrwp (inobj);
47         if (inobj == NULL) {
48                 printf ("Could not derive wind profile %s, exiting ...\n", argv[1]);
49                 exit (1);
50         }
51
52         RaveIO_setObject (raveio, (RaveCoreObject*)result);
53         RaveIO_save (raveio, argv[2]);
54
55         RAVE_OBJECT_RELEASE (raveio);
56         RAVE_OBJECT_RELEASE (inobj);
57         RAVE_OBJECT_RELEASE (result);
58 #endif
59         exit (0);
60 }