当前位置: 首页>>代码示例>>Python>>正文


Python Polygon.to_shapefile方法代码示例

本文整理汇总了Python中karta.vector.geometry.Polygon.to_shapefile方法的典型用法代码示例。如果您正苦于以下问题:Python Polygon.to_shapefile方法的具体用法?Python Polygon.to_shapefile怎么用?Python Polygon.to_shapefile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在karta.vector.geometry.Polygon的用法示例。


在下文中一共展示了Polygon.to_shapefile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TestShapefile

# 需要导入模块: from karta.vector.geometry import Polygon [as 别名]
# 或者: from karta.vector.geometry.Polygon import to_shapefile [as 别名]
class TestShapefile(unittest.TestCase):

    def setUp(self):
        self.points = [Point((1, 1), data={"species": "T. officianale"}, crs=LonLatWGS84),
                       Point((3, 1), data={"species": "C. tectorum"}, crs=LonLatWGS84),
                       Point((4, 3), data={"species": "M. alba"}, crs=LonLatWGS84),
                       Point((2, 2), data={"species": "V. cracca"}, crs=LonLatWGS84)]

        self.multipoint = Multipoint([(1,1), (3,1), (4,3), (2,2)],
                                     data={"species": ["T. officianale", "C. tectorum",
                                                       "M. alba", "V. cracca"]},
                                     crs=LonLatWGS84)

        self.line = Line([(1.0,5.0),(5.0,5.0),(5.0,1.0),(3.0,3.0),(1.0,1.0)],
                         properties={"geom_id": 27, "name": "test line"},
                         crs=LonLatWGS84)

        self.polygon = Polygon([(1.0,5.0),(5.0,5.0),(5.0,1.0),(3.0,3.0),(1.0,1.0)],
                               crs=LonLatWGS84)

        self.points3 = [Point((1, 1, 0), crs=LonLatWGS84),
                        Point((3, 1, 3), crs=LonLatWGS84),
                        Point((4, 3, 2), crs=LonLatWGS84),
                        Point((2, 2, -1), crs=LonLatWGS84)]

        self.line3 = Line([(1,5,2),(5,5,-1),(5,1,3),(3,3,1),(1,1,0)], crs=LonLatWGS84)

        self.polygon3 = Polygon([(1,5,2),(5,5,-1),(5,1,3),(3,3,1),(1,1,0)], crs=LonLatWGS84)

        testfiles = ["points.shp", "line.shp", "polygon.shp"]
        if any(not exists(join(TMPDATA, "shapefiles/", fnm)) for fnm in testfiles):
            self.saveTestData()
        return

    def saveTestData(self):
        testfiles = [(self.multipoint, "points"),
                     (self.line, "line"),
                     (self.polygon, "polygon")]
        os.makedirs(os.path.join(TMPDATA, "shapefiles"))
        for (geom, fnm) in testfiles:
            geom.to_shapefile(os.path.join(TMPDATA, "shapefiles", fnm))
        return

    def assertGeomEqual(self, this, that):
        self.assertTrue(np.all(this.get_vertices() == that.get_vertices()))
        try:
            self.assertEqual(this.crs.get_proj4(), that.crs.get_proj4())
        except AttributeError:
            print("warning: crs equality not established")
        return

    def test_writepoint(self):
        point = self.points[0]
        point.to_shapefile(os.path.join(TESTDIR, "data/point"))
        for fnm in ("point.shx", "point.shx", "point.dbf", "point.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writepoints(self):
        points = self.points
        shp.write_shapefile(os.path.join(TESTDIR, "data/points.shp"), *points)
        for fnm in ("points.shx", "points.shx", "points.dbf", "points.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writemultipoint(self):
        mp = Multipoint(self.points)
        mp.to_shapefile(os.path.join(TESTDIR, "data/multipoint"))
        for fnm in ("multipoint.shx", "multipoint.shx", "multipoint.dbf", "multipoint.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writeline(self):
        self.line.to_shapefile(os.path.join(TESTDIR, "data/line"))
        for fnm in ("line.shx", "line.shx", "line.dbf", "line.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writepoly(self):
        self.polygon.to_shapefile(os.path.join(TESTDIR, "data/polygon"))
        for fnm in ("polygon.shx", "polygon.shx", "polygon.dbf", "polygon.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writepoints3(self):
        mp = Multipoint(self.points3)
        mp.to_shapefile(os.path.join(TESTDIR, "data/multipointz"))
        for fnm in ("multipointz.shx", "multipointz.shx", "multipointz.dbf", "multipointz.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writeline3(self):
        self.line3.to_shapefile(os.path.join(TESTDIR, "data/linez"))
        for fnm in ("linez.shx", "linez.shx", "linez.dbf", "linez.prj"):
            self.assertTrue(os.path.isfile(os.path.join(TESTDIR, "data", fnm)))
        return

    def test_writepoly3(self):
        self.polygon3.to_shapefile(os.path.join(TESTDIR, "data/polygonz"))
        for fnm in ("polygonz.shx", "polygonz.shx", "polygonz.dbf", "polygonz.prj"):
#.........这里部分代码省略.........
开发者ID:acrosby,项目名称:karta,代码行数:103,代码来源:shapefile_tests.py

示例2: TestShapefile

# 需要导入模块: from karta.vector.geometry import Polygon [as 别名]
# 或者: from karta.vector.geometry.Polygon import to_shapefile [as 别名]
class TestShapefile(unittest.TestCase):

    def setUp(self):
        self.points = [Point((1, 1), data={"species": "T. officianale"}, crs=LonLatWGS84),
                       Point((3, 1), data={"species": "C. tectorum"}, crs=LonLatWGS84),
                       Point((4, 3), data={"species": "M. alba"}, crs=LonLatWGS84),
                       Point((2, 2), data={"species": "V. cracca"}, crs=LonLatWGS84)]

        self.multipoint = Multipoint([(1,1), (3,1), (4,3), (2,2)],
                                     data={"species": ["T. officianale", "C. tectorum",
                                                       "M. alba", "V. cracca"]},
                                     crs=LonLatWGS84)

        self.line = Line([(1.0,5.0),(5.0,5.0),(5.0,1.0),(3.0,3.0),(1.0,1.0)],
                         crs=LonLatWGS84)

        self.polygon = Polygon([(1.0,5.0),(5.0,5.0),(5.0,1.0),(3.0,3.0),(1.0,1.0)],
                               crs=LonLatWGS84)

        self.points3 = [Point((1, 1, 0), crs=LonLatWGS84),
                       Point((3, 1, 3), crs=LonLatWGS84),
                       Point((4, 3, 2), crs=LonLatWGS84),
                       Point((2, 2, -1), crs=LonLatWGS84)]

        self.line3 = Line([(1,5,2),(5,5,-1),(5,1,3),(3,3,1),(1,1,0)], crs=LonLatWGS84)

        self.polygon3 = Polygon([(1,5,2),(5,5,-1),(5,1,3),(3,3,1),(1,1,0)], crs=LonLatWGS84)

        testfiles = ["points.shp", "line.shp", "polygon.shp"]
        if any(not exists(join(TESTDATA, "shapefiles/", fnm)) for fnm in testfiles):
            self.saveTestData()
        return

    def saveTestData(self):
        testfiles = [(self.multipoint, "points"),
                     (self.line, "line"),
                     (self.polygon, "polygon")]
        for (geom, fnm) in testfiles:
            geom.to_shapefile(os.path.join(TESTDATA, "shapefiles", fnm))
        return

    def assertGeomEqual(self, this, that):
        self.assertTrue(np.all(this.get_vertices() == that.get_vertices()))
        self.assertEqual(this._crs, that._crs)
        return

    def test_writepoints(self):
        mp = Multipoint([p.vertex for p in self.points])
        mp.to_shapefile("data/points_shp")
        return

    def test_writeline(self):
        self.line.to_shapefile("data/line_shp")
        return

    def test_writepoly(self):
        self.polygon.to_shapefile("data/polygon_shp")
        return

    def test_writepoints3(self):
        mp = Multipoint([p.vertex for p in self.points3])
        mp.to_shapefile("data/pointsz_shp")
        return

    def test_writeline3(self):
        self.line3.to_shapefile("data/linez_shp")
        return

    def test_writepoly3(self):
        self.polygon3.to_shapefile("data/polygonz_shp")
        return

    def test_write_collection_points(self):
        mp = Multipoint([p.vertex for p in self.points])
        mp0 = copy(mp)
        mp1 = copy(mp.shift((4, 2)))
        mp2 = copy(mp.shift((-2, 3)))
        shp.write_shapefile([mp0, mp1, mp2], "data/points_collection")
        return

    def test_write_collection_lines(self):
        line0 = copy(self.line)
        line1 = copy(self.line.shift((4, 2)))
        line2 = copy(self.line.shift((-2, 3)))
        shp.write_shapefile([line0, line1, line2], "data/line_collection")
        return

    def test_dbase_type(self):
        self.assertEqual(shp.property_field_type(1.0), "N")
        self.assertEqual(shp.property_field_type(1), "N")
        self.assertEqual(shp.property_field_type(np.float32(1.0)), "N")
        self.assertEqual(shp.property_field_type(np.int16(1)), "N")
        #self.assertEqual(shp.property_field_type(1.0), "O")
        #self.assertEqual(shp.property_field_type(1), "I")
        #self.assertEqual(shp.property_field_type(np.float32(1.0)), "O")
        #self.assertEqual(shp.property_field_type(np.int16(1)), "I")
        #self.assertEqual(shp.property_field_type(True), "L")
        #self.assertEqual(shp.property_field_type(False), "L")
        self.assertEqual(shp.property_field_type("pale ale"), "C")
        self.assertEqual(shp.property_field_type(datetime.date(1986, 8, 17)), "D")
#.........这里部分代码省略.........
开发者ID:jmjak86,项目名称:karta,代码行数:103,代码来源:shapefile_tests.py


注:本文中的karta.vector.geometry.Polygon.to_shapefile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。