diff --git a/geau/data-raw/so_ii_hydro.R b/geau/data-raw/so_ii_hydro.R
new file mode 100644
index 0000000000000000000000000000000000000000..13ddf91fed723182344e14b89919778bc5fbb671
--- /dev/null
+++ b/geau/data-raw/so_ii_hydro.R
@@ -0,0 +1,26 @@
+# code to prepare `so_ii_hydro` dataset goes here
+
+selection = c("gid", "CdOH", "TopoOH")
+version = current_version("data-common/so-ii/topage",
+                          pattern = "^[0-9]")
+so_ii_hydro = sf::st_read(file.path(version, "cours-eau-so-ii.shp"))[selection]
+so_ii_hydro = sf::st_transform(so_ii_hydro, sf::st_crs(geau::so_ii_limit))
+
+classif_hydro = read.csv2(
+    current_version("data-common/so-ii/topage", pattern = "courseau"),
+    colClasses = "character",
+    row.names = 1
+)
+
+so_ii_hydro = merge(
+    so_ii_hydro, classif_hydro,
+    by.x = selection,
+    by.y = c("id_1", "id_2", "cours_eau")
+    )
+
+# updating datasets
+
+# actual = setwd(file.path(system.file(package = "geau"), ".."))
+actual = setwd("geau")
+usethis::use_data(so_ii_hydro, internal = FALSE, overwrite = TRUE)
+setwd(actual)