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])
  • 相关阅读:
    grant授权“失败”的原因
    解决:error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
    3.MySQL之创建/删除用户
    Linux常用宏contianer_of()
    Linux设备模型(一)_基本概念
    内核探测工具systemtap简介
    模块驱动调试记录 ——platform_driver_register
    Linux软件栈上的性能诊断工具集
    系统调用—sysconf
    C的编译&预编译
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/5745951.html
Copyright © 2011-2022 走看看