<div dir="ltr"><div dir="ltr"><div><br></div><div>Well, of course, NCL [other languages also] would treat the following as 'real' numbers<br></div><div>===</div><div><br></div><div>undef ("dm_to_deg")<br>function dm_to_deg(DM:numeric)<br>; DM: latitude or longitude: structure: mantissa.characteristic<br>; Example: 54.41: degrees.minute: mantissa=51, characteristic=41</div><div>local delim, dm_str, mantissa, CHARACTERISTIC, characteristic, deg</div><div><br></div><div>begin<br> delim = "."<br> dm_str = tostring(DM)<br> mantissa = totype(str_get_field(dm_str, 1, delim), typeof(DM))<br> CHARACTERISTIC = tochar(str_get_field(dm_str, 2, delim))<br> characteristic = totype(tostring(CHARACTERISTIC(0:1)),typeof(DM)) ; 2 places<br> if (any(characteristic.ge.60)) then<br> print("dm_to_deg: illegal characteristic value >= 60")<br> exit<br> end if<br> deg = mantissa + (characteristic/60.0)<br> deg@long_name = "degree coordinates"<br> deg@NCL_tag = "dm_to_deg"<br> deg@info = "global locations in degrees: derived from dm"<br> return(deg)<br>end<br>;========================================================================<br>; MAIN: dms ==> degrees_minute_second<br>;========================================================================<br><br> lat_dm = 54.41 ; not 'real' number, rather (54° 41') <br> lat_deg = dm_to_deg(lat_dm)<br> print(lat_deg)<br> print("")<br> print("===============")<br> print("")<br> lon_dm = 13.26 ; not 'real' number, rather (13° 26')<br> lon_deg = dm_to_deg(lon_dm)<br><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail-m_-577346718784465828gmail_attr">On Thu, Jan 24, 2019 at 9:54 AM MeteoBB <<a href="mailto:info@meteo-bb.de" target="_blank">info@meteo-bb.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
Hello,<br>
<br>
i have station data with lat/lon-coordinates in DMS (degree,
minutes). <br>
I suppose NCL/NCAR always want's decimal coordinates as input?
That's why my plotted data points appears at a wrong position.<br>
<br>
Example (this is my data looks like):<br>
lat = 54.41 (54° 41') <br>
lon = 13.26 (13° 26')<br>
<br>
I think I have to transform the coordinates from DMS to decimal, to
have:<br>
lat = 54.68<br>
lon = 13.43<br>
<br>
Then the location will be placed correctly on map.<br>
<br>
My question: <br>
Just wondering - is there really no built-in procedure/function for
the conversion from DMS to decimal coordinates? I found nothing
about these stuff in the mailing lists or on the web. <br>
Furthermore, I am irritated that the tick labels are DMS in my
example program (see at the end), but he expects decimal
coordinates.<br>
If there is no built-in function, has anyone a funtion to convert
DMS to decimal or a workaround?<br>
<br>
Thanks a lot.<br>
<br>
Regards,<br>
Robert<br>
<br>
<br>
<font face="Courier New">begin<br>
<br>
wks = gsn_open_wks ("png","test") <br>
res = True <br>
res@gsnMaximize = True<br>
res@gsnFrame = False <br>
res@mpGridAndLimbOn = True <br>
res@pmTickMarkDisplayMode = "Always" <br>
res@mpMinLatF = 54<br>
res@mpMaxLatF = 55<br>
res@mpMinLonF = 13<br>
res@mpMaxLonF = 14<br>
<br>
res@mpGridSpacingF = 0.25<br>
res@mpGridLineThicknessF = 2.0<br>
res@mpGridLineColor = "Gray30"<br>
res@mpOutlineBoundarySets = "AllBoundaries"<br>
res@mpDataBaseVersion = "MediumRes"<br>
res@mpDataSetName = "Earth..4" <br>
res@mpGridAndLimbOn = True<br>
<br>
mkres = True<br>
mkres@gsMarkerIndex = 16 ; Filled circle<br>
mkres@gsMarkerSizeF = 0.008<br>
<br>
plot = gsn_csm_map(wks,res)<br>
gsn_polymarker(wks,plot,13.26,54.41,mkres)<br>
frame(wks)<br>
<br>
end<br>
<br>
</font><br>
</div>
_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
</blockquote></div>