[R] reading daily snow depth data
boB Rudis
bob at rudis.net
Tue Jun 16 21:50:55 CEST 2015
This look similar to snow data I used last year:
https://github.com/hrbrmstr/snowfirst/blob/master/R/snowfirst.R
All the data worked pretty well.
On Tue, Jun 16, 2015 at 3:21 PM, jim holtman <jholtman at gmail.com> wrote:
> Here is an example of reading in the data. After that it is a data frame
> and should be able to process it with dplyr/data.table without much trouble:
>
>> x <- readLines("
> http://www1.ncdc.noaa.gov/pub/data/snowmonitoring/fema/06-2015-dlysndpth.txt
> ")
>> writeLines(x, '/temp/snow.txt') # save for testing
>> head(x)
> [1]
> ""
>
> [2] "State:
> AL"
>
> [3] " Lat Lon COOP# StnID State City/Station Name
> County Elev Jun 1 Jun 2 Jun 3 Jun
> 4 Jun 5 Jun 6 Jun 7 Jun 8 Jun 9 Jun10
> Jun11 Jun12 Jun13 Jun14 Jun15 Jun16"
> [4] " 33.59 -85.86 010272 AL ANNISTON ARPT ASOS
> CALHOUN 594 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
> [5] " 33.83 -85.78 014209 AL JACKSONVILLE
> CALHOUN 608 -9999.000 -9999.000 -9999.000
> -9999.000 -9999.000 0.000 0.000 -9999.000 -9999.000
> -9999.000 -9999.000 -9999.000 -9999.000 -9999.000 -9999.000 -9999.000"
> [6] " 34.74 -87.60 015749 AL MUSCLE SHOALS AP
> COLBERT 540 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
>> z <- grepl("(^$)|(^State)|(^ Lat)", x) # get lines to discard
>> xm <- x[!z] # remove info lines
>> head(xm)
> [1] " 33.59 -85.86 010272 AL ANNISTON ARPT ASOS
> CALHOUN 594 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
> [2] " 33.83 -85.78 014209 AL JACKSONVILLE
> CALHOUN 608 -9999.000 -9999.000 -9999.000
> -9999.000 -9999.000 0.000 0.000 -9999.000 -9999.000
> -9999.000 -9999.000 -9999.000 -9999.000 -9999.000 -9999.000 -9999.000"
> [3] " 34.74 -87.60 015749 AL MUSCLE SHOALS AP
> COLBERT 540 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
> [4] " 31.32 -85.45 012372 AL DOTHAN FAA AIRPORT
> DALE 374 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
> [5] " 32.70 -87.58 013511 AL GREENSBORO
> HALE 220 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
> [6] " 33.57 -86.74 010831 AL BIRMINGHAM AP ASOS
> JEFFERSON 615 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000
> 0.000 0.000 0.000 0.000 0.000 0.000 -9999.000"
>>
>> # read in the data
>> xf <- textConnection(xm)
>> snow <- read.fwf(xf
> + , width = c(6,8,7,10,3,32,26,6,rep(11,16))
> + , comment.char = ''
> + , as.is = TRUE
> + )
>> str(snow)
> 'data.frame': 3067 obs. of 24 variables:
> $ V1 : num 33.6 33.8 34.7 31.3 32.7 ...
> $ V2 : num -85.9 -85.8 -87.6 -85.5 -87.6 ...
> $ V3 : int 10272 14209 15749 12372 13511 10831 11225 14064 12245 15478 ...
> $ V4 : chr " " " " " " " " ...
> $ V5 : chr "AL " "AL " "AL " "AL " ...
> $ V6 : chr "ANNISTON ARPT ASOS "
> "JACKSONVILLE " "MUSCLE SHOALS AP "
> "DOTHAN FAA AIRPORT " ...
> $ V7 : chr "CALHOUN " "CALHOUN "
> "COLBERT " "DALE " ...
> $ V8 : int 594 608 540 374 220 615 461 624 100 215 ...
> $ V9 : num 0 -9999 0 0 0 ...
> $ V10: num 0 -9999 0 0 0 ...
> $ V11: num 0 -9999 0 0 0 ...
> $ V12: num 0 -9999 0 0 0 ...
> $ V13: num 0 -9999 0 0 0 ...
> $ V14: num 0 0 0 0 0 ...
> $ V15: num 0 0 0 0 0 ...
> $ V16: num 0 -9999 0 0 0 ...
> $ V17: num 0 -9999 0 0 0 ...
> $ V18: num 0 -9999 0 0 0 ...
> $ V19: num 0 -9999 0 0 0 ...
> $ V20: num 0 -9999 0 0 0 ...
> $ V21: num 0 -9999 0 0 0 ...
> $ V22: num 0 -9999 0 0 0 ...
> $ V23: num 0 -9999 0 0 0 ...
> $ V24: num -9999 -9999 -9999 -9999 -9999 ...
>> table(snow$V5) # tally up the states
> AK AL AR AZ CA CO CT DE FL GA HI IA ID IL IN KS KY LA MA
> MD ME MI MN MO MS MT
> 72 18 65 55 99 128 10 1 30 33 6 112 57 103 85 90 49 29
> 35 14 40 86 90 124 27 113
> NC ND NE NH NJ NM NV NY OH OK OR PA RI SC SD TN TX UT VA
> VT WA WI WV WY
> 45 19 136 22 13 53 65 76 31 106 51 84 2 30 79 64 185 68
> 70 18 56 103 36 84
>>
>
>
> Jim Holtman
> Data Munger Guru
>
> What is the problem that you are trying to solve?
> Tell me what you want to do, not how you want to do it.
>
> On Tue, Jun 16, 2015 at 11:38 AM, Alemu Tadesse <alemu.tadesse at gmail.com>
> wrote:
>
>> Dear All,
>>
>> I was going to read daily snow data for each state and station/city from
>> the following link. I was not able to separate a given state's data from
>> the rest of the contents of the file, read the data to a data frame and
>> save it to file.
>>
>>
>> http://www1.ncdc.noaa.gov/pub/data/snowmonitoring/fema/06-2015-dlysndpth.txt
>>
>> I really appreciate your time and help, and also appreciate any information
>> for an alternative source.
>>
>> Best,
>>
>> Alemu
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list