def test_moran_vector(self): si = spatialinventory.VectorInventory( "N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', uncert='uncert_Gg', index='NUTS_ID', relative=True) mi = si.check_moran() self.assertEqual(round(mi, 3), 0.265)
def test_inventory_vector_accumulate(self): si = spatialinventory.VectorInventory( "N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', uncert='uncert_Gg', index='NUTS_ID', relative=True) si.accumulate() self.assertEqual(round(si.inv_sum, 3), round(np.nansum(si.inv_array), 3))
def test_inventory_vector_import_nouncert(self): si = spatialinventory.VectorInventory( "N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', index='NUTS_ID', relative=True) self.assertEqual(round(np.nanmin(si.inv_array), 3), 848.0) self.assertEqual(round(np.nanmax(si.inv_array), 3), 51690.0) self.assertEqual(str(np.nanmin(si.inv_uncert_array)), 'nan') self.assertEqual(str(np.nanmax(si.inv_uncert_array)), 'nan')
def test_remove_nan_vector(self): si = spatialinventory.VectorInventory( "N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', uncert='uncert_Gg', index='NUTS_ID', relative=True) w = si.get_weight_matrix(si.inv_array) nw, na, n = si.rm_nan_weight(w, si.inv_array) self.assertEqual(w.n, 27) self.assertEqual(nw.n, 22) self.assertEqual(n, 5)
def test_single_variogram_vector(self): si = spatialinventory.VectorInventory("N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', uncert='uncert_Gg', index='NUTS_ID', relative=True) v = variogram.Variogram() coords = si.get_coord() data = np.hstack((coords, si.inv_array.reshape((si.inv_array.size, 1)))) sv1 = v.semivvarh(data, 10, 8) sv2 = v.semivvarh(data, 20, 8) self.assertEqual(round(sv1, 3), 136703201.471) self.assertEqual(round(sv2, 3), 145110190.277)
def test_inventory_vector_propagate_cv(self): si = spatialinventory.VectorInventory( "N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', uncert='uncert_Gg', index='NUTS_ID', relative=True) si.get_cov_matrix() si.propagate(cv=True) self.assertEqual(round(si.inv_uncert, 3), 137877.173) self.assertGreater( si.inv_uncert, round(np.sqrt(np.nansum(map(np.square, si.inv_uncert_array))), 3))
def test_weight_vector_rook(self): si = spatialinventory.VectorInventory( "N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', index='NUTS_ID') # TODO: Queens' case histogram is not different to rook's case. Why? w = si.get_weight_matrix(si.inv_array, rook=True) self.assertEqual(w.n, 27) self.assertListEqual(w.neighbors['DE'], [u'BE', u'AT', u'CZ', u'CH', u'FR', u'NL', u'PL']) self.assertEqual([i for i in w.neighbors][4], 'DE') self.assertEqual(si.inv_array[4], 41628) self.assertEqual([i for i in w.neighbors][1], 'FR') self.assertEqual(si.inv_array[1], 51690)
def test_empirical_variogram_vector(self): si = spatialinventory.VectorInventory("N2O-Agrar-EU-2010", "Gg", "N2O inventory for EU-27" "emissions from agriculture", ("2010-01-01 00:00:00", "2011-01-01 00:00:00"), creator="Tester") si.import_inventory_as_vector(self.invvector, 'n2o_Gg', uncert='uncert_Gg', index='NUTS_ID', relative=True) 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), 142924111.258) self.assertEqual(round(np.min(svario[1]), 3), 16520.533)