zoukankan      html  css  js  c++  java
  • 矢量转栅格

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from osgeo import ogr
    from osgeo import gdal
    
    # set pixel size
    pixel_size = 0.00002
    no_data_value = -9999
    
    # Shapefile input name
    # input projection must be in cartesian system in meters
    # input wgs 84 or EPSG: 4326 will NOT work!!!
    input_shp = r'../geodata/data/ply_golfcourse-strasslach3857.shp'
    # TIF Raster file to be created
    output_raster = r'../geodata/data/ply_golfcourse-strasslach.img'
    
    # Open the data source get the layer object
    # assign extent coordinates
    #shp_driver = ogr.GetDriverByName('ESRI Shapefile')
    open_shp = ogr.Open(input_shp)
    shp_layer = open_shp.GetLayer()
    x_min, x_max, y_min, y_max = shp_layer.GetExtent()
    
    print(x_min)
    print(x_max)
    
    # calculate raster resolution
    x_res = int((x_max - x_min) / pixel_size)
    y_res = int((y_max - y_min) / pixel_size)
    
    print(x_res)
    print(y_res)
    # set the image type for export
    image_type = 'GTiff'
    image_type = 'HFA'
    driver = gdal.GetDriverByName(image_type)
    driver.Register()
    # create a new raster takes Parameters
    # Filename     the name of the dataset to create. UTF-8 encoded.
    # nXSize     width of created raster in pixels.
    # nYSize     height of created raster in pixels.
    # nBands     number of bands.
    # eType     type of raster.
    
    new_raster = driver.Create(output_raster, x_res, y_res, 1, gdal.GDT_Byte)
    new_raster.SetGeoTransform((x_min, pixel_size, 0, y_max, 0, -pixel_size))
    
    # get the raster band we want to export too
    raster_band = new_raster.GetRasterBand(1)
    
    # assign the no data value to empty cells
    raster_band.SetNoDataValue(no_data_value)
    
    # run vector to raster on new raster with input Shapefile
    gdal.RasterizeLayer(new_raster, [1], shp_layer, burn_values=[255])
  • 相关阅读:
    Java数据结构概述·14
    Java之自定义异常·13
    idea spirng项目jsp页面乱码
    HashMap和LinkedHashMap的区别
    jar包导入仓库中
    后台接口接受前端参数的时候使用包装类和基本类型接受
    转 为什么程序员怕改需求?
    thymeleaf常用标签
    linux查看端口占用情况
    查询linux硬件配置
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/5745951.html
Copyright © 2011-2022 走看看