[ncl-talk] Problem with plotting station data in DMS-coordinates

Dennis Shea shea at ucar.edu
Thu Jan 24 13:12:31 MST 2019


Well, of course, NCL [other languages also] would treat the following as
'real' numbers
===

undef ("dm_to_deg")
function dm_to_deg(DM:numeric)
;  DM: latitude or longitude: structure: mantissa.characteristic
;      Example: 54.41:  degrees.minute: mantissa=51,  characteristic=41
local delim, dm_str, mantissa, CHARACTERISTIC, characteristic, deg

begin
   delim  = "."
   dm_str = tostring(DM)
   mantissa       = totype(str_get_field(dm_str, 1, delim), typeof(DM))
   CHARACTERISTIC = tochar(str_get_field(dm_str, 2, delim))
   characteristic = totype(tostring(CHARACTERISTIC(0:1)),typeof(DM))  ; 2
places
   if (any(characteristic.ge.60)) then
       print("dm_to_deg: illegal characteristic value >= 60")
       exit
   end if
   deg = mantissa + (characteristic/60.0)
   deg at long_name = "degree coordinates"
   deg at NCL_tag    = "dm_to_deg"
   deg at info       = "global locations in degrees: derived from dm"
   return(deg)
end
;========================================================================
;                       MAIN: dms ==> degrees_minute_second
;========================================================================

  lat_dm  = 54.41                 ; not 'real' number, rather  (54° 41')
  lat_deg = dm_to_deg(lat_dm)
  print(lat_deg)
  print("")
  print("===============")
  print("")
  lon_dm  = 13.26                  ; not 'real' number, rather    (13° 26')
  lon_deg = dm_to_deg(lon_dm)


On Thu, Jan 24, 2019 at 9:54 AM MeteoBB <info at meteo-bb.de> wrote:

> Hello,
>
> i have station data with lat/lon-coordinates in DMS (degree, minutes).
> I suppose NCL/NCAR always want's decimal coordinates as input? That's why
> my plotted data points appears at a wrong position.
>
> Example (this is my data looks like):
> lat = 54.41 (54° 41')
> lon = 13.26 (13° 26')
>
> I think I have to transform the coordinates from DMS to decimal, to have:
> lat = 54.68
> lon = 13.43
>
> Then the location will be placed correctly on map.
>
> My question:
> 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.
> Furthermore, I am irritated that the tick labels are DMS in my example
> program (see at the end), but he expects decimal coordinates.
> If there is no built-in function, has anyone a funtion to convert DMS to
> decimal or a workaround?
>
> Thanks a lot.
>
> Regards,
> Robert
>
>
> begin
>
>   wks  = gsn_open_wks ("png","test")
>   res                        = True
>   res at gsnMaximize            = True
>   res at gsnFrame               = False
>   res at mpGridAndLimbOn        = True
>   res at pmTickMarkDisplayMode  = "Always"
>   res at mpMinLatF              = 54
>   res at mpMaxLatF              = 55
>   res at mpMinLonF              = 13
>   res at mpMaxLonF              = 14
>
>   res at mpGridSpacingF         = 0.25
>   res at mpGridLineThicknessF   = 2.0
>   res at mpGridLineColor        = "Gray30"
>   res at mpOutlineBoundarySets  = "AllBoundaries"
>   res at mpDataBaseVersion      = "MediumRes"
>   res at mpDataSetName          = "Earth..4"
>   res at mpGridAndLimbOn        = True
>
>   mkres                      = True
>   mkres at gsMarkerIndex        = 16     ; Filled circle
>   mkres at gsMarkerSizeF        = 0.008
>
>   plot   = gsn_csm_map(wks,res)
>   gsn_polymarker(wks,plot,13.26,54.41,mkres)
>   frame(wks)
>
> end
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190124/bbed5347/attachment.html>


More information about the ncl-talk mailing list