def _do_test_create_geospatial_point_center(self, resources):
        platformsite_obj = IonObject(RT.PlatformSite,
                                        name='TestPlatformSite',
                                        description='some new TestPlatformSite')
        geo_index_obj = IonObject(OT.GeospatialBounds)
        geo_index_obj.geospatial_latitude_limit_north = 20.0
        geo_index_obj.geospatial_latitude_limit_south = 10.0
        geo_index_obj.geospatial_longitude_limit_east = 15.0
        geo_index_obj.geospatial_longitude_limit_west = 20.0
        platformsite_obj.constraint_list = [geo_index_obj]

        platformsite_id = self.OMS.create_platform_site(platformsite_obj)

        # now get the dp back to see if it was updated
        platformsite_obj = self.OMS.read_platform_site(platformsite_id)
        self.assertEquals('some new TestPlatformSite', platformsite_obj.description)
        self.assertAlmostEqual(15.0, platformsite_obj.geospatial_point_center.lat, places=1)


        #now adjust a few params
        platformsite_obj.description = 'some old TestPlatformSite'
        geo_index_obj = IonObject(OT.GeospatialBounds)
        geo_index_obj.geospatial_latitude_limit_north = 30.0
        geo_index_obj.geospatial_latitude_limit_south = 20.0
        platformsite_obj.constraint_list = [geo_index_obj]
        update_result = self.OMS.update_platform_site(platformsite_obj)

        # now get the dp back to see if it was updated
        platformsite_obj = self.OMS.read_platform_site(platformsite_id)
        self.assertEquals('some old TestPlatformSite', platformsite_obj.description)
        self.assertAlmostEqual(25.0, platformsite_obj.geospatial_point_center.lat, places=1)

        self.OMS.force_delete_platform_site(platformsite_id)
Exemplo n.º 2
0
    def _do_test_create_geospatial_point_center(self, resources):
        platformsite_obj = IonObject(RT.PlatformSite,
                                        name='TestPlatformSite',
                                        description='some new TestPlatformSite')
        geo_index_obj = IonObject(OT.GeospatialBounds)
        geo_index_obj.geospatial_latitude_limit_north = 20.0
        geo_index_obj.geospatial_latitude_limit_south = 10.0
        geo_index_obj.geospatial_longitude_limit_east = 15.0
        geo_index_obj.geospatial_longitude_limit_west = 20.0
        platformsite_obj.constraint_list = [geo_index_obj]

        platformsite_id = self.OMS.create_platform_site(platformsite_obj)

        # now get the dp back to see if it was updated
        platformsite_obj = self.OMS.read_platform_site(platformsite_id)
        self.assertEquals('some new TestPlatformSite', platformsite_obj.description)
        self.assertAlmostEqual(15.0, platformsite_obj.geospatial_point_center.lat, places=1)


        #now adjust a few params
        platformsite_obj.description = 'some old TestPlatformSite'
        geo_index_obj = IonObject(OT.GeospatialBounds)
        geo_index_obj.geospatial_latitude_limit_north = 30.0
        geo_index_obj.geospatial_latitude_limit_south = 20.0
        platformsite_obj.constraint_list = [geo_index_obj]
        update_result = self.OMS.update_platform_site(platformsite_obj)

        # now get the dp back to see if it was updated
        platformsite_obj = self.OMS.read_platform_site(platformsite_id)
        self.assertEquals('some old TestPlatformSite', platformsite_obj.description)
        self.assertAlmostEqual(25.0, platformsite_obj.geospatial_point_center.lat, places=1)

        self.OMS.force_delete_platform_site(platformsite_id)
Exemplo n.º 3
0
    def test_midpoint(self):
        geospatial_bounds = IonObject("GeospatialBounds")
        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 10
        geospatial_bounds.geospatial_longitude_limit_west = -10

        # Basic test
        #TODO. do we really want calc_geospatial_point_center() to return string?
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)

        mid_point = GeoUtils.calc_geospatial_point_center(
            geospatial_bounds, distance=GeoUtils.DISTANCE_SHORTEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)

        mid_point = GeoUtils.calc_geospatial_point_center(
            geospatial_bounds, distance=GeoUtils.DISTANCE_LONGEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, -180)

        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 179
        geospatial_bounds.geospatial_longitude_limit_west = -179

        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)
        mid_point = GeoUtils.calc_geospatial_point_center(
            geospatial_bounds, distance=GeoUtils.DISTANCE_SHORTEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, -180.0)
        mid_point = GeoUtils.calc_geospatial_point_center(
            geospatial_bounds, distance=GeoUtils.DISTANCE_LONGEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)
        geospatial_bounds.geospatial_longitude_limit_east = -179
        geospatial_bounds.geospatial_longitude_limit_west = 179
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lon, -180.0)

        geospatial_bounds.geospatial_latitude_limit_north = 90
        geospatial_bounds.geospatial_latitude_limit_south = -90
        geospatial_bounds.geospatial_longitude_limit_east = 0
        geospatial_bounds.geospatial_longitude_limit_west = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)
        # MM: changed this: if the same values are given, we expect a point not the full globe
        #self.assertAlmostEqual(mid_point.lon, -180.0)

        geospatial_bounds.geospatial_latitude_limit_north = 40
        geospatial_bounds.geospatial_latitude_limit_south = 50
        geospatial_bounds.geospatial_longitude_limit_east = -75
        geospatial_bounds.geospatial_longitude_limit_west = -125
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 47.801397, 6)
        self.assertAlmostEqual(mid_point.lon, -102.328727, 6)
        mid_point = GeoUtils.calc_geospatial_point_center(
            geospatial_bounds, distance=GeoUtils.DISTANCE_SHORTEST)
        self.assertAlmostEqual(mid_point.lat, 47.801397, 6)
        self.assertAlmostEqual(mid_point.lon, -102.328727, 6)

        mid_point = GeoUtils.calc_geospatial_point_center(
            geospatial_bounds, distance=GeoUtils.DISTANCE_LONGEST)
        self.assertAlmostEqual(mid_point.lat, 47.801397, 6)
        self.assertAlmostEqual(mid_point.lon, 77.671273, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 165
        geospatial_bounds.geospatial_latitude_limit_north = 5
        geospatial_bounds.geospatial_longitude_limit_east = -170
        geospatial_bounds.geospatial_latitude_limit_south = 5
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 5.121583, 6)
        self.assertAlmostEqual(mid_point.lon, 177.5, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 65
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 165
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 115.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 10.0
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = -150
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 110.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = -150
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 170
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 10.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 30
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 10
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, -160.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 10
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 50
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 30.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = -170
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = -10
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, -90.0, 6)

        # Bad requests
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds,
                                                  distance="spacetime")
        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 10
        geospatial_bounds.geospatial_longitude_limit_west = -181
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)

        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 181
        geospatial_bounds.geospatial_longitude_limit_west = -10
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)

        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -91
        geospatial_bounds.geospatial_longitude_limit_east = 181
        geospatial_bounds.geospatial_longitude_limit_west = -10
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)

        geospatial_bounds.geospatial_latitude_limit_north = 91
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 0
        geospatial_bounds.geospatial_longitude_limit_west = -10
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)
Exemplo n.º 4
0
    def test_midpoint(self):
        geospatial_bounds = IonObject("GeospatialBounds")
        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 10
        geospatial_bounds.geospatial_longitude_limit_west = -10

        # Basic test
        #TODO. do we really want calc_geospatial_point_center() to return string?
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)

        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance=GeoUtils.DISTANCE_SHORTEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)

        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance=GeoUtils.DISTANCE_LONGEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, -180)


        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 179
        geospatial_bounds.geospatial_longitude_limit_west = -179

        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance=GeoUtils.DISTANCE_SHORTEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, -180.0)
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance=GeoUtils.DISTANCE_LONGEST)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)
        geospatial_bounds.geospatial_longitude_limit_east = -179
        geospatial_bounds.geospatial_longitude_limit_west = 179
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lon, -180.0)


        geospatial_bounds.geospatial_latitude_limit_north = 90
        geospatial_bounds.geospatial_latitude_limit_south = -90
        geospatial_bounds.geospatial_longitude_limit_east = 0
        geospatial_bounds.geospatial_longitude_limit_west = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0)
        self.assertAlmostEqual(mid_point.lon, 0.0)
        # MM: changed this: if the same values are given, we expect a point not the full globe
        #self.assertAlmostEqual(mid_point.lon, -180.0)

        geospatial_bounds.geospatial_latitude_limit_north = 40
        geospatial_bounds.geospatial_latitude_limit_south = 50
        geospatial_bounds.geospatial_longitude_limit_east = -75
        geospatial_bounds.geospatial_longitude_limit_west = -125
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 47.801397, 6)
        self.assertAlmostEqual(mid_point.lon, -102.328727, 6)
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance=GeoUtils.DISTANCE_SHORTEST)
        self.assertAlmostEqual(mid_point.lat, 47.801397, 6)
        self.assertAlmostEqual(mid_point.lon, -102.328727, 6)

        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance=GeoUtils.DISTANCE_LONGEST)
        self.assertAlmostEqual(mid_point.lat, 47.801397, 6)
        self.assertAlmostEqual(mid_point.lon, 77.671273, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 165
        geospatial_bounds.geospatial_latitude_limit_north = 5
        geospatial_bounds.geospatial_longitude_limit_east = -170
        geospatial_bounds.geospatial_latitude_limit_south = 5
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 5.121583, 6)
        self.assertAlmostEqual(mid_point.lon, 177.5, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 65
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 165
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 115.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 10.0
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = -150
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 110.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = -150
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 170
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 10.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 30
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 10
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, -160.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = 10
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = 50
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, 30.0, 6)

        geospatial_bounds.geospatial_longitude_limit_west = -170
        geospatial_bounds.geospatial_latitude_limit_north = 0
        geospatial_bounds.geospatial_longitude_limit_east = -10
        geospatial_bounds.geospatial_latitude_limit_south = 0
        mid_point = GeoUtils.calc_geospatial_point_center(geospatial_bounds)
        self.assertAlmostEqual(mid_point.lat, 0.0, 6)
        self.assertAlmostEqual(mid_point.lon, -90.0, 6)

        # Bad requests
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds, distance="spacetime")
        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 10
        geospatial_bounds.geospatial_longitude_limit_west = -181
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)

        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 181
        geospatial_bounds.geospatial_longitude_limit_west = -10
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)

        geospatial_bounds.geospatial_latitude_limit_north = 10
        geospatial_bounds.geospatial_latitude_limit_south = -91
        geospatial_bounds.geospatial_longitude_limit_east = 181
        geospatial_bounds.geospatial_longitude_limit_west = -10
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)

        geospatial_bounds.geospatial_latitude_limit_north = 91
        geospatial_bounds.geospatial_latitude_limit_south = -10
        geospatial_bounds.geospatial_longitude_limit_east = 0
        geospatial_bounds.geospatial_longitude_limit_west = -10
        with self.assertRaises(BadRequest):
            GeoUtils.calc_geospatial_point_center(geospatial_bounds)