comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: coordinates on land
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: coordinates on land [message #18177] Wed, 15 December 1999 00:00
Mark Hadfield is currently offline  Mark Hadfield
Messages: 783
Registered: May 1995
Senior Member
Klaus Scipal <kscipal@ipf.tuwien.ac.at> wrote in message
news:82p4ia$bf$1@news.tuwien.ac.at...
>
> I am looking for an IDL procedure that tells me if a point (given in
> longitude and latitude) is situated on land or on water.
> for example the point 10�N and 20�E is situated on land (in Africa) the
> point 10�N 40�W is situated on water (the Atlantic)

I'm not aware of any ready-to-run solution to this problem. The problem can
be divided into two parts:

1.) Describe land areas as closed polygons.

2.) Establish if the point in question is inside any of the polygons.

There was some discussion about part 2 on this newsgroup a few weeks ago. I
posted some code based on summing angles around the point in question to the
polygon vertices; several other people posted code or made suggestions.

Re part 1, AFAIK the coastline datasets that come with IDL are not suitable
because they contain duplicate points or intersecting edges. There is a
coastline dataset designed specifically for this purpose, called "GSHHS - A
Global Self-consistent, Hierarchical, High-resolution Shoreline Database",
at

http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html

The GSHHS data come in a straightforward binary format. I intend to write
IDL routines to read the GSHHS data REAL SOON NOW.

---
Mark Hadfield
m.hadfield@niwa.cri.nz http://katipo.niwa.cri.nz/~hadfield/
National Institute for Water and Atmospheric Research
PO Box 14-901, Wellington, New Zealand
Re: coordinates on land [message #18216 is a reply to message #18177] Thu, 09 December 1999 00:00 Go to previous message
davidf is currently offline  davidf
Messages: 2866
Registered: September 1996
Senior Member
Klaus Scipal (kscipal@ipf.tuwien.ac.at) writes:

> I am looking for an IDL procedure that tells me if a point (given in
> longitude and latitude) is situated on land or on water.
> for example the point 10�N and 20�E is situated on land (in Africa) the
> point 10�N 40�W is situated on water (the Atlantic)

Here is something quick and dirty. Returns a 1 if the location
is on land and a 0 otherwise.

Cheers,

David

--
FUNCTION On_Land, longitude, latitude

; Longitude ranges from -180 to 180.
; Latitude ranges from -90 to +90.

On_Error, 1
IF N_Params() NE 2 THEN Message, 'Incorrect number of arguments'

; Fill window with map continents. Water = 0, Land = 1.

Window, XSize=360, YSize=180, /Free, /Pixmap
Map_Set, /Cylindrical, 0, 0, Position=[0,0,1,1], /NoBorder, Color=0L
Map_Continents, /Fill, Color=1L
image = TVRD()

; Convert location to device coordinates.

location = Convert_Coord(longitude, latitude, /Data, /To_Device)

; Delete window. Return location pixel value.

WDelete, !D.Window
RETURN, image[0 > location[0] < 359, 0 > location[1] < 179]
END
--

David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Philips ACRA-NEMA reader
Next Topic: coordinates on land

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 12:04:08 PDT 2025

Total time taken to generate the page: 0.56210 seconds