<p>The <a href="http://www1.ncdc.noaa.gov/pub/data/cdo/documentation/GHCNDMS_documentation.pdf" rel="nofollow">documentation linked from the datasets page</a> states:</p>

<blockquote>
  <p>Air Temperature (all units in Fahrenheit on PDF monthly form and <strong>tenths of degrees Celsius</strong> on CSV or text)<br>
  EMNT - Extreme minimum temperature *<br>
  EMXT - Extreme maximum temperature *  </p>
</blockquote>

<p>The <a href="http://www1.ncdc.noaa.gov/pub/data/cdo/samples/GHCNDMS_sample_ascii.dat" rel="nofollow">Petersburg data</a> looks plausible under this interpretation (EMXT −3.9°C to 33.9°C over the year).</p>

CC BY-SA 3.0
2015-04-05T20:20:04.453Z
Well, that's embarrassing. I'm going to blame it on the brain-melting drugs I'm on for a dislocated vertebra. Do you have any idea why it would be in tenths of degrees C? Why not whole degrees?
Alanna
CC BY-SA 3.0
2015-04-05T22:18:44.717Z
@Alanna We've all been there :). I wasted a good hour yesterday fruitlessly wrestling a data format because I somehow failed to see a vital bit of the extensive documentation. As to why they use that unusual unit, I have no idea. I think a tenth of a degree Celsius is around the accuracy you can expect from a typical weather station, but that doesn't explain why they don't just report it in degrees with one decimal place.
Pont
CC BY-SA 3.0
2015-04-05T23:04:03.903Z
I've worked with one or two days sets that use tenths of a degree. Maybe it was felt that this would help prevent errors handling floats when the CSV was imported? Just a guess.
jimjamslam
CC BY-SA 3.0
2015-04-06T02:35:39.810Z
@Alanna: regarding the usage of tenths of a degree, it may be a continuation of an ancient data format from the early era of computers. Removing decimal points changes numbers to integers. In old computers memory capacity & calculating speed was an issue. In binary digits, integers are half the size of floating point numbers & a quarter the size of double precision numbers. Hence the use of integers speeds up calculations & requires less memory (disk drives, tape & RAM) than floating point numbers. In the old days, tape was used heavily as an external storage medium.
Fred
CC BY-SA 3.0
2015-04-06T06:33:38.747Z
@Fred My advisor made his PhD student learn Fortran because so much climate data is still in that language. There are a number of reasons for this. I can see why, then, not having decimals, as you say, would make sense. Thank you so much!
Alanna
CC BY-SA 3.0
2015-04-06T06:37:04.867Z
@rensa I have had issues with floats in Tableau...I multiplied everything by 0.1; I'm going to try the original spreadsheet & see if Tableau can digest it more easily.
Alanna
CC BY-SA 3.0
2015-04-06T06:44:52.070Z
I'm not familiar with Tableau, being primarily an R user myself, but I'll be interested to see how you go! @Fred's reasoning rings truer to me in hindsight; unless you had a High Performance Computing application, I would think it'd be much of a muchness on current hardware.
jimjamslam
CC BY-SA 3.0
2015-04-06T09:17:24.057Z
@rensa you are correct about current computer hardware. There is logic in maintaining the old data format for consistency. If the data format was changed then all the old data would need to be changed & checked to ensure there were no errors. If the format was changed as of a certain date but the old data remained in the old format, people would need to be mindful of the change & when it occurred. Analysis apps would need to first check if the data was from before or after the date of change, condition the data accordingly before doing the calculations. It's easier to keep the old format.
Fred
CC BY-SA 3.0
2015-04-06T19:46:15.613Z
One benefit not mentioned about scaling a floating point value and storing at as integer is that it can be exactly represented (to the selected precision).  IEEE floating point will always round decimals to the nearest representable value and this can be a source of error.  This is the case even on modern hardware.  Also note that Fortran is a language, not a data format and it handles floating point values natively.
casey
CC BY-SA 3.0
2015-04-05T08:54:10.787Z
2015-04-05T08:54:10.787Z
Pont
<p>I need US monthly climate data for the years 1992-2012. It would be great to get down to a county level, but by state would be just fine. Every site that I go to inevitably kicks me to the <a href="http://www.ncdc.noaa.gov/cdo-web/search?datasetid=GHCNDMS" rel="noreferrer">NCDC</a>, but I cannot make sense of their data. </p>

<p>For example: the .csv sample data for <a href="http://www.ncdc.noaa.gov/cdo-web/datasets" rel="noreferrer"> GHCN Monthly Summaries </a> lists EMXT (extreme maximum temperature) for each month of 2010 in Petersburg, ND. July had an EMXT of 317. I've been through the documentation, but I can't figure out what that number is supposed to mean. I know it wasn't 317F or C in ND at any point. Did they add all the temps up? Was it around 10C every day of July 2010? But why would you do that? The .PDF data looks like actual temperatures, but I need a lot of data: .CSV is ideal; .PDF is really not useable for the amount of data I am going to manipulate. </p>

<p>What am I missing? Or is there another way to get this data? </p>

<climate><temperature><precipitation><open-data>
Deciphering NCDC data
Alanna
# Deciphering NCDC data

(Asked by: username_0 on 2015-04-05)

I need US monthly climate data for the years 1992-2012. It would be great to get down to a county level, but by state would be just fine. Every site that I go to inevitably kicks me to the [NCDC](http://www.ncdc.noaa.gov/cdo-web/search?datasetid=GHCNDMS), but I cannot make sense of their data.

For example: the .csv sample data for  [GHCN Monthly Summaries](http://www.ncdc.noaa.gov/cdo-web/datasets)  lists EMXT (extreme maximum temperature) for each month of 2010 in Petersburg, ND. July had an EMXT of 317. I've been through the documentation, but I can't figure out what that number is supposed to mean. I know it wasn't 317F or C in ND at any point. Did they add all the temps up? Was it around 10C every day of July 2010? But why would you do that? The .PDF data looks like actual temperatures, but I need a lot of data: .CSV is ideal; .PDF is really not useable for the amount of data I am going to manipulate.

What am I missing? Or is there another way to get this data?

**Tags:** climate, temperature, precipitation, open-data


---

## 1 answers

### Answer by username_1 on 2015-04-05. Score: 4 | Accepted answer

The [documentation linked from the datasets page](http://www1.ncdc.noaa.gov/pub/data/cdo/documentation/GHCNDMS_documentation.pdf) states:

> Air Temperature (all units in Fahrenheit on PDF monthly form and **tenths of degrees Celsius** on CSV or text)  
> EMNT - Extreme minimum temperature \*  
> EMXT - Extreme maximum temperature \*

The [Petersburg data](http://www1.ncdc.noaa.gov/pub/data/cdo/samples/GHCNDMS_sample_ascii.dat) looks plausible under this interpretation (EMXT −3.9°C to 33.9°C over the year).

> **Comments:**
> **username_0**: Well, that's embarrassing. I'm going to blame it on the brain-melting drugs I'm on for a dislocated vertebra. Do you have any idea why it would be in tenths of degrees C? Why not whole degrees?  
> **username_1**: @username_0 We've all been there :). I wasted a good hour yesterday fruitlessly wrestling a data format because I somehow failed to see a vital bit of the extensive documentation. As to why they use that unusual unit, I have no idea. I think a tenth of a degree Celsius is around the accuracy you can expect from a typical weather station, but that doesn't explain why they don't just report it in degrees with one decimal place.  
> **username_2**: I've worked with one or two days sets that use tenths of a degree. Maybe it was felt that this would help prevent errors handling floats when the CSV was imported? Just a guess.  
> **username_3**: @username_0: regarding the usage of tenths of a degree, it may be a continuation of an ancient data format from the early era of computers. Removing decimal points changes numbers to integers. In old computers memory capacity & calculating speed was an issue. In binary digits, integers are half the size of floating point numbers & a quarter the size of double precision numbers. Hence the use of integers speeds up calculations & requires less memory (disk drives, tape & RAM) than floating point numbers. In the old days, tape was used heavily as an external storage medium.  
> **username_0**: @username_3 My advisor made his PhD student learn Fortran because so much climate data is still in that language. There are a number of reasons for this. I can see why, then, not having decimals, as you say, would make sense. Thank you so much!  
> **username_0**: @rensa I have had issues with floats in Tableau...I multiplied everything by 0.1; I'm going to try the original spreadsheet & see if Tableau can digest it more easily.  
> **username_2**: I'm not familiar with Tableau, being primarily an R user myself, but I'll be interested to see how you go! @username_3's reasoning rings truer to me in hindsight; unless you had a High Performance Computing application, I would think it'd be much of a muchness on current hardware.  
> **username_3**: @rensa you are correct about current computer hardware. There is logic in maintaining the old data format for consistency. If the data format was changed then all the old data would need to be changed & checked to ensure there were no errors. If the format was changed as of a certain date but the old data remained in the old format, people would need to be mindful of the change & when it occurred. Analysis apps would need to first check if the data was from before or after the date of change, condition the data accordingly before doing the calculations. It's easier to keep the old format.  
> **username_4**: One benefit not mentioned about scaling a floating point value and storing at as integer is that it can be exactly represented (to the selected precision).  IEEE floating point will always round decimals to the nearest representable value and this can be a source of error.  This is the case even on modern hardware.  Also note that Fortran is a language, not a data format and it handles floating point values natively.  

---

