def test_new(self): if not _rave.isXmlSupported(): return import _projectionregistry obj = _projectionregistry.new() self.assertNotEqual(-1, str(type(obj)).find("ProjectionRegistryCore"))
def test_write(self): if not _rave.isXmlSupported(): return import _arearegistry registry = _arearegistry.load(self.AREA_FIXTURE) a = _area.new() a.id = "nisse" a.description = "nisses test" a.xsize = 111 a.ysize = 222 a.xscale = 1000.0 a.yscale = 2000.0 a.extent = (-738816.513333, -3995515.596160, 955183.48666699999, -1787515.59616) a.pcsid = "laea20e60n" registry.add(a) registry.write(self.TEMPORARY_FILE) tree = ElementTree.parse(self.TEMPORARY_FILE) areas = tree.findall("area") self.assertEqual(3, len(areas)) self.assertEqual("nisse", areas[2].get('id')) args = areas[2].findall("areadef/arg") self.assertEqual("laea20e60n", self.findArgElements(args, "id", "pcs").text.strip()) self.assertEqual(None, self.findArgElements(args, "id", "pcs").get("type")) self.assertEqual( "111", self.findArgElements(args, "id", "xsize").text.strip()) self.assertEqual("int", self.findArgElements(args, "id", "xsize").get("type")) self.assertEqual( "222", self.findArgElements(args, "id", "ysize").text.strip()) self.assertEqual("int", self.findArgElements(args, "id", "ysize").get("type")) self.assertEqual( "1000.0", self.findArgElements(args, "id", "xscale").text.strip()[:6]) self.assertEqual( "float", self.findArgElements(args, "id", "xscale").get("type")) self.assertEqual( "2000.0", self.findArgElements(args, "id", "yscale").text.strip()[:6]) self.assertEqual( "float", self.findArgElements(args, "id", "yscale").get("type")) extent = self.findArgElements(args, "id", "extent").text.strip().split(",") self.assertEqual("-738816.5", extent[0].strip()[:9]) self.assertEqual("-3995515.5", extent[1].strip()[:10]) self.assertEqual("955183.4", extent[2].strip()[:8]) self.assertEqual("-1787515.5", extent[3].strip()[:10]) self.assertEqual( "sequence", self.findArgElements(args, "id", "extent").get("type"))
def test_removeByName(self): if not _rave.isXmlSupported(): return import _arearegistry registry = _arearegistry.load(self.AREA_FIXTURE) registry.removeByName("nrd2km_laea20e60n") self.assertEqual(1, registry.size()) self.assertEqual("nrd2km", registry.get(0).id)
def testIsXMlSupported(self): modulebuilt = False try: import _projectionregistry import _arearegistry modulebuilt = True except: pass self.assertEqual(modulebuilt, _rave.isXmlSupported())
def test_test_c_loading(self): if not _rave.isXmlSupported(): return registry = area_registry.area_registry(self.AREA_FIXTURE, self.PROJ_FIXTURE) nrd2kmarea = registry.getarea("nrd2km") self.assertNotEqual(-1, str(type(nrd2kmarea)).find("AreaCore")) self.assertEqual("nrd2km", nrd2kmarea.id) self.assertEqual(848, nrd2kmarea.xsize)
def test_load(self): if not _rave.isXmlSupported(): return import _arearegistry registry = _arearegistry.load(self.AREA_FIXTURE) self.assertTrue(registry != None) self.assertEqual(2, registry.size()) self.assertEqual("nrd2km", registry.get(0).id) self.assertEqual("nrd2km_laea20e60n", registry.get(1).id)
def testWrongAttInput(self): if not _rave.isXmlSupported(): return import _radvol, rave_radvol_realtime vertical_profile = _raveio.open(self.BADINPUT).object rpars = rave_radvol_realtime.get_options(vertical_profile) try: status = _radvol.attCorrection(vertical_profile, rpars) except AttributeError: self.assertTrue(True)
def reload(self): self._registry = {} if not _rave.isXmlSupported(): return import _arearegistry, _projectionregistry projreg = _projectionregistry.load(self._projregistryconfig) areareg = _arearegistry.load(self._arearegistryconfig, projreg) len = areareg.size() for i in range(len): a = areareg.get(i) self._registry[a.id] = a
def _loadarea(self, areaid): if not _rave.isXmlSupported(): return import _arearegistry, _projectionregistry projreg = _projectionregistry.load(self._projregistryconfig) areareg = _arearegistry.load(self._arearegistryconfig, projreg) try: foundarea = areareg.getByName(areaid) self._registry[foundarea.id] = foundarea except IndexError: pass
def test_add(self): if not _rave.isXmlSupported(): return import _projectionregistry registry = _projectionregistry.load(self.FIXTURE) newproj = _projection.new("testid", "something", "+proj=latlong +ellps=WGS84 +datum=WGS84") registry.add(newproj) self.assertEqual(6, registry.size()) self.assertEqual("testid", registry.getByName("testid").id) self.assertEqual("something", registry.getByName("testid").description)
def test_remove(self): if not _rave.isXmlSupported(): return import _projectionregistry registry = _projectionregistry.load(self.FIXTURE) registry.remove(2) self.assertEqual(4, registry.size()) try: registry.getByName("ps14e60n") self.fail("Expected IndexError") except IndexError: pass
def test_getByName(self): if not _rave.isXmlSupported(): return import _projectionregistry registry = _projectionregistry.load(self.FIXTURE) self.assertTrue(registry != None) self.assertEqual("llwgs84", registry.getByName("llwgs84").id) self.assertEqual("rack", registry.getByName("rack").id) self.assertEqual("ps14e60n", registry.getByName("ps14e60n").id) self.assertEqual("laea20e60n", registry.getByName("laea20e60n").id) self.assertEqual("rot10w30s", registry.getByName("rot10w30s").id)
def test_load(self): if not _rave.isXmlSupported(): return import _projectionregistry registry = _projectionregistry.load(self.FIXTURE) self.assertTrue(registry != None) self.assertEqual(5, registry.size()) self.assertEqual("llwgs84", registry.get(0).id) self.assertEqual("rack", registry.get(1).id) self.assertEqual("ps14e60n", registry.get(2).id) self.assertEqual("laea20e60n", registry.get(3).id) self.assertEqual("rot10w30s", registry.get(4).id)
def test_add(self): if not _rave.isXmlSupported(): return import _arearegistry registry = _arearegistry.load(self.AREA_FIXTURE) a = _area.new() a.id = "nisse" a.xsize = 111 a.ysize = 222 a.xscale = 1000.0 a.yscale = 2000.0 a.extent = (-738816.513333, -3995515.596160, 955183.48666699999, -1787515.59616) a.pcsid = "laea20e60n" registry.add(a) self.assertEqual(3, registry.size()) self.assertEqual("nisse", registry.getByName("nisse").id)
def test_write_2(self): if not _rave.isXmlSupported(): return import _projectionregistry registry = _projectionregistry.load(self.FIXTURE) newproj = _projection.new("testid", "something", "+proj=latlong +ellps=WGS84 +datum=WGS84") registry.add(newproj) registry.write(self.TEMPORARY_FILE) nreg = _projectionregistry.load(self.TEMPORARY_FILE) self.assertEqual(6, nreg.size()) self.assertEqual("testid", nreg.get(5).id) self.assertEqual("something", nreg.get(5).description) self.assertEqual("+proj=latlong +ellps=WGS84 +datum=WGS84", nreg.get(5).definition)
def test_load_laea(self): if not _rave.isXmlSupported(): return import _arearegistry registry = _arearegistry.load(self.AREA_FIXTURE) self.assertTrue(registry != None) area = registry.get(1) self.assertEqual("laea20e60n", area.pcsid) self.assertEqual(None, area.projection) self.assertEqual(987, area.xsize) self.assertEqual(543, area.ysize) self.assertAlmostEqual(2000.0, area.xscale, 4) self.assertAlmostEqual(1000.0, area.yscale, 4) self.assertAlmostEqual(-738816.513333, area.extent[0], 4) self.assertAlmostEqual(-3995515.596160, area.extent[1], 4) self.assertAlmostEqual(955183.48666699999, area.extent[2], 4) self.assertAlmostEqual(-1787515.59616, area.extent[3], 4)
def test_write(self): if not _rave.isXmlSupported(): return import _projectionregistry registry = _projectionregistry.load(self.FIXTURE) newproj = _projection.new("testid", "something", "+proj=latlong +ellps=WGS84 +datum=WGS84") registry.add(newproj) registry.write(self.TEMPORARY_FILE) tree = ElementTree.parse(self.TEMPORARY_FILE) projs = tree.findall("projection") self.assertEqual(6, len(projs)) self.assertEqual("testid", projs[5].get('id')) self.assertEqual("something", projs[5].find("description").text.strip()) self.assertEqual("+proj=latlong +ellps=WGS84 +datum=WGS84", projs[5].find("projdef").text.strip())
def test_load_laea_withprojregistry(self): if not _rave.isXmlSupported(): return import _arearegistry import _projectionregistry projregistry = _projectionregistry.load(self.PROJ_FIXTURE) registry = _arearegistry.load(self.AREA_FIXTURE, projregistry) self.assertTrue(registry != None) area = registry.get(1) self.assertEqual("laea20e60n", area.pcsid) self.assertTrue(area.projection != None) self.assertEqual("Nordic, all radars, 2 km, laea", area.description) self.assertEqual(987, area.xsize) self.assertEqual(543, area.ysize) self.assertAlmostEqual(2000.0, area.xscale, 4) self.assertAlmostEqual(1000.0, area.yscale, 4) self.assertAlmostEqual(-738816.513333, area.extent[0], 4) self.assertAlmostEqual(-3995515.596160, area.extent[1], 4) self.assertAlmostEqual(955183.48666699999, area.extent[2], 4) self.assertAlmostEqual(-1787515.59616, area.extent[3], 4)
def testRadvolAttCorrection(self): if not _rave.isXmlSupported(): return import _radvol, rave_radvol_realtime pvol = _raveio.open(self.FIXATT).object rpars = rave_radvol_realtime.get_options(pvol) status = _radvol.attCorrection(pvol, rpars) self.assertTrue(status) ref = _raveio.open(self.FIXATTC).object myscan = pvol.getScan(0) refscan = ref.getScan(0) qf, task_args = None, None try: qf = myscan.getQualityFieldByHowTask("pl.imgw.radvolqc.att") task_args = qf.getAttribute("how/task_args") except: pass self.assertNotEqual(qf, None) self.assertEqual( task_args, "ATT: ATT_QI1=1.0, ATT_QI0=5.0, ATT_QIUn=0.9, ATT_a= 0.0044, ATT_b= 1.17, ATT_ZRa=200.0, ATT_ZRb= 1.6, ATT_Refl= 4.0, ATT_Last= 1.0, ATT_Sum= 5.0" ) self.assertFalse(different(myscan, refscan))
def testRadvolNmetRemoval(self): if not _rave.isXmlSupported(): return import _radvol, rave_radvol_realtime pvol = _raveio.open(self.FIXNMET).object rpars = rave_radvol_realtime.get_options(pvol) status = _radvol.nmetRemoval(pvol, rpars) self.assertTrue(status) ref = _raveio.open(self.FIXNMETC).object myscan = pvol.getScan(0) refscan = ref.getScan(0) qf, task_args = None, None try: qf = myscan.getQualityFieldByHowTask("pl.imgw.radvolqc.nmet") task_args = qf.getAttribute("how/task_args") except: pass self.assertNotEqual(qf, None) self.assertEqual( task_args, "NMET: NMET_QI=0.75, NMET_QIUn=0.30, NMET_AReflMin=-15.00, NMET_AReflMax= 5.00, NMET_AAltMin= 1.0, NMET_AAltMax= 3.0, NMET_ADet=0.30, NMET_BAlt=20.0" ) self.assertFalse(different(myscan, refscan))
def testRadvolBroadAssessment(self): if not _rave.isXmlSupported(): return import _radvol, rave_radvol_realtime pvol = _raveio.open(self.FIXBROAD).object rpars = rave_radvol_realtime.get_options(pvol) status = _radvol.broadAssessment(pvol, rpars) self.assertTrue(status) ref = _raveio.open(self.FIXBROADC).object myscan = pvol.getScan(0) refscan = ref.getScan(0) qf, task_args = None, None try: qf = myscan.getQualityFieldByHowTask("pl.imgw.radvolqc.broad") task_args = qf.getAttribute("how/task_args") except: pass self.assertNotEqual(qf, None) self.assertEqual( task_args, "BROAD: BROAD_LhQI1=1.1, BROAD_LhQI0=2.5, BROAD_LvQI1=1.6, BROAD_LvQI0=4.3, BROAD_Pulse=0.30" ) self.assertFalse(different(myscan, refscan))
def testRadvolSpeckRemoval(self): if not _rave.isXmlSupported(): return import _radvol, rave_radvol_realtime pvol = _raveio.open(self.FIXSPECK).object rpars = rave_radvol_realtime.get_options(pvol) status = _radvol.speckRemoval(pvol, rpars) self.assertTrue(status) ref = _raveio.open(self.FIXSPECKC).object myscan = pvol.getScan(0) refscan = ref.getScan(0) qf, task_args = None, None try: qf = myscan.getQualityFieldByHowTask("pl.imgw.radvolqc.speck") task_args = qf.getAttribute("how/task_args") except: pass self.assertNotEqual(qf, None) self.assertEqual( task_args, "SPECK: SPECK_QI=0.9, SPECK_QIUn=0.5, SPECK_AGrid=1, SPECK_ANum=2, SPECK_AStep=1, SPECK_BGrid=1, SPECK_BNum=2, SPECK_BStep=2" ) self.assertFalse(different(myscan, refscan))
def testRadvolSpikeRemoval(self): if not _rave.isXmlSupported(): return import _radvol, rave_radvol_realtime pvol = _raveio.open(self.FIXSPIKE).object rpars = rave_radvol_realtime.get_options(pvol) status = _radvol.spikeRemoval(pvol, rpars) self.assertTrue(status) ref = _raveio.open(self.FIXSPIKEC).object myscan = pvol.getScan(0) refscan = ref.getScan(0) qf, task_args = None, None try: qf = myscan.getQualityFieldByHowTask("pl.imgw.radvolqc.spike") task_args = qf.getAttribute("how/task_args") except: pass self.assertNotEqual(qf, None) self.assertEqual( task_args, "SPIKE: SPIKE_QI=0.5, SPIKE_QIUn=0.3, SPIKE_ACovFrac=0.9, SPIKE_AAzim=3, SPIKE_AVarAzim= 1000.0, SPIKE_ABeam=15, SPIKE_AVarBeam=5.0, SPIKE_AFrac=0.45, SPIKE_BDiff=10.0, SPIKE_BAzim=3, SPIKE_BFrac=0.25" ) self.assertFalse(different(myscan, refscan))
def test_write_2(self): if not _rave.isXmlSupported(): return import _arearegistry registry = _arearegistry.load(self.AREA_FIXTURE) a = _area.new() a.id = "nisse" a.description = "nisses test" a.xsize = 111 a.ysize = 222 a.xscale = 1000.0 a.yscale = 2000.0 a.extent = (-738816.513333, -3995515.596160, 955183.48666699999, -1787515.59616) a.pcsid = "laea20e60n" registry.add(a) registry.write(self.TEMPORARY_FILE) newreg = _arearegistry.load(self.TEMPORARY_FILE) self.assertEqual(3, newreg.size()) self.assertEqual("nrd2km", newreg.get(0).id) self.assertEqual("nrd2km_laea20e60n", newreg.get(1).id) self.assertEqual("nisse", newreg.get(2).id)