GFZ: 3D Geological Model of Berlin

Cite as: Frick, Maximilian; Bott, Judith; Scheck-Wenderoth, Magdalena; Cacace, Mauro; Haacke, Nasrin; Schneider, Michael (2020): 3D geological model of Berlin - Germany. GFZ Data Services. https://doi.org/10.5880/GFZ.4.5.2020.005

Define Paths

library(kwb.impetus)

paths_list <- list(
  base_url = "https://datapub.gfz-potsdam.de/download/10.5880.GFZ.4.5.2020.005nuirg",
  dataset = "<base_url>/2020-005_Frick-et-al_Berlin-Model_data.zip", 
  metadata = "<base_url>/2020-005_Frick-et-al_Berlin-Model_data-description.pdf",
  model_data = "model_gfz"
)

paths <- kwb.utils::resolve(paths_list)

Download

Download the GFZ Model Dataset (2020-005_Frick-et-al_Berlin-Model_data.zip).

Metadata is available here: (2020-005_Frick-et-al_Berlin-Model_data-description.pdf)

# archive::archive_extract(archive = paths$dataset, 
#                          dir = paths$model_data)

kwb.impetus::download_gfz_model(target_dir = paths$model_data)
#> ⠙ 16 extracted | 150 MB ( 39 MB/s) | 3.9s
#> ⠹ 39 extracted | 366 MB ( 53 MB/s) | 6.9s

Import

elevation <- kwb.impetus::read_gfz_layers(paths$model_data, type = "elevation")
#> Reading (1/24): 'model_gfz/10_Lower_Cretaceous_elevation.dat' ... ok. (0.76 secs) 
#> Reading (2/24): 'model_gfz/11_Jurassic_elevation.dat' ... ok. (0.97 secs) 
#> Reading (3/24): 'model_gfz/12_Keuper_elevation.dat' ... ok. (0.62 secs) 
#> Reading (4/24): 'model_gfz/13_Muschelkalk_elevation.dat' ... ok. (0.68 secs) 
#> Reading (5/24): 'model_gfz/14_Upper_Buntsandstein_elevation.dat' ... ok. (0.96 secs) 
#> Reading (6/24): 'model_gfz/15_Middle_Buntsandstein_elevation.dat' ... ok. (0.89 secs) 
#> Reading (7/24): 'model_gfz/16_Lower_Buntsandstein_elevation.dat' ... ok. (0.62 secs) 
#> Reading (8/24): 'model_gfz/17_Zechstein_elevation.dat' ... ok. (0.66 secs) 
#> Reading (9/24): 'model_gfz/18_Rotliegend_elevation.dat' ... ok. (0.64 secs) 
#> Reading (10/24): 'model_gfz/19_Permo-Carboniferous_elevation.dat' ... ok. (0.94 secs) 
#> Reading (11/24): 'model_gfz/1_Holocene_elevation.dat' ... ok. (0.62 secs) 
#> Reading (12/24): 'model_gfz/20_Pre-Permian_elevation.dat' ... ok. (0.61 secs) 
#> Reading (13/24): 'model_gfz/21_Upper_Crust_elevation.dat' ... ok. (0.67 secs) 
#> Reading (14/24): 'model_gfz/22_Lower_Crust_elevation.dat' ... ok. (0.92 secs) 
#> Reading (15/24): 'model_gfz/23_Upper_Mantle_elevation.dat' ... ok. (0.60 secs) 
#> Reading (16/24): 'model_gfz/24_LAB_elevation.dat' ... ok. (0.59 secs) 
#> Reading (17/24): 'model_gfz/2_Saalian_elevation.dat' ... ok. (0.67 secs) 
#> Reading (18/24): 'model_gfz/3_Holstein_elevation.dat' ... ok. (0.62 secs) 
#> Reading (19/24): 'model_gfz/4_Elsterian_elevation.dat' ... ok. (0.66 secs) 
#> Reading (20/24): 'model_gfz/5_Miocene_elevation.dat' ... ok. (0.95 secs) 
#> Reading (21/24): 'model_gfz/6_Cottbus_elevation.dat' ... ok. (0.62 secs) 
#> Reading (22/24): 'model_gfz/7_Rupelian_elevation.dat' ... ok. (0.61 secs) 
#> Reading (23/24): 'model_gfz/8_Pre-Rupelian_elevation.dat' ... ok. (0.66 secs) 
#> Reading (24/24): 'model_gfz/9_Upper_Cretaceous_elevation.dat' ... ok. (0.68 secs)
thickness <- kwb.impetus::read_gfz_layers(paths$model_data, type = "thickness")
#> Reading (1/23): 'model_gfz/10_Lower_Cretaceous_thickness.dat' ... ok. (0.63 secs) 
#> Reading (2/23): 'model_gfz/11_Jurassic_thickness.dat' ... ok. (0.93 secs) 
#> Reading (3/23): 'model_gfz/12_Keuper_thickness.dat' ... ok. (0.62 secs) 
#> Reading (4/23): 'model_gfz/13_Muschelkalk_thickness.dat' ... ok. (0.64 secs) 
#> Reading (5/23): 'model_gfz/14_Upper_Buntsandstein_thickness.dat' ... ok. (0.67 secs) 
#> Reading (6/23): 'model_gfz/15_Middle_Buntsandstein_thickness.dat' ... ok. (0.69 secs) 
#> Reading (7/23): 'model_gfz/16_Lower_Buntsandstein_thickness.dat' ... ok. (0.65 secs) 
#> Reading (8/23): 'model_gfz/17_Zechstein_thickness.dat' ... ok. (0.68 secs) 
#> Reading (9/23): 'model_gfz/18_Rotliegend_thickness.dat' ... ok. (0.67 secs) 
#> Reading (10/23): 'model_gfz/19_Permo-Carboniferous_thickness.dat' ... ok. (0.70 secs) 
#> Reading (11/23): 'model_gfz/1_Holocene_thickness.dat' ... ok. (0.91 secs) 
#> Reading (12/23): 'model_gfz/20_Pre-Permian_thickness.dat' ... ok. (0.65 secs) 
#> Reading (13/23): 'model_gfz/21_Upper_Crust_thickness.dat' ... ok. (0.64 secs) 
#> Reading (14/23): 'model_gfz/22_Lower_Crust_thickness.dat' ... ok. (0.67 secs) 
#> Reading (15/23): 'model_gfz/23_Upper_Mantle_thickness.dat' ... ok. (0.63 secs) 
#> Reading (16/23): 'model_gfz/2_Saalian_thickness.dat' ... ok. (0.64 secs) 
#> Reading (17/23): 'model_gfz/3_Holstein_thickness.dat' ... ok. (0.69 secs) 
#> Reading (18/23): 'model_gfz/4_Elsterian_thickness.dat' ... ok. (0.67 secs) 
#> Reading (19/23): 'model_gfz/5_Miocene_thickness.dat' ... ok. (0.66 secs) 
#> Reading (20/23): 'model_gfz/6_Cottbus_thickness.dat' ... ok. (0.72 secs) 
#> Reading (21/23): 'model_gfz/7_Rupelian_thickness.dat' ... ok. (0.94 secs) 
#> Reading (22/23): 'model_gfz/8_Pre-Rupelian_thickness.dat' ... ok. (0.62 secs) 
#> Reading (23/23): 'model_gfz/9_Upper_Cretaceous_thickness.dat' ... ok. (0.63 secs)

## Available Layers
names(elevation)
#>  [1] "10_Lower_Cretaceous"     "11_Jurassic"            
#>  [3] "12_Keuper"               "13_Muschelkalk"         
#>  [5] "14_Upper_Buntsandstein"  "15_Middle_Buntsandstein"
#>  [7] "16_Lower_Buntsandstein"  "17_Zechstein"           
#>  [9] "18_Rotliegend"           "19_Permo-Carboniferous" 
#> [11] "1_Holocene"              "20_Pre-Permian"         
#> [13] "21_Upper_Crust"          "22_Lower_Crust"         
#> [15] "23_Upper_Mantle"         "24_LAB"                 
#> [17] "2_Saalian"               "3_Holstein"             
#> [19] "4_Elsterian"             "5_Miocene"              
#> [21] "6_Cottbus"               "7_Rupelian"             
#> [23] "8_Pre-Rupelian"          "9_Upper_Cretaceous"
names(thickness)
#>  [1] "10_Lower_Cretaceous"     "11_Jurassic"            
#>  [3] "12_Keuper"               "13_Muschelkalk"         
#>  [5] "14_Upper_Buntsandstein"  "15_Middle_Buntsandstein"
#>  [7] "16_Lower_Buntsandstein"  "17_Zechstein"           
#>  [9] "18_Rotliegend"           "19_Permo-Carboniferous" 
#> [11] "1_Holocene"              "20_Pre-Permian"         
#> [13] "21_Upper_Crust"          "22_Lower_Crust"         
#> [15] "23_Upper_Mantle"         "2_Saalian"              
#> [17] "3_Holstein"              "4_Elsterian"            
#> [19] "5_Miocene"               "6_Cottbus"              
#> [21] "7_Rupelian"              "8_Pre-Rupelian"         
#> [23] "9_Upper_Cretaceous"

## Dataset Structure 
#str(elevation)
#str(thickness)

Plot

Layer Thickness

t_01 <- kwb.impetus::plot_gfz_layer(thickness$`1_Holocene`)
#> Warning: cannot handle curvilinear or sheared stars images. Rendering regular
#> grid.
htmlwidgets::saveWidget(t_01, file = "thickness_01-holocene.html")

Layer Elevation

e_01 <- kwb.impetus::plot_gfz_layer(elevation$`1_Holocene`)
#> Warning: cannot handle curvilinear or sheared stars images. Rendering regular
#> grid.
htmlwidgets::saveWidget(e_01, 
                        file = "elevation_01-holocene.html")

Leaflet Full Page Plots

Elevation:

Tickness: