The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
ggswissmaps
data with
sf
From version 0.1.2
, ggswissmaps
includes
boundaries of Switzerland, at various levels, also in sf
format. The 8 objects are stored in the list shp_sf
:
library(ggswissmaps)
# str(shp_sf) # Very long output...
class(shp_sf)
#> [1] "list"
length(shp_sf)
#> [1] 8
lapply(shp_sf, class)
#> $g1b15
#> [1] "sf" "data.frame"
#>
#> $g1g15_encl
#> [1] "sf" "data.frame"
#>
#> $g1g15_li
#> [1] "sf" "data.frame"
#>
#> $g1g15
#> [1] "sf" "data.frame"
#>
#> $g1k15
#> [1] "sf" "data.frame"
#>
#> $g1l15
#> [1] "sf" "data.frame"
#>
#> $g1r15
#> [1] "sf" "data.frame"
#>
#> $g1s15
#> [1] "sf" "data.frame"
names(shp_sf)
#> [1] "g1b15" "g1g15_encl" "g1g15_li" "g1g15" "g1k15"
#> [6] "g1l15" "g1r15" "g1s15"
ggswissmaps
with sf
The boundaries stored in the list shp_sf
can be used
with ggplot2::geom_sf()
:
library(ggplot2)
ggplot(shp_sf[["g1k15"]]) + geom_sf()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
The gray background can be removed for example with
ggswissmaps::theme_white_f()
or other ggplot2
themes, while the gray background inside the boundaries can be removed
by setting fill = NA
in
ggplot2::geom_sf()
:
ggplot(shp_sf[["g1k15"]]) +
geom_sf(fill = NA) +
ggswissmaps::theme_white_f()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
Note that all the ‘sf’ data frames stored in the list
shp_sf
have the coordinate reference system (crs)
corrensponding to “EPSG: 21781”. This can be verified with
sf::st_crs()
:
library(sf)
#> Linking to GEOS 3.13.1, GDAL 3.11.0, PROJ 9.6.0; sf_use_s2() is TRUE
st_crs(shp_sf[[1]])
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> Coordinate Reference System:
#> User input: EPSG:21781
#> wkt:
#> PROJCRS["CH1903 / LV03",
#> BASEGEOGCRS["CH1903",
#> DATUM["CH1903",
#> ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
#> LENGTHUNIT["metre",1]]],
#> PRIMEM["Greenwich",0,
#> ANGLEUNIT["degree",0.0174532925199433]],
#> ID["EPSG",4149]],
#> CONVERSION["Swiss Oblique Mercator 1903M",
#> METHOD["Hotine Oblique Mercator (variant B)",
#> ID["EPSG",9815]],
#> PARAMETER["Latitude of projection centre",46.9524055555556,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8811]],
#> PARAMETER["Longitude of projection centre",7.43958333333333,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8812]],
#> PARAMETER["Azimuth at projection centre",90,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8813]],
#> PARAMETER["Angle from Rectified to Skew Grid",90,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8814]],
#> PARAMETER["Scale factor at projection centre",1,
#> SCALEUNIT["unity",1],
#> ID["EPSG",8815]],
#> PARAMETER["Easting at projection centre",600000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8816]],
#> PARAMETER["Northing at projection centre",200000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8817]]],
#> CS[Cartesian,2],
#> AXIS["easting (Y)",east,
#> ORDER[1],
#> LENGTHUNIT["metre",1]],
#> AXIS["northing (X)",north,
#> ORDER[2],
#> LENGTHUNIT["metre",1]],
#> USAGE[
#> SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],
#> AREA["Liechtenstein; Switzerland."],
#> BBOX[45.82,5.96,47.81,10.49]],
#> ID["EPSG",21781]]
I think that this is the “old” swiss crs, while the newest one is
“EPSG: 2056”. In order to change the crs we can use
st::st_transform()
:
tmp <- st_transform(shp_sf[[1]], crs = 2056)
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
st_crs(tmp)
#> Coordinate Reference System:
#> User input: EPSG:2056
#> wkt:
#> PROJCRS["CH1903+ / LV95",
#> BASEGEOGCRS["CH1903+",
#> DATUM["CH1903+",
#> ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
#> LENGTHUNIT["metre",1]]],
#> PRIMEM["Greenwich",0,
#> ANGLEUNIT["degree",0.0174532925199433]],
#> ID["EPSG",4150]],
#> CONVERSION["Swiss Oblique Mercator 1995",
#> METHOD["Hotine Oblique Mercator (variant B)",
#> ID["EPSG",9815]],
#> PARAMETER["Latitude of projection centre",46.9524055555556,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8811]],
#> PARAMETER["Longitude of projection centre",7.43958333333333,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8812]],
#> PARAMETER["Azimuth at projection centre",90,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8813]],
#> PARAMETER["Angle from Rectified to Skew Grid",90,
#> ANGLEUNIT["degree",0.0174532925199433],
#> ID["EPSG",8814]],
#> PARAMETER["Scale factor at projection centre",1,
#> SCALEUNIT["unity",1],
#> ID["EPSG",8815]],
#> PARAMETER["Easting at projection centre",2600000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8816]],
#> PARAMETER["Northing at projection centre",1200000,
#> LENGTHUNIT["metre",1],
#> ID["EPSG",8817]]],
#> CS[Cartesian,2],
#> AXIS["(E)",east,
#> ORDER[1],
#> LENGTHUNIT["metre",1]],
#> AXIS["(N)",north,
#> ORDER[2],
#> LENGTHUNIT["metre",1]],
#> USAGE[
#> SCOPE["Cadastre, engineering survey, topographic mapping (large and medium scale)."],
#> AREA["Liechtenstein; Switzerland."],
#> BBOX[45.82,5.96,47.81,10.49]],
#> ID["EPSG",2056]]
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.