#!/usr/bin/env python3 from grass.gunittest.case import TestCase from grass.gunittest.main import test import grass.script as gs class TestRImportRegion(TestCase): imported = "test_r_import_imported" @classmethod def setUpClass(cls): cls.runModule("g.region", raster="elevation") def tearDown(cls): """Remove imported map after each test method""" cls.runModule("g.remove", flags="f", type="raster", name=cls.imported) def test_import_estimate(self): """Test e flag""" self.assertModule( "r.import", input="data/data2.asc", output=self.imported, resample="nearest", flags="e", ) self.assertRasterDoesNotExist(name=self.imported) def test_import_same_proj_tif(self): """Import tif in same proj, default params""" self.assertModule( "r.import", input="data/data1.tif", output=self.imported, resample="bilinear", ) reference = dict( north=223490, south=223390, east=636820, west=636710, nsres=10, ewres=10, datatype="FCELL", ) self.assertRasterFitsInfo( raster=self.imported, reference=reference, precision=1e-6 ) def test_import_asc_custom_res(self): """Import ASC in different projection, with specified resolution""" self.assertModule( "r.import", input="data/data2.asc", output=self.imported, resample="nearest", resolution="value", resolution_value=30, ) reference = dict(rows=3, cols=4, nsres=30, ewres=30, datatype="CELL") self.assertRasterFitsInfo( raster=self.imported, reference=reference, precision=1.1 ) def test_import_asc_region_extent(self): """Import ASC in different projection in specified region""" self.runModule("g.region", raster="elevation", n=223655, s=223600) self.assertModule( "r.import", input="data/data2.asc", output=self.imported, resample="nearest", extent="region", resolution="region", ) reference = dict(north=223655, south=223600) self.assertRasterFitsInfo( raster=self.imported, reference=reference, precision=1e-6 ) def test_import_use_temp_region(self): """Import in specified region with use_temp_region activated""" self.runModule("g.region", raster="elevation", n=223660, s=223600) gs.use_temp_region() self.runModule("g.region", raster="elevation", n=223630, s=223600) self.assertModule( "r.import", input="data/data2.asc", output=self.imported, resample="nearest", extent="region", resolution="region", ) reference = dict(north=223630, south=223600, nsres=10, ewres=10) self.assertRasterFitsInfo( raster=self.imported, reference=reference, precision=1e-6 ) self.runModule("g.region", raster="elevation", s=223390, n=223450) self.assertModule( "r.import", input="data/data1.tif", output=self.imported, resample="bilinear", extent="region", overwrite=True, ) reference = dict(south=223390, north=223450, nsres=10, ewres=10) self.assertRasterFitsInfo( raster=self.imported, reference=reference, precision=1e-6 ) gs.del_temp_region() self.assertModule( "r.import", input="data/data2.asc", output=self.imported, resample="nearest", extent="region", resolution="region", overwrite=True, ) reference = dict(north=223660, south=223600, nsres=10, ewres=10) self.assertRasterFitsInfo( raster=self.imported, reference=reference, precision=1e-6 ) if __name__ == "__main__": test()