*Support for ICES rectangles is experimental*

ICES
statistical rectangles is a notation system developped by the
International Council for the Exploration of the Sea (ICES). The
packages allows you to convert the notation into a `sf`

object. The
example and illustration below shows a small subset of ICES rectangles
and subrectangles.

```
library(sf)
my_ices_codes <-
c("31F21", "31F22", "31F23", "31F24", "31F25", "31F26", "31F27", "31F28", "31F29",
"32F2", "33F2", "34F2", "35F2",
"31F3", "32F3", "33F3", "34F3", "35F3",
"31F4", "32F4", "33F4", "34F4", "35F4")
my_ices_rects <- ices_rectangles(my_ices_codes)
```

ICES subrectangles divide the parent ICES rectangle into 3 by 3 equal rectangles. Unfortunately, this makes the subrectangles incompatible with Csquares as those divide parent rectangles into 2 by 2 or 10 by 10 equal rectangles. The csquares package offers some helper functions to convert ICES rectangles to csquares and vice versa. The example below show how to get the corresponding csquares codes for the requested ICES rectangles.

```
library(dplyr)
ices_csq <-
## Note that ICES subrects return empty csquares
ices_to_csquares(my_ices_codes) |>
## Remove empty csquares as those can not be converted into geometries
filter(!is.na(csquares)) |>
## add geometries
st_as_sf()
#> Warning: Input contains ICES subrectangles which are incompatible with
#> csquares.
```

The subrectangles produces `NA`

values and shows a
warning. This yields the csquares as depicted below.

We can easily get the ICES rectangles that correspond with those csquares using:

```
ices_from_csquares(ices_csq)
#> [1] "32F2" "33F2" "34F2" "35F2" "31F3" "32F3" "33F3" "34F3" "35F3" "31F4"
#> [11] "32F4" "33F4" "34F4" "35F4"
```

We get the same ICES rectangles that we started with, except for the subrectangles which are incompatible.