def test_moran_nan(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory(self.nanrast) mi = si.check_moran() self.assertEqual(round(mi, 3), 0.848)
def test_inventory_raster_accumulate(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) self.assertEqual(round(si.accumulate(), 2), 1552.0)
def test_mtime_raster(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") time.sleep(1) si.import_inventory_as_raster(self.invin, self.uncertin) self.assertNotEqual(si.ctime, si.mtime)
def test_weight_raster_rook(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory(self.maxrast) w = si.get_weight_matrix(si.inv_array, rook=True) self.assertEqual(w.n, 100) self.assertListEqual(w.neighbors[0], [10, 1]) self.assertListEqual(w.weights[0], [1.0, 1.0])
def test_plot_variogram_raster(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) sv, svm, c0 = si.get_variogram(10, 80, True) self.assertEqual(round(np.max(sv[1]), 3), 0.245) self.assertEqual(round(np.min(si.inv_sv[1]), 3), 0.168)
def test_inventory_raster_propagate_cv(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) si.get_cov_matrix() si.propagate(cv=True) self.assertEqual(round(si.inv_uncert, 2), 932.65)
def test_get_cov_matrix_raster(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) si.get_cov_matrix() self.assertEqual(round(np.max(si.inv_covmat), 3), 0.34) self.assertEqual(round(np.min(si.inv_covmat), 3), 0.) self.assertEqual(round(si.inv_c0, 3), 0.34)
def test_remove_nan_raster(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory(self.nanrast) w = si.get_weight_matrix(si.inv_array) nw, na, n = si.rm_nan_weight(w, si.inv_array) self.assertEqual(w.n, 110) self.assertEqual(nw.n, 100) self.assertEqual(n, 10)
def test_inventory_raster_import(self): si = spatialinventory.RasterInventory( "N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) self.assertEqual(si.inv_array.shape, (44, 55)) self.assertEqual(si.inv_uncert_array.shape, (44, 55)) self.assertEqual(round(np.nanmin(si.inv_array), 3), 0.071) self.assertEqual(round(np.nanmax(si.inv_array), 3), 1.728) self.assertEqual(round(np.nanmin(si.inv_uncert_array), 3), 0.269) self.assertEqual(round(np.nanmax(si.inv_uncert_array), 3), 1.387)
def test_single_variogram_raster(self): si = spatialinventory.RasterInventory("N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) v = variogram.Variogram() coords = si.get_coord() data = np.hstack((coords, si.inv_array.reshape((si.inv_array.size, 1)))) sv1 = v.semivvarh(data, 5, 5) sv2 = v.semivvarh(data, 50, 5) self.assertEqual(round(sv1, 3), 0.168) self.assertEqual(round(sv2, 3), 0.217)
def test_plot_variogram_raster(self): si = spatialinventory.RasterInventory("N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") v = variogram.Variogram() si.import_inventory_as_raster(self.invin, self.uncertin) sv, svm, c, c0 = si.get_variogram(10, 80, True) si.plot_variogram("/tmp/sauventory_test_spherical_vario.png") sv, svm, c, c0 = si.get_variogram(10, 80, True, type=v.gaussian) si.plot_variogram("/tmp/sauventory_test_gaussian_vario.png") sv, svm, c, c0 = si.get_variogram(10, 80, True, type=v.exponential) si.plot_variogram("/tmp/sauventory_test_exponential_vario.png") self.assertEqual(round(np.max(sv[1]), 3), 0.245) self.assertEqual(round(np.min(si.inv_sv[1]), 3), 0.168)
def test_empirical_variogram_raster(self): si = spatialinventory.RasterInventory("N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) v = variogram.Variogram() coords = si.get_coord() data = np.hstack((coords, si.inv_array.reshape((si.inv_array.size, 1)))) # Define variogram parameters bw = 10 # Bandwidth hs = np.arange(0, 80, bw) # Distance intervals svario = v.semivvar(data, hs, bw) self.assertEqual(round(np.max(svario[1]), 3), 0.245) self.assertEqual(round(np.min(svario[1]), 3), 0.168)
def test_gaussian_variogram_raster(self): si = spatialinventory.RasterInventory("N2O-Agrar-2012", "g/m2", "Example N2O inventory of " "organic soils", ("2012-01-01 00:00:00", "2013-01-01 00:00:00"), creator="Tester") si.import_inventory_as_raster(self.invin, self.uncertin) v = variogram.Variogram() coords = si.get_coord() data = np.hstack((coords, si.inv_array.reshape((si.inv_array.size, 1)))) # Define variogram parameters bw = 10 # Bandwidth hs = np.arange(0, 80, bw) # Distance intervals # svario = v.semivvar(data, hs, bw) svmodel, svario, c, c0 = v.cvmodel(data, hs, bw, model=v.gaussian) self.assertEqual(round(svmodel(svario[0][0]), 3), 0.) self.assertEqual(round(svmodel(svario[0][7]), 3), 0.340)