; docformat = 'rst' ; ; NAME: ; shapeVERtoTAB ; PURPOSE: ; Convert a shape model from VER to TAB format ;+ ; ; ; *Keywords* ; stepLong: in, optional, type=float, default=5 ; Grid step in degress along longitudes ; stepLat: in, optional, type=float, default=5 ; Grid step in degress along latitudes ; ; *Uses* ; readVer ; ; *Examples* ; ; *Author* ; B.Carry (OCA) ; ; *History* ; Change History** ; Original Version written in March 2020, B. Carry (OCA), ;- pro shapeVERtoTAB, fVer, fTab, stepLong=stepLong, stepLat=stepLat COMPILE_OPT hidden, idl2 ;---------------------------------------------------------------------------; ;---------------------------------------------------------------------------; ;--- TAG --- I -- Initialization And Input Verification ---; ;---------------------------------------------------------------------------; ;---------------------------------------------------------------------------; ;--I.1-- Default Values -------------------------------------------------- if not keyword_set(stepLong) then stepLong=5. if not keyword_set(stepLat) then stepLat =5. ;--I.2-- Test Inputs ----------------------------------------------------- if not keyword_set(fVer) or not keyword_set(fTab) then begin if not keyword_set(fVer) then message, /ioError, 'Missing Input File' if not keyword_set(fTab) then message, /ioError, 'Missing Ouput File' endif if not file_test(fVer) then $ message, /Error, 'Cannot read input file: '+strTrim(fVer,2) ;---------------------------------------------------------------------------; ;---------------------------------------------------------------------------; ;--- TAG --- II -- Model Conversion ---; ;---------------------------------------------------------------------------; ;---------------------------------------------------------------------------; ;--II.1-- Read File ------------------------------------------------------; model=readVer(fVer) ;--II.2-- Convert to Spherical Coordinates -------------------------------; sph=cv_coord( from_rect=model.vertex.xyz, /degrees, /to_sph) ;--II.3-- Interpolate on a Regular Grid ----------------------------------; map=sph_scat( sph[0,*], sph[1,*], sph[2,*], gs=[stepLong,stepLat], $ bounds=[0,-90,360,+90]) dims=size(map,/dimension) nLon=dims[0] nLat=dims[1] ;--II.4-- Write Tab File on Disk -----------------------------------------; openW, 1, fTab for kLat=0, nLat-1 do begin for kLon=0, nLon-1 do begin printf,1, -90+kLat*stepLat, kLon*stepLong, map[kLon,kLat], $ format='(F6.2,2x,F6.2,2x,F8.3)' endfor endfor close, 1 end