Python的 - 创建从一个边界框坐标列表的形状文件

时间:2019-01-31 13:34:56

标签: python gis shapefile

已经有关于这个话题现有的几个问题,但我很遗憾没有找到的东西,可以解决我的问题...

我有一个点纬度,经度坐标即纬度= 10,长= 10。我想创建该点周围一个0.5度的边界框的形状文件,所以边界框应该如下:

  1. 最小长= 9.75
  2. 最小纬度= 9.75
  3. 最大长= 10.25
  4. 最大纬度= 10.25

有人知道如何在pyhton中做到这一点吗?

2 个答案:

答案 0 :(得分:2)

这是使用整形的大熊猫和大熊猫的一种方法:

import geopandas as gpd
import pandas as pd
from shapely.geometry import Polygon


def bbox(lat,lng, margin):                                                                                                                  
    return Polygon([[lng-margin, lat-margin],[lng-margin, lat+margin],
    [lng+margin,lat+margin],[lng+margin,lat-margin]])

gpd.GeoDataFrame(pd.DataFrame(['p1'], columns = ['geom']),
     crs = {'init':'epsg:4326'},
     geometry = [bbox(10,10, 0.25)]).to_file('poly.shp')

答案 1 :(得分:0)

我想增强 Bruno Carballo 的代码。我希望它对你更容易

    import geopandas as gpd
    import pandas as pd
    from shapely.geometry import Polygon
    
    def bbox(long0, lat0, lat1, long1)
        return Polygon([[long0, lat0],
                        [long1,lat0],
                        [long1,lat1],
                        [long0, lat1]])

    test = bbox(9.75, 9.75, 10.25, 10.25)

    gpd.GeoDataFrame(pd.DataFrame(['p1'], columns = ['geom']),
         crs = {'init':'epsg:4326'},
         geometry = [test]).to_file('poly.shp')