矢量数据处理(python、gdal)

1.创建矢量数据

	EPSG:[https://epsg.io/]
(1)创建点数据
from osgeo import ogr, osr
import os

def create_point_shp(path, file, coordinates, x, y):
    '''
    创建矢量点数据
    :param path: file所在文件夹
    :param file: 文件名
    :param coordinates: 空间参考:EPSG(例如:4326表示WGS84,可在"https://epsg.io/"查找)
    :param x:x轴坐标
    :param y:y轴坐标
    :return:
    '''
    driver = ogr.GetDriverByName("ESRI Shapefile")
    data_source = driver.CreateDataSource(os.path.join(path, file))  # 设置shp文件名称
    # 定义空间坐标系(epsg)
    srs = osr.SpatialReference()
    srs.ImportFromEPSG(coordinates)
    layer = data_source.CreateLayer(file[:-4], srs, ogr.wkbPoint)  # 图层名称要与shp名称一致
    field_name = ogr.FieldDefn("Name", ogr.OFTString)  ## 设置属性
    field_name.SetWidth(20)  ## 设置长度
    layer.CreateField(field_name)  ## 创建字段
    field_Longitude = ogr.FieldDefn("Longitude", ogr.OFTReal)  ## 设置属性
    layer.CreateField(field_Longitude)  ## 创建字段
    field_Latitude = ogr.FieldDefn("Latitude", ogr.OFTReal)  ## 设置属性
    layer.CreateField(field_Latitude)  ## 创建字段
    feature = ogr.Feature(layer.GetLayerDefn())
    feature.SetField("Name", "point")  ## 设置字段值
    feature.SetField("Longitude", str(x))  ## 设置字段值
    feature.SetField("Latitude", str(y))  ## 设置字段值
    wkt = "POINT(%f %f)" % (float(x), float(y))  ## 创建点
    point = ogr.CreateGeometryFromWkt(wkt)  ## 生成点
    feature.SetGeometry(point)  ## 设置点
    layer.CreateFeature(feature)  ## 添加点
    feature = None  ## 关闭属性
    data_source = None  ## 关闭数据
    
    
if __name__ == "__name__":
    create_point_shp("./data", "points.shp", 4326, 113, 40.9)
(2)创建线数据
from osgeo import ogr,osr
 
def create_line():
    ## 生成线矢量文件 ##
    driver = ogr.GetDriverByName("ESRI Shapefile")
    data_source = driver.CreateDataSource("Line.shp") ## shp文件名称
    srs = osr.SpatialReference()
    srs.ImportFromEPSG(4326) ## 空间参考:WGS84
    layer = data_source.CreateLayer("Line", srs, ogr.wkbLineString) ## 图层名称要与shp名称一致
    field_name = ogr.FieldDefn("Name", ogr.OFTString) ## 设置属性
    field_name.SetWidth(20)  ## 设置长度
    layer.CreateField(field_name)  ## 创建字段
    field_length = ogr.FieldDefn("Length", ogr.OFTReal)  ## 设置属性
    layer.CreateField(field_length)  ## 创建字段
    feature = ogr.Feature(layer.GetLayerDefn())
    feature.SetField("Name", "line")  ## 设置字段值
    feature.SetField("Length", "100")  ## 设置字段值
    wkt = 'LINESTRING(116.4 39.9, 116.42 39.91, 116.39 39.92, 116.38 39.91)' ## 创建线
    line = ogr.CreateGeometryFromWkt(wkt) ## 生成线
    feature.SetGeometry(line)  ## 设置线
    layer.CreateFeature(feature)  ## 添加线
    feature = None ## 关闭属性
    data_source = None ## 关闭数据
(3)创建面数据
from osgeo import ogr,osr
 
def create_polygon():
    ## 生成线矢量文件 ##
    driver = ogr.GetDriverByName("ESRI Shapefile")
    data_source = driver.CreateDataSource("Polygon.shp") ## shp文件名称
    srs = osr.SpatialReference()
    srs.ImportFromEPSG(4326) ## 空间参考:WGS84
    layer = data_source.CreateLayer("Polygon", srs, ogr.wkbPolygon) ## 图层名称要与shp名称一致
    field_name = ogr.FieldDefn("Name", ogr.OFTString) ## 设置属性
    field_name.SetWidth(20)  ## 设置长度
    layer.CreateField(field_name)  ## 创建字段
    field_length = ogr.FieldDefn("Area", ogr.OFTReal)  ## 设置属性
    layer.CreateField(field_length)  ## 创建字段
    feature = ogr.Feature(layer.GetLayerDefn())
    feature.SetField("Name", "polygon")  ## 设置字段值
    feature.SetField("Area", "500")  ## 设置字段值
    wkt = "POLYGON((116.41 39.89, 116.41 39.91, 116.39 39.91, 116.39 39.89))" ## 创建面
    polygon = ogr.CreateGeometryFromWkt(wkt) ## 生成面
    feature.SetGeometry(polygon)  ## 设置面
    layer.CreateFeature(feature)  ## 添加面
    feature = None ## 关闭属性
    data_source = None ## 关闭数据
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python GDAL是一个用来处理地理空间数据的开源库,可以用来处理卫星数据。 GDAL(地理数据抽象库)是一个强大的地理空间数据处理库,可以读取、写入和分析各种格式的栅格和矢量数据GDALPython中的接口被称为Python GDAL,它结合了Python的便捷性和GDAL的功能,使得处理卫星数据变得更加高效和便捷。 使用Python GDAL可以完成以下卫星数据处理任务: 1. 数据读取:Python GDAL可以读取各种格式的卫星数据,例如GeoTIFF、HDF、NetCDF等。通过打开数据集,可以获取数据的基本信息,如大小、数据类型、地理坐标系统等。 2. 数据处理Python GDAL提供了一系列的函数和方法,可以对卫星数据进行处理和分析。例如,可以创建影像金字塔、重采样、切割、裁剪、合并、投影转换等操作。 3. 数据提取:可以通过Python GDAL提取图像中的特定区域、像素值、波段等信息。这对于进行卫星图像分类、变化检测等任务非常有用。 4. 数据写入:Python GDAL可以将处理后的卫星数据保存为各种格式,包括GeoTIFF、HDF、NetCDF等。这样可以方便地将处理结果用于其他软件或分享给他人。 Python GDAL具有广泛的功能和灵活的扩展性,可以通过结合其他Python库和工具,如NumPy、Pandas、Matplotlib等,实现更复杂的卫星数据处理和分析任务。 总之,利用Python GDAL可以方便地读取、处理和分析卫星数据,为地理空间数据的研究和应用提供了强大的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值