National Register of Historic Places Geocoded

The National Park Service website offers a dataset containing a list of all of the 85,000 entries of the National Register of Historic Places along with geopoint information for most all of the entries.  As is frequently the case with data that comes from such sources the data is high quality, but a few steps away from useful in a hacking session using the more common open source tools.

The NPS’s data is available here: http://nrhp.focus.nps.gov/natreg/docs/Download.html#spatial

The dataset comes as a several tables in a Microsoft Access file.  That’s straight forward enough to get moved into a MySQL database.  However, the larger challange was that the geodata was encoded in NAD 27 UTM.

  • UTM = Universal Transverse Mercator – a flavor of geodata encoding that divides the world up into grids on a projection of the earth and references a point as northing and easting within that grid
  • NAD 27 = North American Datum 27 – this is a UTM format that uses a projection made in 1899 and formalized in 1927

To make use of this data I built a few ruby scripts that carry out the conversion between UTM and our standard, loveable lat / lng.

Feel free to use the dataset for any purpose.

All of the data is lumped into one table, but can easily be broken back out if needed.  Of the 85,000 or so entries in the list of historical places, the data from NPS provided geocoding for around 65,000 or so.  Not perfect, but still a good chunk of data.

mysql> describe historic_places;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int(11)      | NO   | PRI | NULL    | auto_increment |
| refnum      | varchar(15)  | YES  |     | NULL    |                |
| resname     | varchar(256) | YES  |     | NULL    |                |
| address     | varchar(256) | YES  |     | NULL    |                |
| city        | varchar(256) | YES  |     | NULL    |                |
| vicinity    | varchar(256) | YES  |     | NULL    |                |
| county      | varchar(256) | YES  |     | NULL    |                |
| state       | varchar(256) | YES  |     | NULL    |                |
| certdate    | varchar(256) | YES  |     | NULL    |                |
| multname    | varchar(256) | YES  |     | NULL    |                |
| acreage     | varchar(256) | YES  |     | NULL    |                |
| utmzone     | varchar(256) | YES  |     | NULL    |                |
| utmeasting  | varchar(256) | YES  |     | NULL    |                |
| utmnorthing | varchar(256) | YES  |     | NULL    |                |
| latitude    | varchar(256) | YES  |     | NULL    |                |
| longitude   | varchar(256) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
16 rows in set (0.00 sec)

historic_places.sql.tar.gz (gzipped SQL dump, 4.8 MB)
historic_places_csv.tar.gz (gzipped CSV, 4.8MB)

Posted in dataset, Geekery, Hackery

Leave a Reply

Your email address will not be published. Required fields are marked *

*