如何使用python加载栅格地图
目录
如何使用python加载栅格地图
第一次写博客记录平时发现的一些功能。python在数据挖掘,大数据方面已经被大家广泛应用,在GIS方面其实也被大家广泛应用。本文主要介绍python如何加载地图,使你画的图更漂亮。
- 需要python库
- 读取GeoTIF文件信息
- Code
需要python库
- osgeo
- opencv
读取GeoTIF文件信息1
包含地理信息的文件格式有多种,这里介绍一下TIFF文件以及其中的.TFW文件。
TFW文件结构很简单。它是一个包含六行内容的ASCII文本文件。可以用任何一个ASCII文本编辑器来打开TFW文件。TFW文件中的内容如下。
+6.00
-0.00
-0.00
-6.00
1709053.00
8107714.00
下表列出了对TFW文件中的每一行的说明。
行说明
1地图单元中的一个象素在X方向上的X分辨率尺度。 //这6个参数解释的很清楚added by zhangjun at 2010-1-5
2平移量。
3 旋转量。(角度)
4地图单元中的一个象素在Y方向上的Y分辨率尺度的负值。
5象素1,1(左上方)的X地坐标。
6 象素1,1(左上方)的Y地坐标。
使用osgeo获得这些信息:
下面看一下如何获取文件的一些基本信息,需要用到下面的一些函数与属性。
1.dataset.GetDescription() # 获得栅格的描述信息
2.dataset.RasterCount # 获得栅格数据集的波段数
3.dataset.RasterXSize # 栅格数据的宽度 (X 方向上的像素个数)
4.dataset.RasterYSize # 栅格数据的高度 (Y 方向上的像素个数)
5.dataset.GetGeoTransform() # 栅格数据的六参数。
6.GetProjection() # 栅格数据的投影
详解:2
TFW文件是关于TIFF影像坐标信息的文本文件,ArcInfo、Microstation、AutoCAD等均支持该格式的坐标信息文件。此文件定义了影像象素坐标与实际地理坐标的仿射关系,基本原理如下:
x’=Ax+By+C
y’=Dx+Ey+F
其中:
x'=象素对应的地理X坐标
y'=象素对应的地理Y坐标
x=象素坐标【列号】
y=象素坐标【行号】
A=X方向上的象素分辨率
D、B=平移和旋转系数
E=Y方向上的象素分辨素
C=栅格地图左上角象素中心X坐标
F=栅格地图左上角象素中心Y坐标
Tip:Tiff文件是图片格式包含有多个通道,使用时ds.GetRasterBand(i)获得了Tiff文件的一个通道,多通道融合可以的到彩色图片。
Code
from osgeo import gdal
import cv2
gdal.UseExceptions()
ds = gdal.Open('武汉.tif')
bandg = ds.GetRasterBand(1)
elevationg = bandg.ReadAsArray()
bandr = ds.GetRasterBand(2)
elevationr = bandr.ReadAsArray()
bandb = ds.GetRasterBand(3)
elevationb = bandb.ReadAsArray()
import matplotlib.pyplot as plt
nrows, ncols = elevationr.shape
elevation= cv2.merge([elevationg,elevationr,elevationb])
x0, dx, dxdy, y0, dydx, dy = ds.GetGeoTransform()
x1 = x0 + dx * ncols
y1 = y0 + dy * nrows
plt.show()
这样你就可以在地图上画出你想要东西啦。
转载自:https://blog.csdn.net/qq_38684480/article/details/81436694