test_r_import.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #!/usr/bin/env python3
  2. from grass.gunittest.case import TestCase
  3. from grass.gunittest.main import test
  4. import grass.script as gs
  5. class TestRImportRegion(TestCase):
  6. imported = "test_r_import_imported"
  7. @classmethod
  8. def setUpClass(cls):
  9. cls.runModule("g.region", raster="elevation")
  10. def tearDown(cls):
  11. """Remove imported map after each test method"""
  12. cls.runModule("g.remove", flags="f", type="raster", name=cls.imported)
  13. def test_import_estimate(self):
  14. """Test e flag"""
  15. self.assertModule(
  16. "r.import",
  17. input="data/data2.asc",
  18. output=self.imported,
  19. resample="nearest",
  20. flags="e",
  21. )
  22. self.assertRasterDoesNotExist(name=self.imported)
  23. def test_import_same_proj_tif(self):
  24. """Import tif in same proj, default params"""
  25. self.assertModule(
  26. "r.import",
  27. input="data/data1.tif",
  28. output=self.imported,
  29. resample="bilinear",
  30. )
  31. reference = dict(
  32. north=223490,
  33. south=223390,
  34. east=636820,
  35. west=636710,
  36. nsres=10,
  37. ewres=10,
  38. datatype="FCELL",
  39. )
  40. self.assertRasterFitsInfo(
  41. raster=self.imported, reference=reference, precision=1e-6
  42. )
  43. def test_import_asc_custom_res(self):
  44. """Import ASC in different projection, with specified resolution"""
  45. self.assertModule(
  46. "r.import",
  47. input="data/data2.asc",
  48. output=self.imported,
  49. resample="nearest",
  50. resolution="value",
  51. resolution_value=30,
  52. )
  53. reference = dict(rows=3, cols=4, nsres=30, ewres=30, datatype="CELL")
  54. self.assertRasterFitsInfo(
  55. raster=self.imported, reference=reference, precision=1.1
  56. )
  57. def test_import_asc_region_extent(self):
  58. """Import ASC in different projection in specified region"""
  59. self.runModule("g.region", raster="elevation", n=223655, s=223600)
  60. self.assertModule(
  61. "r.import",
  62. input="data/data2.asc",
  63. output=self.imported,
  64. resample="nearest",
  65. extent="region",
  66. resolution="region",
  67. )
  68. reference = dict(north=223655, south=223600)
  69. self.assertRasterFitsInfo(
  70. raster=self.imported, reference=reference, precision=1e-6
  71. )
  72. def test_import_use_temp_region(self):
  73. """Import in specified region with use_temp_region activated"""
  74. self.runModule("g.region", raster="elevation", n=223660, s=223600)
  75. gs.use_temp_region()
  76. self.runModule("g.region", raster="elevation", n=223630, s=223600)
  77. self.assertModule(
  78. "r.import",
  79. input="data/data2.asc",
  80. output=self.imported,
  81. resample="nearest",
  82. extent="region",
  83. resolution="region",
  84. )
  85. reference = dict(north=223630, south=223600, nsres=10, ewres=10)
  86. self.assertRasterFitsInfo(
  87. raster=self.imported, reference=reference, precision=1e-6
  88. )
  89. self.runModule("g.region", raster="elevation", s=223390, n=223450)
  90. self.assertModule(
  91. "r.import",
  92. input="data/data1.tif",
  93. output=self.imported,
  94. resample="bilinear",
  95. extent="region",
  96. overwrite=True,
  97. )
  98. reference = dict(south=223390, north=223450, nsres=10, ewres=10)
  99. self.assertRasterFitsInfo(
  100. raster=self.imported, reference=reference, precision=1e-6
  101. )
  102. gs.del_temp_region()
  103. self.assertModule(
  104. "r.import",
  105. input="data/data2.asc",
  106. output=self.imported,
  107. resample="nearest",
  108. extent="region",
  109. resolution="region",
  110. overwrite=True,
  111. )
  112. reference = dict(north=223660, south=223600, nsres=10, ewres=10)
  113. self.assertRasterFitsInfo(
  114. raster=self.imported, reference=reference, precision=1e-6
  115. )
  116. if __name__ == "__main__":
  117. test()