[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