123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- """
- Test of r3.gradient
- @author Anna Petrasova
- """
- from grass.gunittest.case import TestCase
- from grass.gunittest.main import test
- r3univar_test_grad_x = """
- n=600
- null_cells=0
- cells=600
- min=0.00902566899999995
- max=0.0993248405000001
- range=0.0902991715000001
- mean=0.0641879624599999
- mean_of_abs=0.0641879624599999
- stddev=0.0243482677445681
- variance=0.000592838142161176
- coeff_var=37.9327631091908
- sum=38.512777476
- """
- r3univar_test_grad_y = """
- n=600
- null_cells=0
- cells=600
- min=-0.0990409449999998
- max=-0.00774536350000012
- range=0.0912955814999997
- mean=-0.0563959154616667
- mean_of_abs=0.0563959154616667
- stddev=0.0244377519801364
- variance=0.000597203721842658
- coeff_var=-43.3324856597942
- sum=-33.837549277"""
- r3univar_test_grad_z = """
- n=600
- null_cells=0
- cells=600
- min=0.00643308800000026
- max=0.0967259644999999
- range=0.0902928764999997
- mean=0.0336457494116667
- mean_of_abs=0.0336457494116667
- stddev=0.0186882020765464
- variance=0.000349248896853835
- coeff_var=55.5440208743464
- sum=20.187449647
- """
- r3univar_test_nulls_grad_x = """
- n=107
- null_cells=18
- cells=125
- min=0
- max=10
- range=10
- mean=3.70093457943925
- mean_of_abs=3.70093457943925
- stddev=3.6357902977452
- variance=13.2189710891781
- coeff_var=98.2397883481656
- sum=396
- """
- r3univar_test_nulls_grad_y = """
- n=107
- null_cells=18
- cells=125
- min=-10
- max=0
- range=10
- mean=-3.70093457943925
- mean_of_abs=3.70093457943925
- stddev=3.6357902977452
- variance=13.2189710891781
- coeff_var=-98.2397883481656
- sum=-396
- """
- r3univar_test_nulls_grad_z = """
- n=107
- null_cells=18
- cells=125
- min=0
- max=10
- range=10
- mean=3.70093457943925
- mean_of_abs=3.70093457943925
- stddev=3.6357902977452
- variance=13.2189710891781
- coeff_var=98.2397883481656
- sum=396
- """
- class GradientTest(TestCase):
- @classmethod
- def setUpClass(cls):
- """Use temporary region settings"""
- cls.use_temp_region()
- cls.runModule("g.region", res3=10, n=100, s=0, w=0, e=120, b=0, t=50)
- cls.runModule("r3.in.ascii", input="data/test_map_1", output="test_map_1_ref")
- cls.runModule("g.region", res3=1, n=5, s=0, w=0, e=5, b=0, t=5)
- cls.runModule("r3.in.ascii", input="data/test_map_2", output="test_map_2_ref")
- @classmethod
- def tearDownClass(cls):
- """!Remove the temporary region"""
- cls.del_temp_region()
- cls.runModule(
- "g.remove",
- flags="f",
- type="raster_3d",
- name=",".join(
- [
- "test_map_1_ref",
- "test_map_2_ref",
- "test_grad_x",
- "test_grad_y",
- "test_grad_z",
- "test_null_grad_x",
- "test_null_grad_y",
- "test_null_grad_z",
- ]
- ),
- )
- def test_gradient_runs(self):
- self.runModule("g.region", res3=10, n=100, s=0, w=0, e=120, b=0, t=50)
- self.assertModuleFail(
- "r3.gradient",
- input="test_map_1_ref",
- output=["test_grad_x", "test_grad_y"],
- overwrite=True,
- )
- self.assertModule(
- "r3.gradient",
- input="test_map_1_ref",
- output=["test_grad_x", "test_grad_y", "test_grad_z"],
- overwrite=True,
- )
- def test_gradient(self):
- self.runModule("g.region", res3=10, n=100, s=0, w=0, e=120, b=0, t=50)
- self.runModule(
- "r3.gradient",
- input="test_map_1_ref",
- output=["test_grad_x", "test_grad_y", "test_grad_z"],
- overwrite=True,
- )
- self.assertRaster3dFitsUnivar(
- raster="test_grad_x", reference=r3univar_test_grad_x, precision=1e-8
- )
- self.assertRaster3dFitsUnivar(
- raster="test_grad_y", reference=r3univar_test_grad_y, precision=1e-8
- )
- self.assertRaster3dFitsUnivar(
- raster="test_grad_z", reference=r3univar_test_grad_z, precision=1e-8
- )
- def test_gradient_block(self):
- self.runModule("g.region", res3=10, n=100, s=0, w=0, e=120, b=0, t=50)
- self.assertModule(
- "r3.gradient",
- input="test_map_1_ref",
- blocksize=[200, 2, 50],
- output=["test_grad_x", "test_grad_y", "test_grad_z"],
- overwrite=True,
- )
- self.assertRaster3dFitsUnivar(
- raster="test_grad_x", reference=r3univar_test_grad_x, precision=1e-8
- )
- self.assertRaster3dFitsUnivar(
- raster="test_grad_y", reference=r3univar_test_grad_y, precision=1e-8
- )
- self.assertRaster3dFitsUnivar(
- raster="test_grad_z", reference=r3univar_test_grad_z, precision=1e-8
- )
- def test_gradient_nulls(self):
- self.runModule("g.region", res3=1, n=5, s=0, w=0, e=5, b=0, t=5)
- self.assertModule(
- "r3.gradient",
- input="test_map_2_ref",
- blocksize=[200, 2, 50],
- output=["test_null_grad_x", "test_null_grad_y", "test_null_grad_z"],
- )
- self.assertRaster3dFitsUnivar(
- raster="test_null_grad_x",
- reference=r3univar_test_nulls_grad_x,
- precision=1e-8,
- )
- self.assertRaster3dFitsUnivar(
- raster="test_null_grad_y",
- reference=r3univar_test_nulls_grad_y,
- precision=1e-8,
- )
- self.assertRaster3dFitsUnivar(
- raster="test_null_grad_z",
- reference=r3univar_test_nulls_grad_z,
- precision=1e-8,
- )
- if __name__ == "__main__":
- test()
|