Ticket 726: Enable standalone binary jenkins-wrwp-27
authorAnders Henja <anders@henjab.se>
Thu, 15 Feb 2018 22:00:23 +0000 (23:00 +0100)
committerAnders Henja <anders@henjab.se>
Thu, 15 Feb 2018 22:00:23 +0000 (23:00 +0100)
bin/wrwp_main.c
lib/wrwp.c

index 512b0ef..adba623 100644 (file)
@@ -15,6 +15,7 @@ You should have received a copy of the GNU Lesser General Public License
 along with HLHDF.  If not, see <http://www.gnu.org/licenses/>.
 ------------------------------------------------------------------------*/
 #include "wrwp.h"
+#include "rave_debug.h"
 
 /** Main function for deriving weather radar wind and reflectivity profiles
  * @file
@@ -22,39 +23,58 @@ along with HLHDF.  If not, see <http://www.gnu.org/licenses/>.
  * @date 2011-11-29
  */
 int main (int argc,char *argv[]) {
-#ifdef KALLE
-       RaveIO_t* raveio = RaveIO_open (argv[1]);
+       RaveIO_t* raveio = NULL;
        PolarVolume_t* inobj = NULL;
-       PolarVolume_t* result = NULL;
+       VerticalProfile_t* result = NULL;
+       Wrwp_t* wrwp = NULL;
+       int exitcode = 127;
+
+       Rave_initializeDebugger();
+       Rave_setDebugLevel(RAVE_DEBUG);
 
        if (argc<3) {
                printf ("Usage: %s <input ODIM_H5 polar volume> <output ODIM_H5 polar volume> \n",argv[0]);
                exit (1);
        }
 
+       raveio = RaveIO_open(argv[1]);
+       if (raveio == NULL) {
+         fprintf(stderr, "Failed to open file = %s\n", argv[1]);
+         goto done;
+       }
+
+       wrwp = RAVE_OBJECT_NEW(&Wrwp_TYPE);
+       if (wrwp == NULL) {
+         fprintf(stderr, "Failed to create wrwp object\n");
+         goto done;
+       }
+
        /*Opening of HDF5 radar input file.*/
-       if (RaveIO_getObjectType (raveio) == Rave_ObjectType_PVOL) {
-               inobj = (PolarVolume_t*)RaveIO_getObject (raveio);
+       if (RaveIO_getObjectType(raveio)== Rave_ObjectType_PVOL) {
+               inobj = (PolarVolume_t*)RaveIO_getObject(raveio);
        }
        else {
                printf ("Input file is not a polar volume. Giving up ...\n");
-               RAVE_OBJECT_RELEASE (inobj);
-               return 1;
+               goto done;
        }
        RaveIO_close (raveio);
 
-       result = wrwp (inobj);
+       result = Wrwp_generate(wrwp, inobj, NULL);
        if (inobj == NULL) {
                printf ("Could not derive wind profile %s, exiting ...\n", argv[1]);
                exit (1);
        }
 
-       RaveIO_setObject (raveio, (RaveCoreObject*)result);
-       RaveIO_save (raveio, argv[2]);
+       RaveIO_setObject(raveio, (RaveCoreObject*)result);
+
+       if (!RaveIO_save(raveio, argv[2]))
+         goto done;
+
+       exitcode = 0;
+done:
+       RAVE_OBJECT_RELEASE(raveio);
+       RAVE_OBJECT_RELEASE(inobj);
+       RAVE_OBJECT_RELEASE(result);
 
-       RAVE_OBJECT_RELEASE (raveio);
-       RAVE_OBJECT_RELEASE (inobj);
-       RAVE_OBJECT_RELEASE (result);
-#endif
-       exit (0);
+       return exitcode;
 }
index 13ea786..bd9dbc2 100644 (file)
@@ -567,6 +567,7 @@ VerticalProfile_t* Wrwp_generate(Wrwp_t* self, PolarVolume_t* inobj, const char*
       RAVE_FREE(v);
       RAVE_FREE(z);
       RAVE_FREE(az);
+      RAVE_INFO0("Could not find any acceptable scans, dropping out");
       goto done;
     } 
 
@@ -687,7 +688,6 @@ VerticalProfile_t* Wrwp_generate(Wrwp_t* self, PolarVolume_t* inobj, const char*
       RAVE_OBJECT_RELEASE(result);
     }
   }
-
   VerticalProfile_setLongitude(result, PolarVolume_getLongitude(inobj));
   VerticalProfile_setLatitude(result, PolarVolume_getLatitude(inobj));
   VerticalProfile_setHeight(result, PolarVolume_getHeight(inobj));
@@ -698,7 +698,7 @@ VerticalProfile_t* Wrwp_generate(Wrwp_t* self, PolarVolume_t* inobj, const char*
   VerticalProfile_setMaxheight(result, self->hmax);
   VerticalProfile_setDate(result, PolarVolume_getDate(inobj));
   VerticalProfile_setTime(result, PolarVolume_getTime(inobj));
-  
+
   /* Set the times and product, starttime is the starttime for the lowest elev
      endtime is the endtime for the highest elev. */
   VerticalProfile_setStartDate(result, RaveDateTime_getDate(firstStartDT));