Esempio n. 1
0
    def test_from_vector_file(self):
        """Test from_vector_file and values_from_vector_files"""
        shp_file = shapereader.natural_earth(resolution='110m',
                                             category='cultural',
                                             name='populated_places_simple')
        centr = Centroids.from_vector_file(shp_file)
        inten = centr.values_from_vector_files(
            [shp_file], val_names=['pop_min', 'pop_max'])

        self.assertTrue(u_coord.equal_crs(centr.geometry.crs, u_coord.NE_EPSG))
        self.assertEqual(centr.geometry.size, centr.lat.size)
        self.assertTrue(u_coord.equal_crs(centr.geometry.crs, u_coord.NE_EPSG))
        self.assertAlmostEqual(centr.lon[0], 12.453386544971766)
        self.assertAlmostEqual(centr.lon[-1], 114.18306345846304)
        self.assertAlmostEqual(centr.lat[0], 41.903282179960115)
        self.assertAlmostEqual(centr.lat[-1], 22.30692675357551)

        self.assertEqual(inten.shape, (2, 243))
        # population min
        self.assertEqual(inten[0, 0], 832)
        self.assertEqual(inten[0, -1], 4551579)
        # population max
        self.assertEqual(inten[1, 0], 832)
        self.assertEqual(inten[1, -1], 7206000)

        # Test reading values from file with incompatible geometry
        shp_file = shapereader.natural_earth(resolution='10m',
                                             category='cultural',
                                             name='populated_places_simple')
        with self.assertRaises(ValueError):
            centr.values_from_vector_files(shp_file,
                                           val_names=['pop_min', 'pop_max'])