[R] maptools sunrise sunset function

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Nov 10 22:14:43 CET 2008


On Mon, 10 Nov 2008, Farley, Robert wrote:

> I have a time zone problem.
>
> Running the code provided I get the result in UTC, and a lot of warnings
> like this:
> 28: In as.POSIXlt.POSIXct(x, tz) ... : unknwon timezone 'PST'
>
>
>
>
>> sunrise.set(34.11583, -118.18719, "2008-11-14")
>                   sunrise              sunset
> newlon 2008-11-14 14:25:02 2008-11-15 00:49:09
>>
>> Sys.timezone()
> [1] "PST"
>>
> The result is equivalent to 06:25:02 16:49:09 {PST = UTC-8}
> The "correct" values from another source show 06:25 16:50 which agree to
> beyond the accuracy of prediction due to atmospheric uncertainty.
>
>
> How SHOULD I specify the TZ?  I would think that PST is a pretty
> "standard" ;-) time zone.

Your thoughts are misinformed: PST8PDT is a name of a standard timezone, 
but PST is not.  See ?Sys.timezone for fuller details. See also the 
posting guide: you failed to tell us your OS, which matters here.


> Yes, I steal a lot of code snippets.  I justify it by telling myself it
> helps me learn R.
>
>
> Robert Farley
> Metro
> www.Metro.net
>
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
> On Behalf Of stephen sefick
> Sent: Saturday, November 08, 2008 17:09
> To: R-help
> Subject: Re: [R] maptools sunrise sunset function
>
> Nevermind, when one puts in the proper coordinates in decimal degrees
> everything works just fine.
> thanks for you patience,
>
> Stephen
>
> On Sat, Nov 8, 2008 at 7:40 PM, stephen sefick <ssefick at gmail.com>
> wrote:
>> ##This is a function that I am trying to write to calculate sunrise
>> and sunset and works "mostly", but returns nonsensical values.  What
>> am I #missing?  Thanks in advance.
>>
>> ###remember to include maptools as dependence###
>> library(maptools)
>> sunrise.set <- function(lat, long, date, timezone="UTC", num.days=1){
>>        #this needs to be long lat#
>>        lat.long <- matrix(c(long, lat), nrow=1)
>>        day <- as.POSIXct(date, tz=timezone)
>>        sequence <- seq(from=day, length.out=num.days , by="days")
>>        sunrise <- sunriset(lat.long, sequence, direction="sunrise",
> POSIXct=TRUE)
>>        sunset <- sunriset(lat.long, sequence, direction="sunset",
> POSIXct=TRUE)
>>        ss <- data.frame(sunrise, sunset)
>>        ss <- ss[,-c(1,3)]
>>        colnames(ss)<-c("sunrise", "sunset")
>>        return(ss)
>> }
>>
>> #This doesn't make any sense
>> sunrise.set(33.46, 84.25, "2008-11-08", timezone="EST")
>>
>>
>> --
>> Stephen Sefick
>> Research Scientist
>> Southeastern Natural Sciences Academy

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list