Beispiel #1
0
    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)
Beispiel #2
0
    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))
Beispiel #3
0
    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')
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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))
Beispiel #7
0
    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)
Beispiel #8
0
    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)