2017-04-12 5 views
0

기본 파일에 모양 파일이있는지도를 그렸습니다.이 기초를 바탕으로 DEM 데이터 (.tif)를 지도. SRTM 웹 사이트에서 .tif 데이터 (경도와 위도가 실제로 shapefile의 범위 안에 있음)를 다운로드했지만 마침내 프로그램을 실행할 때지도의 특정 롤에 래스터 데이터가 표시되지 않았습니다gem에서 모양 파일에 DEM 데이터 (.tif)를 추가하는 방법

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 
import numpy as np 
from matplotlib.patches import Polygon 
from osgeo import gdal 
from numpy import linspace 
from numpy import meshgrid 

fig = plt.figure(figsize=(8,6), dpi=80) 
ax1 = fig.add_axes([0.1,0.1,1.0,1.0]) 
map = Basemap(llcrnrlon=114.7, 
      llcrnrlat=29.3, 
      urcrnrlon=120, 
      urcrnrlat=34.6, 
     resolution='h', projection='tmerc', lat_0 =31.5,lon_0=116.5,ax=ax1) 
shp_info = map.readshapefile("bou2_4l",'state',color='k',linewidth='1',drawbounds=True) 

ds = gdal.Open("srtm_60_06.tif") 
data = ds.ReadAsArray() 
loc3=[30,35] 
lat3=[115,120] 
x1,y1 = map(loc3,lat3) 
x = linspace(x1[0],x1[1], data.shape[1]) 
y = linspace(y1[0],y1[1], data.shape[0]) 
xx, yy = meshgrid(x, y) 
map.pcolormesh(xx, yy, data) 
plt.show() 

답변

0

gis.stackexchange에서 질문하면 더 간결한 답변을 얻을 수 있습니다.

어쨌든, 이것은 나에게 투영 오류처럼 보입니다. 나는 고쳐 주어야하지만 STRM tiffs는 GeoTiffs이므로 헤더에 투영 정보가 있습니다.

SRTM 데이터가 지리적 좌표계를 사용하는 동안 Transverse Mercator를 사용하는 것처럼 보입니다.

것은 당신의 TIFF를 다시 투영보십시오, 나는 gdal.Warp이 그것을해야한다고 생각 :

gdal.Warp(output_raster,input_raster,dstSRS='EPSG:your_basemap_projection')