Changeset 6670
- Timestamp:
- 11/26/10 12:35:04 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/model/radarpower.m
r6488 r6670 1 function md=radarpower(md, xlim,ylim,highres)1 function md=radarpower(md,options) 2 2 %RADARPOWER - overlay a power radar image on an existing mesh 3 3 % … … 7 7 % 8 8 % Usage: 9 % md=radarpower(md,xlim,ylim,highres) 10 % md=radarpower(md,xlim,ylim) 9 % md=radarpower(md,options); 11 10 % md=radarpower(md) 12 11 … … 18 17 19 18 %Parse inputs 20 if nargin <4,21 highres=0;19 if nargin==1, 20 options=pairoptions; 22 21 end 23 if nargin<3, 24 xlim=[min(md.x) max(md.x)];25 ylim=[min(md.y) max(md.y)];26 end 22 23 highres=getfieldvalue(options,'highres',0); 24 xlim=getfieldvalue(options,'xlim',[min(md.x) max(md.x)]); 25 ylim=getfieldvalue(options,'ylim',[min(md.y) max(md.y)]); 27 26 28 27 %find gdal coordinates … … 30 29 y0=min(ylim); y1=max(ylim); 31 30 32 %the geotiff image is either 200m or 1km accuracy. 33 if strcmpi(md.hemisphere,'n'), 34 if ~exist([MODELDATA '/MOG/mog150_greenland_map.jpg']), 35 error(['radarpower error message: file ' MODELDATA '/MOG/mog150_greenland_map.jpg not found. Check MODELDATA variable..']); 31 %figure out if we should go look for Greenland or Antarctica geotiff, or if user provided one. 32 if ~exist(options,'overlay_image'), 33 if strcmpi(md.hemisphere,'n'), 34 if ~exist([MODELDATA '/MOG/mog150_greenland_map.jpg']), 35 error(['radarpower error message: file ' MODELDATA '/MOG/mog150_greenland_map.jpg not found. Check MODELDATA variable..']); 36 end 37 jpgim=[MODELDATA '/MOG/mog150_greenland_map.jpg']; 38 geom=load([MODELDATA '/MOG/mog150_greenland_map.jpgw'],'ascii'); 39 sizex=floor((x1-x0)/geom(1)); % x posting 40 sizey=floor((y1-y0)/geom(4)); % y posting 41 topleftx=floor((x0-geom(5))/geom(1)); % x min 42 toplefty=floor((geom(6)-y1)/geom(4)); % y max 43 44 %Read and crop file 45 disp('Warning: expecting coordinates in polar stereographic (Std Latitude: 70ºN Meridian: 45º)'); 46 im=imread(jpgim); 47 im=im(toplefty:toplefty+sizey,topleftx:topleftx+sizex); 48 md.sarpwr=double(flipud(im)); 49 md.sarxm=(x0:(x1-x0)/(size(md.sarpwr,2)-1):x1); 50 md.sarym=(y0:(y1-y0)/(size(md.sarpwr,1)-1):y1); 51 52 elseif strcmpi(md.hemisphere,'s'), 53 if highres, 54 if ~exist([MODELDATA '/MosaicTiffRsat/amm125m_v2_200m.tif']), 55 error(['radarpower error message: file ' MODELDATA '/MosaicTiffRsat/amm125m_v2_200m.tif not found. Check MODELDATA variable..']); 56 end 57 geotiff_name=[MODELDATA '/MosaicTiffRsat/amm125m_v2_200m.tif']; 58 else 59 if ~exist([MODELDATA '/MosaicTiffRsat/amm125m_v2_1km.tif']), 60 error(['radarpower error message: file ' MODELDATA '/MosaicTiffRsat/amm125m_v2_1km.tif not found. Check MODELDATA variable..']); 61 end 62 geotiff_name=[MODELDATA '/MosaicTiffRsat/amm125m_v2_1km.tif']; 63 end 64 65 %Name of image 66 inputname='./temp.tif'; 67 eval(['!gdal_translate -quiet -projwin ' num2str(x0) ' ' num2str(y1) ' ' num2str(x1) ' ' num2str(y0) ' ' geotiff_name ' ' inputname ]); 68 69 %Read in temp.tif: 70 md.sarpwr=double(flipud(imread('temp.tif','TIFF'))); 71 md.sarxm=(x0:(x1-x0)/(size(md.sarpwr,2)-1):x1); 72 md.sarym=(y0:(y1-y0)/(size(md.sarpwr,1)-1):y1); 73 74 %Erase image 75 system('rm -rf ./temp.tif'); 76 77 else 78 error('field hemisphere should either be ''n'' or ''s'''); 36 79 end 37 jpgim=[MODELDATA '/MOG/mog150_greenland_map.jpg']; 38 geom=load([MODELDATA '/MOG/mog150_greenland_map.jpgw'],'ascii'); 39 sizex=floor((x1-x0)/geom(1)); % x posting 40 sizey=floor((y1-y0)/geom(4)); % y posting 41 topleftx=floor((x0-geom(5))/geom(1)); % x min 42 toplefty=floor((geom(6)-y1)/geom(4)); % y max 80 else 81 %ok, user provided an image. check we also have overlay_xlim and overlay_ylim options, to know what range of coordinates the image covers. 82 if (~exist(options,'overlay_xlim') | ~exist(options,'overlay_xlim')| ~exist(options,'overlay_xposting')| ~exist(options,'overlay_yposting')), 83 error('radarpower error message: please provide overlay_xlim, overlay_ylim, overlay_xposting and overlay_yposting options together with overlay_image option'); 84 end 85 overlay_image=getfieldvalue(options,'overlay_image'); 86 overlay_xlim=getfieldvalue(options,'overlay_xlim'); 87 overlay_ylim=getfieldvalue(options,'overlay_ylim'); 88 overlay_xposting=getfieldvalue(options,'overlay_xposting'); 89 overlay_yposting=getfieldvalue(options,'overlay_yposting'); 90 91 sizex=floor((x1-x0)/overlay_xposting); 92 sizey=floor((y1-y0)/overlay_yposting); 93 topleftx=floor((x0-overlay_xlim(1))/overlay_xposting); % x min 94 toplefty=floor((overlay_ylim(2)-y1)/overlay_yposting); % y max 95 43 96 44 97 %Read and crop file 45 98 disp('Warning: expecting coordinates in polar stereographic (Std Latitude: 70ºN Meridian: 45º)'); 46 im=imread( jpgim);99 im=imread(overlay_image); 47 100 im=im(toplefty:toplefty+sizey,topleftx:topleftx+sizex); 48 101 md.sarpwr=double(flipud(im)); 49 102 md.sarxm=(x0:(x1-x0)/(size(md.sarpwr,2)-1):x1); 50 103 md.sarym=(y0:(y1-y0)/(size(md.sarpwr,1)-1):y1); 51 52 elseif strcmpi(md.hemisphere,'s'),53 if highres,54 if ~exist([MODELDATA '/MosaicTiffRsat/amm125m_v2_200m.tif']),55 error(['radarpower error message: file ' MODELDATA '/MosaicTiffRsat/amm125m_v2_200m.tif not found. Check MODELDATA variable..']);56 end57 geotiff_name=[MODELDATA '/MosaicTiffRsat/amm125m_v2_200m.tif'];58 else59 if ~exist([MODELDATA '/MosaicTiffRsat/amm125m_v2_1km.tif']),60 error(['radarpower error message: file ' MODELDATA '/MosaicTiffRsat/amm125m_v2_1km.tif not found. Check MODELDATA variable..']);61 end62 geotiff_name=[MODELDATA '/MosaicTiffRsat/amm125m_v2_1km.tif'];63 end64 65 %Name of image66 inputname='./temp.tif';67 eval(['!gdal_translate -quiet -projwin ' num2str(x0) ' ' num2str(y1) ' ' num2str(x1) ' ' num2str(y0) ' ' geotiff_name ' ' inputname ]);68 69 %Read in temp.tif:70 md.sarpwr=double(flipud(imread('temp.tif','TIFF')));71 md.sarxm=(x0:(x1-x0)/(size(md.sarpwr,2)-1):x1);72 md.sarym=(y0:(y1-y0)/(size(md.sarpwr,1)-1):y1);73 74 %Erase image75 system('rm -rf ./temp.tif');76 77 else78 error('field hemisphere should either be ''n'' or ''s''');79 104 end
Note:
See TracChangeset
for help on using the changeset viewer.