Trigpoints data set released

I’ve packaged up the Ordnance Survey’s archive of trig points into an R package for immediate download and use with R.

Install it with:

install.packages("trigpoints")

Load it as you would a normal package (I also load a few other useful packages here):

library("trigpoints")
library("dplyr")
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library("sf")
## Linking to GEOS 3.6.2, GDAL 2.2.3, proj.4 4.9.3

Check it’s loaded correctly:

trigpoints
## Simple feature collection with 31521 features and 14 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: 8710.27 ymin: 5575.208 xmax: 654884 ymax: 1219690
## epsg (SRID):    27700
## proj4string:    +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs
## # A tibble: 31,521 x 15
##    name  station new_name height order type  sec_com_blk com_date  
##    <chr> <chr>   <chr>     <dbl> <int> <chr> <chr>       <date>    
##  1 1     TL08/I… TL08I010      0     3 APEX  TL08        1954-06-01
##  2 2 Si… SD80/T… SD80T150      0     4 BOLT  SD80        1949-06-01
##  3 2 Si… SD80/T… SD80T150      0     4 CENT… SD80        1949-06-01
##  4 2 Si… SD80/T… SD80T190      0     4 BOLT  SD80        1949-06-01
##  5 202 … SJ44/T… SJ44T132      0     4 RIVET SJ44        1957-06-01
##  6 208 … SD30/T… SD30T308      0     4 RIVET SD30        1954-06-01
##  7 3 Si… SD80/T… SD80T149      0     4 BOLT  SD80        1949-06-01
##  8 3 Si… SD80/T… SD80T149      0     4 CENT… SD80        1949-06-01
##  9 507 … TQ53/T… TQ53T061      0     3 BOLT  TQ53        1949-06-01
## 10 53 C… TQ53/T… TQ53T069      0     3 BOLT  TQ53        1949-06-01
## # ... with 31,511 more rows, and 7 more variables: maintained <date>,
## #   lvl_class <int>, lvl_date <date>, lvl_datum <chr>, destroyed <int>,
## #   notes <chr>, geometry <POINT [m]>

And a quick (ish) plot:

plot(trigpoints, max.plot = 1)

The coordinates are projected and stored in OSGB36 British National Grid, for plotting with most OS or other UK shapefiles. However, these are incompatible with most web–based providers tiles so transform them if you want to plot with these:

trigpoints =
  trigpoints %>% 
  st_transform(crs = 4326)

Before we plot these there are far too many to plot interactively, so instead I plot a random selection:

trigpoints =
  trigpoints %>% 
  sample_frac(0.1)

I also remove any trigpoints that have been destroyed, and keep only those that are the iconic ‘Hotine’ pillar style:

trigpoints =
  trigpoints %>%
  filter(destroyed == 0L) %>%
  filter(type == "PILLAR")

Now we can plot these on a basemap:

# install.packages("leaflet")
library("leaflet")

map =
  leaflet(trigpoints, width = 758) %>%
  addMarkers(popup = ~ paste0(
    htmltools::htmlEscape(name),
    "<br />",
    "Height: ",
    htmltools::htmlEscape(height), " m")
  ) %>% 
  addTiles()  

map

Package websites

Notes

  • This data set is no longer maintained by Ordnance Survey so stations marked as not destroyed might no longer exist.
  • The coordinates specified are not true OSGB36 National Grid coordinates. They are expected to be accurate to within a metre so will be fine for most purposes.

Licence

  • Code: Copyright 2018 Phil Mike Jones. Licensed under the terms of the MIT License. see LICENSE
  • Data: Contains OS data © Crown copyright and database right (2018)