From 72f60129dda0ca8ed0e247a8f41438756d9a089e Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Tue, 1 Oct 2024 16:23:54 +0000 Subject: [PATCH] build based on 6f66889 --- dev/404.html | 4 +- dev/api/addreadrm.html | 20 +-- dev/api/create.html | 14 +- dev/api/isinonequal.html | 34 ++--- dev/api/project.html | 18 +-- dev/api/shape.html | 10 +- dev/api/tables.html | 16 +-- dev/assets/agrzhea.B_4bWRB3.png | Bin 0 -> 235801 bytes ...apF7BG.js => api_addreadrm.md.Bre3lcSB.js} | 14 +- ...n.js => api_addreadrm.md.Bre3lcSB.lean.js} | 14 +- ....DiBlGY3W.js => api_create.md.D6FPTd5d.js} | 8 +- ...lean.js => api_create.md.D6FPTd5d.lean.js} | 8 +- ...QHC3.js => api_isinonequal.md.vujw6c_j.js} | 28 ++-- ...js => api_isinonequal.md.vujw6c_j.lean.js} | 28 ++-- ...CxN5HGcY.js => api_project.md.rRFXlQAq.js} | 12 +- ...ean.js => api_project.md.rRFXlQAq.lean.js} | 12 +- ...d.tRnJAzBD.js => api_shape.md.ByrUh8hw.js} | 2 +- ....lean.js => api_shape.md.ByrUh8hw.lean.js} | 2 +- ....Dosp9r3m.js => api_tables.md.DJhk53Bu.js} | 10 +- ...lean.js => api_tables.md.DJhk53Bu.lean.js} | 10 +- .../{app.kHUU-BdX.js => app.YBeC1Pez.js} | 2 +- ...7Y4otKP.js => basics_shape.md.DCZ6l6H5.js} | 20 +-- ...an.js => basics_shape.md.DCZ6l6H5.lean.js} | 20 +-- .../chunks/@localSearchIndexroot.BixCjSid.js | 1 - .../chunks/@localSearchIndexroot.DZIpXCFD.js | 1 + ...Q2YAZV.js => VPLocalSearchBox.B_WjacLW.js} | 2 +- .../{theme.6nTMTlEW.js => theme.BetGdEN7.js} | 4 +- ...d.Db_UaeE4.js => ecosystem.md.B1xk8bas.js} | 2 +- ....lean.js => ecosystem.md.B1xk8bas.lean.js} | 2 +- ....CwOYOuaL.js => georegions.md.BBgAVs_5.js} | 2 +- ...lean.js => georegions.md.BBgAVs_5.lean.js} | 2 +- dev/assets/legdzym.CaYs2cTv.png | Bin 0 -> 53474 bytes dev/assets/nkgxioy.4dJckAVD.png | Bin 0 -> 53934 bytes ...Wc.js => tutorials_isequal.md.Ch07zynb.js} | 19 ++- ... => tutorials_isequal.md.Ch07zynb.lean.js} | 19 ++- ...torials_projects_addreadrm.md.CTAI436a.js} | 12 +- ...ls_projects_addreadrm.md.CTAI436a.lean.js} | 12 +- ...> tutorials_projects_files.md.DMhADvsp.js} | 29 ++-- ...orials_projects_files.md.DMhADvsp.lean.js} | 29 ++-- ...> tutorials_projects_setup.md.CRf-ByLx.js} | 8 +- ...orials_projects_setup.md.CRf-ByLx.lean.js} | 8 +- .../tutorials_using_isin.md.Bz1YxGv5.js | 72 ---------- .../tutorials_using_isin.md.Bz1YxGv5.lean.js | 72 ---------- .../tutorials_using_isin.md.h--XpIv3.js | 72 ++++++++++ .../tutorials_using_isin.md.h--XpIv3.lean.js | 72 ++++++++++ .../tutorials_using_ison.md.Di2hutUn.js | 49 +++++++ .../tutorials_using_ison.md.Di2hutUn.lean.js | 49 +++++++ .../tutorials_using_ison.md.Yilf_Gc1.js | 49 ------- .../tutorials_using_ison.md.Yilf_Gc1.lean.js | 49 ------- dev/basics/create.html | 6 +- dev/basics/read/listall.html | 6 +- dev/basics/read/overview.html | 6 +- dev/basics/read/predefined.html | 6 +- dev/basics/read/tables.html | 6 +- dev/basics/shape.html | 26 ++-- dev/ecosystem.html | 8 +- dev/georegions.html | 10 +- dev/hashmap.json | 2 +- dev/index.html | 6 +- dev/tutorials/isequal.html | 27 ++-- dev/tutorials/projects/addreadrm.html | 20 +-- dev/tutorials/projects/files.html | 35 +++-- dev/tutorials/projects/setup.html | 16 +-- dev/tutorials/using/isin.html | 132 +++++++++--------- dev/tutorials/using/ison.html | 64 ++++----- 65 files changed, 659 insertions(+), 659 deletions(-) create mode 100644 dev/assets/agrzhea.B_4bWRB3.png rename dev/assets/{api_addreadrm.md.BOapF7BG.js => api_addreadrm.md.Bre3lcSB.js} (96%) rename dev/assets/{api_addreadrm.md.BOapF7BG.lean.js => api_addreadrm.md.Bre3lcSB.lean.js} (96%) rename dev/assets/{api_create.md.DiBlGY3W.js => api_create.md.D6FPTd5d.js} (97%) rename dev/assets/{api_create.md.DiBlGY3W.lean.js => api_create.md.D6FPTd5d.lean.js} (97%) rename dev/assets/{api_isinonequal.md.B_kVQHC3.js => api_isinonequal.md.vujw6c_j.js} (70%) rename dev/assets/{api_isinonequal.md.B_kVQHC3.lean.js => api_isinonequal.md.vujw6c_j.lean.js} (70%) rename dev/assets/{api_project.md.CxN5HGcY.js => api_project.md.rRFXlQAq.js} (88%) rename dev/assets/{api_project.md.CxN5HGcY.lean.js => api_project.md.rRFXlQAq.lean.js} (88%) rename dev/assets/{api_shape.md.tRnJAzBD.js => api_shape.md.ByrUh8hw.js} (98%) rename dev/assets/{api_shape.md.tRnJAzBD.lean.js => api_shape.md.ByrUh8hw.lean.js} (98%) rename dev/assets/{api_tables.md.Dosp9r3m.js => api_tables.md.DJhk53Bu.js} (96%) rename dev/assets/{api_tables.md.Dosp9r3m.lean.js => api_tables.md.DJhk53Bu.lean.js} (96%) rename dev/assets/{app.kHUU-BdX.js => app.YBeC1Pez.js} (95%) rename dev/assets/{basics_shape.md.B7Y4otKP.js => basics_shape.md.DCZ6l6H5.js} (51%) rename dev/assets/{basics_shape.md.B7Y4otKP.lean.js => basics_shape.md.DCZ6l6H5.lean.js} (51%) delete mode 100644 dev/assets/chunks/@localSearchIndexroot.BixCjSid.js create mode 100644 dev/assets/chunks/@localSearchIndexroot.DZIpXCFD.js rename dev/assets/chunks/{VPLocalSearchBox.HTQ2YAZV.js => VPLocalSearchBox.B_WjacLW.js} (99%) rename dev/assets/chunks/{theme.6nTMTlEW.js => theme.BetGdEN7.js} (99%) rename dev/assets/{ecosystem.md.Db_UaeE4.js => ecosystem.md.B1xk8bas.js} (97%) rename dev/assets/{ecosystem.md.Db_UaeE4.lean.js => ecosystem.md.B1xk8bas.lean.js} (97%) rename dev/assets/{georegions.md.CwOYOuaL.js => georegions.md.BBgAVs_5.js} (92%) rename dev/assets/{georegions.md.CwOYOuaL.lean.js => georegions.md.BBgAVs_5.lean.js} (92%) create mode 100644 dev/assets/legdzym.CaYs2cTv.png create mode 100644 dev/assets/nkgxioy.4dJckAVD.png rename dev/assets/{tutorials_isequal.md.B5ELEEWc.js => tutorials_isequal.md.Ch07zynb.js} (67%) rename dev/assets/{tutorials_isequal.md.B5ELEEWc.lean.js => tutorials_isequal.md.Ch07zynb.lean.js} (67%) rename dev/assets/{tutorials_projects_addreadrm.md.BnjeiRR1.lean.js => tutorials_projects_addreadrm.md.CTAI436a.js} (98%) rename dev/assets/{tutorials_projects_addreadrm.md.BnjeiRR1.js => tutorials_projects_addreadrm.md.CTAI436a.lean.js} (98%) rename dev/assets/{tutorials_projects_files.md.YkU8y0Sr.js => tutorials_projects_files.md.DMhADvsp.js} (77%) rename dev/assets/{tutorials_projects_files.md.YkU8y0Sr.lean.js => tutorials_projects_files.md.DMhADvsp.lean.js} (77%) rename dev/assets/{tutorials_projects_setup.md.CntRng6H.js => tutorials_projects_setup.md.CRf-ByLx.js} (98%) rename dev/assets/{tutorials_projects_setup.md.CntRng6H.lean.js => tutorials_projects_setup.md.CRf-ByLx.lean.js} (98%) delete mode 100644 dev/assets/tutorials_using_isin.md.Bz1YxGv5.js delete mode 100644 dev/assets/tutorials_using_isin.md.Bz1YxGv5.lean.js create mode 100644 dev/assets/tutorials_using_isin.md.h--XpIv3.js create mode 100644 dev/assets/tutorials_using_isin.md.h--XpIv3.lean.js create mode 100644 dev/assets/tutorials_using_ison.md.Di2hutUn.js create mode 100644 dev/assets/tutorials_using_ison.md.Di2hutUn.lean.js delete mode 100644 dev/assets/tutorials_using_ison.md.Yilf_Gc1.js delete mode 100644 dev/assets/tutorials_using_ison.md.Yilf_Gc1.lean.js diff --git a/dev/404.html b/dev/404.html index 68cc486..66160e5 100644 --- a/dev/404.html +++ b/dev/404.html @@ -8,14 +8,14 @@ - +
- + \ No newline at end of file diff --git a/dev/api/addreadrm.html b/dev/api/addreadrm.html index af379d8..7318e86 100644 --- a/dev/api/addreadrm.html +++ b/dev/api/addreadrm.html @@ -8,11 +8,11 @@ - + - + - + @@ -21,27 +21,27 @@ ID :: AbstractString; path :: AbstractString = homedir(), verbose :: Bool = false -) -> geo :: GeoRegion

Extracts information of the GeoRegion with the ID ID. If no GeoRegion with this ID exists, an error is thrown.

Arguments

Keyword Arguments

Returns

source

GeoRegions.add Function
julia
add(
+) -> geo :: GeoRegion

Extracts information of the GeoRegion with the ID ID. If no GeoRegion with this ID exists, an error is thrown.

Arguments

Keyword Arguments

Returns

source

GeoRegions.add Function
julia
add(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     verbose :: Bool = false
-) -> nothing

Saves information on the GeoRegion geo to a directory specified by path.

Arguments

Keyword Arguments

source

GeoRegions.overwrite Function
julia
overwrite(
+) -> nothing

Saves information on the GeoRegion geo to a directory specified by path.

Arguments

Keyword Arguments

source

GeoRegions.overwrite Function
julia
overwrite(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     verbose :: Bool = false
-) -> nothing

Overwrites preexisting information associated with the ID geo.ID in path, with new information from the GeoRegion specified by geo.

Arguments

Keyword Arguments

source

Base.Filesystem.rm Function
julia
rm(
+) -> nothing

Overwrites preexisting information associated with the ID geo.ID in path, with new information from the GeoRegion specified by geo.

Arguments

Keyword Arguments

source

Base.Filesystem.rm Function
julia
rm(
     geo  :: GeoRegion;
     path :: AbstractString = geodir
-) -> nothing

Removes the GeoRegion geo from the custom lists specified in path. The GeoRegion must have exactly the same properties as the one in the custom list.

Arguments

Keyword Arguments

source

GeoRegions.isID Function
julia
isID(
+) -> nothing

Removes the GeoRegion geo from the custom lists specified in path. The GeoRegion must have exactly the same properties as the one in the custom list.

Arguments

Keyword Arguments

source

GeoRegions.isID Function
julia
isID(
     ID   :: AbstractString;
     path :: AbstractString = homedir(),
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

Keyword Arguments

Returns

source

GeoRegions.rmID Function
julia
rmID(
+) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

Keyword Arguments

Returns

source

GeoRegions.rmID Function
julia
rmID(
     ID :: AbstractString;
     path :: AbstractString = geodir
-) -> nothing

Removes any GeoRegion associated with the ID ID. ID must be exact.

Arguments

Keyword Arguments

source

- +) -> nothing

Removes any GeoRegion associated with the ID ID. ID must be exact.

Arguments

Keyword Arguments

source

+ \ No newline at end of file diff --git a/dev/api/create.html b/dev/api/create.html index de8134e..e746c16 100644 --- a/dev/api/create.html +++ b/dev/api/create.html @@ -8,11 +8,11 @@ - + - + - + @@ -27,7 +27,7 @@ verbose :: Bool = false, ST = String, FT = Float64 -) -> geo :: RectRegion{ST,FT}

Creates a rectilinear GeoRegion.

Arguments

Keyword Arguments

Returns

source

GeoRegions.TiltRegion Method
julia
TiltRegion(
+) -> geo :: RectRegion{ST,FT}

Creates a rectilinear GeoRegion.

Arguments

Keyword Arguments

Returns

source

GeoRegions.TiltRegion Method
julia
TiltRegion(
     ID   :: AbstractString,
     pID  :: AbstractString,
     name :: AbstractString,
@@ -41,7 +41,7 @@
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: TiltRegion{ST,FT}

Creates a tilted rectangular GeoRegion.

Arguments

Keyword Arguments

Returns

source

GeoRegions.PolyRegion Method
julia
PolyRegion(
+) -> geo :: TiltRegion{ST,FT}

Creates a tilted rectangular GeoRegion.

Arguments

Keyword Arguments

Returns

source

GeoRegions.PolyRegion Method
julia
PolyRegion(
     ID   :: AbstractString,
     pID  :: AbstractString,
     name :: AbstractString,
@@ -53,8 +53,8 @@
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: PolyRegion{ST,FT}

Creates a polygonal GeoRegion.

Arguments

Keyword Arguments

Returns

source

- +) -> geo :: PolyRegion{ST,FT}

Creates a polygonal GeoRegion.

Arguments

Keyword Arguments

Returns

source

+ \ No newline at end of file diff --git a/dev/api/isinonequal.html b/dev/api/isinonequal.html index f3ef629..8a1dd28 100644 --- a/dev/api/isinonequal.html +++ b/dev/api/isinonequal.html @@ -8,11 +8,11 @@ - + - + - + @@ -21,54 +21,44 @@ point :: Point2{<:Real}, geo :: GeoRegion; throw :: Bool = false -) -> tf :: Bool

Check if a geographical point point is within a GeoRegion defined by geo.

Arguments

Keyword Arguments

Returns

source

Base.in Method
julia
in(
+) -> tf :: Bool

Check if a geographical point point is within a GeoRegion defined by geo.

Arguments

Keyword Arguments

Returns

source

Base.in Method
julia
in(
     cgeo :: GeoRegion,
     geo  :: GeoRegion;
     n    :: Int = 100,
     throw   :: Bool = false,
     verbose :: Bool = false
-) -> tf :: Bool

Check if a child GeoRegion defined by cgeo is within another GeoRegion geo.

Arguments

Keyword Arguments

Returns

source

GeoRegions.on Method
julia
on(
-    point :: Point2{<:Real},
-    geo   :: GeoRegion;
-    throw :: Bool = false
-) -> tf :: Bool

Check if a geographical point point is on the boundary of a shape of a GeoRegion defined by geo.

Arguments

Keyword Arguments

Returns

source

GeoRegions.on Method
julia
on(
-    geo1 :: GeoRegion,
-    geo2 :: GeoRegion;
-    n    :: Int = 2,
-    throw   :: Bool = false,
-    verbose :: Bool = false
-) -> tf :: Bool

Check if the GeoRegions geo1 and geo2 have the same shape. The order of geo1 and geo2 does not matter.

Arguments

Keyword Arguments

Returns

source

Base.:== Method
julia
==(
+) -> tf :: Bool

Check if a child GeoRegion defined by cgeo is within another GeoRegion geo.

Arguments

Keyword Arguments

Returns

source

Missing docstring.

Missing docstring for `on( Point :: Point2{<:Real}, geo :: GeoRegion; throw :: Bool = false

Missing docstring.

Missing docstring for `on( cgeo :: GeoRegion, geo :: GeoRegion; n :: Int = 100, throw :: Bool = false, verbose :: Bool = false

Base.:== Method
julia
==(
     geo1 :: GeoRegion,
     geo2 :: GeoRegion,
-) -> tf :: Bool

Checks all the fields (except names and paths) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions must be of the same GeoRegion type.

The geo1.shape and geo2.shape need not be exactly the same as long as they define the same area (i.e., the points in geo2 can be a circshift version of geo1).

Arguments

Returns

source

Base.isequal Method
julia
isequal(
+) -> tf :: Bool

Checks all the fields (except names and paths) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions must be of the same GeoRegion type.

The geo1.shape and geo2.shape need not be exactly the same as long as they define the same area (i.e., the points in geo2 can be a circshift version of geo1).

Arguments

Returns

source

Base.isequal Method
julia
isequal(
     geo1 :: GeoRegion,
     geo2 :: GeoRegion;
     strict  :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks all the fields (except names) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions need not be of the same GeoRegion type as long as they have the same ID, pID and area defined by shape.

The geo1.shape and geo2.shape need not be exactly the same as long as they define exactly the same area (i.e., the points in geo2 can be a circshift() version of geo1).

Arguments

Keyword Arguments

Returns

source

GeoRegions.isgeo Method
julia
isgeo(
+) -> tf :: Bool

Checks all the fields (except names) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions need not be of the same GeoRegion type as long as they have the same ID, pID and area defined by shape.

The geo1.shape and geo2.shape need not be exactly the same as long as they define exactly the same area (i.e., the points in geo2 can be a circshift() version of geo1).

Arguments

Keyword Arguments

Returns

source

GeoRegions.isgeo Method
julia
isgeo(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     strict  :: Bool = true,
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same ID and the same field values (except name and path) as the GeoRegion geo, returns true. Otherwise, returns false or throws an error.

Arguments

Keyword Arguments

Returns

source

GeoRegions.isgeoshape Method
julia
isgeoshape(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same ID and the same field values (except name and path) as the GeoRegion geo, returns true. Otherwise, returns false or throws an error.

Arguments

Keyword Arguments

Returns

source

GeoRegions.isgeoshape Method
julia
isgeoshape(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     returnID :: Bool = true,
     verbose  :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as geo.shape, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

Keyword Arguments

Returns

source

GeoRegions.isgeoshape Method
julia
isgeoshape(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as geo.shape, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

Keyword Arguments

Returns

source

GeoRegions.isgeoshape Method
julia
isgeoshape(
     lon  :: Vector{<:Real},
     lat  :: Vector{<:Real};
     path :: AbstractString = dirname(geo.path),
     returnID :: Bool = true,
     verbose  :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as defined by the vectors lon and lat, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

Keyword Arguments

Returns

source

GeoRegions.isID Method
julia
isID(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as defined by the vectors lon and lat, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

Keyword Arguments

Returns

source

GeoRegions.isID Method
julia
isID(
     ID   :: AbstractString;
     path :: AbstractString = homedir(),
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

Keyword Arguments

Returns

source

- +) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

Keyword Arguments

Returns

source

+ \ No newline at end of file diff --git a/dev/api/project.html b/dev/api/project.html index 14855b5..e0f24d1 100644 --- a/dev/api/project.html +++ b/dev/api/project.html @@ -8,11 +8,11 @@ - + - + - + @@ -20,19 +20,19 @@
Skip to content

API for Project-Handling in GeoRegions.jl

GeoRegions.setupGeoRegions Function
julia
setupGeoRegions(;
     path :: AbstractString = pwd(),
     overwrite :: Bool = false
-) -> nothing

Setup the directory specified by path with files for custom GeoRegions. If overwrite = true, then any preexisting files are overwritten.

Keyword Arguments

  • path : The path where the template list of custom GeoRegions will be copied to. Defaults to the current working directory pwd().

  • overwrite : If template files exist in this folder, overwrite?

source

GeoRegions.deleteGeoRegions Function
julia
deleteGeoRegions(;
+) -> nothing

Setup the directory specified by path with files for custom GeoRegions. If overwrite = true, then any preexisting files are overwritten.

Keyword Arguments

  • path : The path where the template list of custom GeoRegions will be copied to. Defaults to the current working directory pwd().

  • overwrite : If template files exist in this folder, overwrite?

source

GeoRegions.deleteGeoRegions Function
julia
deleteGeoRegions(;
     path :: AbstractString = pwd()
-) -> nothing

Reset all the files containing GeoRegion information back to the default.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

source

GeoRegions.tableGeoRegions Method
julia
tableGeoRegions(
+) -> nothing

Reset all the files containing GeoRegion information back to the default.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

source

GeoRegions.tableGeoRegions Method
julia
tableGeoRegions(
     fname :: AbstractString
-) -> nothing

Display all available GeoRegions in tabular format listed in the file fname.

Arguments

  • fname : Specifies the name + path of the file containing GeoRegion information.

source

GeoRegions.readGeoRegions Function
julia
readGeoRegions(
+) -> nothing

Display all available GeoRegions in tabular format listed in the file fname.

Arguments

  • fname : Specifies the name + path of the file containing GeoRegion information.

source

GeoRegions.readGeoRegions Function
julia
readGeoRegions(
     fname :: AbstractString
-) -> gvec :: Vector{<:GeoRegion}

Extract information of GeoRegions from the file defined by fname.

Arguments

  • fname : String specifying name + path of the file containing GeoRegion information.

Returns

  • gvec : Vector containing all the GeoRegions in the file fname.

source

GeoRegions.addGeoRegions Function
julia
addGeoRegions(
+) -> gvec :: Vector{<:GeoRegion}

Extract information of GeoRegions from the file defined by fname.

Arguments

  • fname : String specifying name + path of the file containing GeoRegion information.

Returns

  • gvec : Vector containing all the GeoRegions in the file fname.

source

GeoRegions.addGeoRegions Function
julia
addGeoRegions(
     fname :: AbstractString;
     path  :: AbstractString = pwd(),
     overwrite :: Bool = false,
     verbose   :: Bool = false
-) -> nothing

Add GeoRegions from the file fname into the project directory defined by path.

Arguments

  • fname : name + path of the file containing GeoRegion information.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

  • overwrite : If true, override any custom GeoRegions that have the same IDs as those in the file fname.

source

- +) -> nothing

Add GeoRegions from the file fname into the project directory defined by path.

Arguments

Keyword Arguments

source

+ \ No newline at end of file diff --git a/dev/api/shape.html b/dev/api/shape.html index 942f566..30ebbec 100644 --- a/dev/api/shape.html +++ b/dev/api/shape.html @@ -8,11 +8,11 @@ - + - + - + @@ -20,8 +20,8 @@
Skip to content

API for Different GeoRegion Properties

GeoRegions.coordinates Function
julia
coordinates(
     geo :: GeoRegion;
     n :: Int = 1
-) -> lon :: Vector{<:Real}, lat :: Vector{<:Real}

For a given GeoRegion, create longitude and latitude vectors of the shape.

Arguments

  • geo : A GeoRegion.

  • n : The number of segments on each side of the shape.

Returns

  • lon : A vector of longitude points for the shape of the GeoRegion.

  • lat : A vector of latitude points for the shape of the GeoRegion.

source

- +) -> lon :: Vector{<:Real}, lat :: Vector{<:Real}

For a given GeoRegion, create longitude and latitude vectors of the shape.

Arguments

Returns

source

+ \ No newline at end of file diff --git a/dev/api/tables.html b/dev/api/tables.html index cd8b856..ebd18a6 100644 --- a/dev/api/tables.html +++ b/dev/api/tables.html @@ -8,11 +8,11 @@ - + - + - + @@ -23,19 +23,19 @@ custom :: Bool = true, warn :: Bool = true, crop :: Bool = false -) -> nothing

Display all available GeoRegions in tabular format.

Keyword Arguments

source

GeoRegions.tableRectRegions Function
julia
tableRectRegions(;
+) -> nothing

Display all available GeoRegions in tabular format.

Keyword Arguments

source

GeoRegions.tableRectRegions Function
julia
tableRectRegions(;
     path :: AbstractString = homedir(),
     custom :: Bool = true,
     giorgi :: Bool = false
-) -> nothing

Display all available RectRegions in tabular format.

Keyword Arguments

source

GeoRegions.tableTiltRegions Function
julia
tableTiltRegions(;
+) -> nothing

Display all available RectRegions in tabular format.

Keyword Arguments

source

GeoRegions.tableTiltRegions Function
julia
tableTiltRegions(;
     path :: AbstractString = homedir()
-) -> nothing

Display all available TiltRegions in tabular format.

Keyword Arguments

source

GeoRegions.tablePolyRegions Function
julia
tablePolyRegions(;
+) -> nothing

Display all available TiltRegions in tabular format.

Keyword Arguments

source

GeoRegions.tablePolyRegions Function
julia
tablePolyRegions(;
     path :: AbstractString = homedir(),
     custom :: Bool = true,
     srex :: Bool = false,
     ar6  :: Bool = false
-) -> nothing

Display all available PolyRegions in tabular format.

Keyword Arguments

source

- +) -> nothing

Display all available PolyRegions in tabular format.

Keyword Arguments

source

+ \ No newline at end of file diff --git a/dev/assets/agrzhea.B_4bWRB3.png b/dev/assets/agrzhea.B_4bWRB3.png new file mode 100644 index 0000000000000000000000000000000000000000..54aba5080126724248b7def325bfc7f952d16f23 GIT binary patch literal 235801 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 y()BN*&)xG|+zwIp_Ikbh!~XzD1FAqb7g_CX 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�vQX2HKZ9r?4J6)jRRhvH3du2k2=mQh+Tj-|K*6 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 literal 0 HcmV?d00001 diff --git a/dev/assets/api_addreadrm.md.BOapF7BG.js b/dev/assets/api_addreadrm.md.Bre3lcSB.js similarity index 96% rename from dev/assets/api_addreadrm.md.BOapF7BG.js rename to dev/assets/api_addreadrm.md.Bre3lcSB.js index 1f4d51d..f5f70b2 100644 --- a/dev/assets/api_addreadrm.md.BOapF7BG.js +++ b/dev/assets/api_addreadrm.md.Bre3lcSB.js @@ -1,24 +1,24 @@ -import{_ as o,c as l,j as i,a as e,G as t,a4 as n,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Adding, Reading and Removing GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/addreadrm.md","filePath":"api/addreadrm.md","lastUpdated":null}'),d={name:"api/addreadrm.md"},r={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function u(b,s,m,F,f,C){const a=h("Badge");return p(),l("div",null,[s[18]||(s[18]=i("h1",{id:"API-for-Adding,-Reading-and-Removing-GeoRegions",tabindex:"-1"},[e("API for Adding, Reading and Removing GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Adding,-Reading-and-Removing-GeoRegions","aria-label":'Permalink to "API for Adding, Reading and Removing GeoRegions {#API-for-Adding,-Reading-and-Removing-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.GeoRegion-Tuple{AbstractString}",href:"#GeoRegions.GeoRegion-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),s[1]||(s[1]=e()),t(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=n(`

julia
GeoRegion(
+import{_ as o,c as l,j as i,a as e,G as t,a4 as n,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Adding, Reading and Removing GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/addreadrm.md","filePath":"api/addreadrm.md","lastUpdated":null}'),d={name:"api/addreadrm.md"},r={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function u(m,s,b,F,f,C){const a=h("Badge");return p(),l("div",null,[s[18]||(s[18]=i("h1",{id:"API-for-Adding,-Reading-and-Removing-GeoRegions",tabindex:"-1"},[e("API for Adding, Reading and Removing GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Adding,-Reading-and-Removing-GeoRegions","aria-label":'Permalink to "API for Adding, Reading and Removing GeoRegions {#API-for-Adding,-Reading-and-Removing-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.GeoRegion-Tuple{AbstractString}",href:"#GeoRegions.GeoRegion-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),s[1]||(s[1]=e()),t(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=n(`
julia
GeoRegion(
     ID :: AbstractString;
     path    :: AbstractString = homedir(),
     verbose :: Bool = false
-) -> geo :: GeoRegion

Extracts information of the GeoRegion with the ID ID. If no GeoRegion with this ID exists, an error is thrown.

Arguments

  • ID : The ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A GeoRegion.

source

`,9))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.add",href:"#GeoRegions.add"},[i("span",{class:"jlbinding"},"GeoRegions.add")],-1)),s[4]||(s[4]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=n(`
julia
add(
+) -> geo :: GeoRegion

Extracts information of the GeoRegion with the ID ID. If no GeoRegion with this ID exists, an error is thrown.

Arguments

  • ID : The ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A GeoRegion.

source

`,9))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.add",href:"#GeoRegions.add"},[i("span",{class:"jlbinding"},"GeoRegions.add")],-1)),s[4]||(s[4]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=n(`
julia
add(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     verbose :: Bool = false
-) -> nothing

Saves information on the GeoRegion geo to a directory specified by path.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.overwrite",href:"#GeoRegions.overwrite"},[i("span",{class:"jlbinding"},"GeoRegions.overwrite")],-1)),s[7]||(s[7]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=n(`
julia
overwrite(
+) -> nothing

Saves information on the GeoRegion geo to a directory specified by path.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.overwrite",href:"#GeoRegions.overwrite"},[i("span",{class:"jlbinding"},"GeoRegions.overwrite")],-1)),s[7]||(s[7]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=n(`
julia
overwrite(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     verbose :: Bool = false
-) -> nothing

Overwrites preexisting information associated with the ID geo.ID in path, with new information from the GeoRegion specified by geo.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path, overwriting any preexisting information associated with the ID geo.ID.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Base.Filesystem.rm",href:"#Base.Filesystem.rm"},[i("span",{class:"jlbinding"},"Base.Filesystem.rm")],-1)),s[10]||(s[10]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=n(`
julia
rm(
+) -> nothing

Overwrites preexisting information associated with the ID geo.ID in path, with new information from the GeoRegion specified by geo.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path, overwriting any preexisting information associated with the ID geo.ID.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Base.Filesystem.rm",href:"#Base.Filesystem.rm"},[i("span",{class:"jlbinding"},"Base.Filesystem.rm")],-1)),s[10]||(s[10]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=n(`
julia
rm(
     geo  :: GeoRegion;
     path :: AbstractString = geodir
-) -> nothing

Removes the GeoRegion geo from the custom lists specified in path. The GeoRegion must have exactly the same properties as the one in the custom list.

Arguments

  • geo : The GeoRegion to be removed from the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

source

`,7))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.isID",href:"#GeoRegions.isID"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[13]||(s[13]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=n(`
julia
isID(
+) -> nothing

Removes the GeoRegion geo from the custom lists specified in path. The GeoRegion must have exactly the same properties as the one in the custom list.

Arguments

  • geo : The GeoRegion to be removed from the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

source

`,7))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.isID",href:"#GeoRegions.isID"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[13]||(s[13]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=n(`
julia
isID(
     ID   :: AbstractString;
     path :: AbstractString = homedir(),
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeoRegions.rmID",href:"#GeoRegions.rmID"},[i("span",{class:"jlbinding"},"GeoRegions.rmID")],-1)),s[16]||(s[16]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=n(`
julia
rmID(
+) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeoRegions.rmID",href:"#GeoRegions.rmID"},[i("span",{class:"jlbinding"},"GeoRegions.rmID")],-1)),s[16]||(s[16]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=n(`
julia
rmID(
     ID :: AbstractString;
     path :: AbstractString = geodir
-) -> nothing

Removes any GeoRegion associated with the ID ID. ID must be exact.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the home directory homedir().

source

`,7))])])}const v=o(d,[["render",u]]);export{R as __pageData,v as default}; +) -> nothing

Removes any GeoRegion associated with the ID ID. ID must be exact.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the home directory homedir().

source

`,7))])])}const v=o(d,[["render",u]]);export{R as __pageData,v as default}; diff --git a/dev/assets/api_addreadrm.md.BOapF7BG.lean.js b/dev/assets/api_addreadrm.md.Bre3lcSB.lean.js similarity index 96% rename from dev/assets/api_addreadrm.md.BOapF7BG.lean.js rename to dev/assets/api_addreadrm.md.Bre3lcSB.lean.js index 1f4d51d..f5f70b2 100644 --- a/dev/assets/api_addreadrm.md.BOapF7BG.lean.js +++ b/dev/assets/api_addreadrm.md.Bre3lcSB.lean.js @@ -1,24 +1,24 @@ -import{_ as o,c as l,j as i,a as e,G as t,a4 as n,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Adding, Reading and Removing GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/addreadrm.md","filePath":"api/addreadrm.md","lastUpdated":null}'),d={name:"api/addreadrm.md"},r={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function u(b,s,m,F,f,C){const a=h("Badge");return p(),l("div",null,[s[18]||(s[18]=i("h1",{id:"API-for-Adding,-Reading-and-Removing-GeoRegions",tabindex:"-1"},[e("API for Adding, Reading and Removing GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Adding,-Reading-and-Removing-GeoRegions","aria-label":'Permalink to "API for Adding, Reading and Removing GeoRegions {#API-for-Adding,-Reading-and-Removing-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.GeoRegion-Tuple{AbstractString}",href:"#GeoRegions.GeoRegion-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),s[1]||(s[1]=e()),t(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=n(`
julia
GeoRegion(
+import{_ as o,c as l,j as i,a as e,G as t,a4 as n,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Adding, Reading and Removing GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/addreadrm.md","filePath":"api/addreadrm.md","lastUpdated":null}'),d={name:"api/addreadrm.md"},r={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function u(m,s,b,F,f,C){const a=h("Badge");return p(),l("div",null,[s[18]||(s[18]=i("h1",{id:"API-for-Adding,-Reading-and-Removing-GeoRegions",tabindex:"-1"},[e("API for Adding, Reading and Removing GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Adding,-Reading-and-Removing-GeoRegions","aria-label":'Permalink to "API for Adding, Reading and Removing GeoRegions {#API-for-Adding,-Reading-and-Removing-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.GeoRegion-Tuple{AbstractString}",href:"#GeoRegions.GeoRegion-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),s[1]||(s[1]=e()),t(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=n(`
julia
GeoRegion(
     ID :: AbstractString;
     path    :: AbstractString = homedir(),
     verbose :: Bool = false
-) -> geo :: GeoRegion

Extracts information of the GeoRegion with the ID ID. If no GeoRegion with this ID exists, an error is thrown.

Arguments

  • ID : The ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A GeoRegion.

source

`,9))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.add",href:"#GeoRegions.add"},[i("span",{class:"jlbinding"},"GeoRegions.add")],-1)),s[4]||(s[4]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=n(`
julia
add(
+) -> geo :: GeoRegion

Extracts information of the GeoRegion with the ID ID. If no GeoRegion with this ID exists, an error is thrown.

Arguments

  • ID : The ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A GeoRegion.

source

`,9))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.add",href:"#GeoRegions.add"},[i("span",{class:"jlbinding"},"GeoRegions.add")],-1)),s[4]||(s[4]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=n(`
julia
add(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     verbose :: Bool = false
-) -> nothing

Saves information on the GeoRegion geo to a directory specified by path.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.overwrite",href:"#GeoRegions.overwrite"},[i("span",{class:"jlbinding"},"GeoRegions.overwrite")],-1)),s[7]||(s[7]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=n(`
julia
overwrite(
+) -> nothing

Saves information on the GeoRegion geo to a directory specified by path.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.overwrite",href:"#GeoRegions.overwrite"},[i("span",{class:"jlbinding"},"GeoRegions.overwrite")],-1)),s[7]||(s[7]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=n(`
julia
overwrite(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     verbose :: Bool = false
-) -> nothing

Overwrites preexisting information associated with the ID geo.ID in path, with new information from the GeoRegion specified by geo.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path, overwriting any preexisting information associated with the ID geo.ID.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Base.Filesystem.rm",href:"#Base.Filesystem.rm"},[i("span",{class:"jlbinding"},"Base.Filesystem.rm")],-1)),s[10]||(s[10]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=n(`
julia
rm(
+) -> nothing

Overwrites preexisting information associated with the ID geo.ID in path, with new information from the GeoRegion specified by geo.

Arguments

  • geo : The GeoRegion to be saved into the custom lists in path, overwriting any preexisting information associated with the ID geo.ID.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

  • verbose : Verbose logging for ease of monitoring? Default is false.

source

`,7))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Base.Filesystem.rm",href:"#Base.Filesystem.rm"},[i("span",{class:"jlbinding"},"Base.Filesystem.rm")],-1)),s[10]||(s[10]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=n(`
julia
rm(
     geo  :: GeoRegion;
     path :: AbstractString = geodir
-) -> nothing

Removes the GeoRegion geo from the custom lists specified in path. The GeoRegion must have exactly the same properties as the one in the custom list.

Arguments

  • geo : The GeoRegion to be removed from the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

source

`,7))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.isID",href:"#GeoRegions.isID"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[13]||(s[13]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=n(`
julia
isID(
+) -> nothing

Removes the GeoRegion geo from the custom lists specified in path. The GeoRegion must have exactly the same properties as the one in the custom list.

Arguments

  • geo : The GeoRegion to be removed from the custom lists in path.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the local package variable geodir.

source

`,7))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.isID",href:"#GeoRegions.isID"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[13]||(s[13]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=n(`
julia
isID(
     ID   :: AbstractString;
     path :: AbstractString = homedir(),
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeoRegions.rmID",href:"#GeoRegions.rmID"},[i("span",{class:"jlbinding"},"GeoRegions.rmID")],-1)),s[16]||(s[16]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=n(`
julia
rmID(
+) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeoRegions.rmID",href:"#GeoRegions.rmID"},[i("span",{class:"jlbinding"},"GeoRegions.rmID")],-1)),s[16]||(s[16]=e()),t(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[17]||(s[17]=n(`
julia
rmID(
     ID :: AbstractString;
     path :: AbstractString = geodir
-) -> nothing

Removes any GeoRegion associated with the ID ID. ID must be exact.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the home directory homedir().

source

`,7))])])}const v=o(d,[["render",u]]);export{R as __pageData,v as default}; +) -> nothing

Removes any GeoRegion associated with the ID ID. ID must be exact.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the home directory homedir().

source

`,7))])])}const v=o(d,[["render",u]]);export{R as __pageData,v as default}; diff --git a/dev/assets/api_create.md.DiBlGY3W.js b/dev/assets/api_create.md.D6FPTd5d.js similarity index 97% rename from dev/assets/api_create.md.DiBlGY3W.js rename to dev/assets/api_create.md.D6FPTd5d.js index c9b0361..5a62360 100644 --- a/dev/assets/api_create.md.DiBlGY3W.js +++ b/dev/assets/api_create.md.D6FPTd5d.js @@ -1,4 +1,4 @@ -import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framework.CEeYBNx8.js";const C=JSON.parse('{"title":"API for Creating GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/create.md","filePath":"api/create.md","lastUpdated":null}'),o={name:"api/create.md"},r={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function E(c,s,y,F,u,b){const e=p("Badge");return k(),h("div",null,[s[9]||(s[9]=i("h1",{id:"API-for-Creating-GeoRegions",tabindex:"-1"},[a("API for Creating GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Creating-GeoRegions","aria-label":'Permalink to "API for Creating GeoRegions {#API-for-Creating-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}",href:"#GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),s[1]||(s[1]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
RectRegion(
+import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framework.CEeYBNx8.js";const C=JSON.parse('{"title":"API for Creating GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/create.md","filePath":"api/create.md","lastUpdated":null}'),o={name:"api/create.md"},r={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function E(c,s,y,F,u,f){const e=p("Badge");return k(),h("div",null,[s[9]||(s[9]=i("h1",{id:"API-for-Creating-GeoRegions",tabindex:"-1"},[a("API for Creating GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Creating-GeoRegions","aria-label":'Permalink to "API for Creating GeoRegions {#API-for-Creating-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}",href:"#GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),s[1]||(s[1]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
RectRegion(
     ID    :: AbstractString,
     pID   :: AbstractString,
     name  :: AbstractString,
@@ -8,7 +8,7 @@ import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framewo
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: RectRegion{ST,FT}

Creates a rectilinear GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • bound : The [N,S,E,W] coordinates defining the region.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A rectilinear GeoRegion.

source

`,9))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}",href:"#GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}"},[i("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),s[4]||(s[4]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
TiltRegion(
+) -> geo :: RectRegion{ST,FT}

Creates a rectilinear GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • bound : The [N,S,E,W] coordinates defining the region.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A rectilinear GeoRegion.

source

`,9))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}",href:"#GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}"},[i("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),s[4]||(s[4]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
TiltRegion(
     ID   :: AbstractString,
     pID  :: AbstractString,
     name :: AbstractString,
@@ -22,7 +22,7 @@ import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framewo
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: TiltRegion{ST,FT}

Creates a tilted rectangular GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • X : Longitude coordinate of region centre.

  • Y : Latitude coordinate of region centre.

  • ΔX : Half-width in longitude coordinates (before tilting).

  • ΔY : Half-width in latitude coordinates (before tilting).

  • θ : Tilt of rectangular region in degrees.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A tilted rectangular GeoRegion.

source

`,9))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),s[7]||(s[7]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
PolyRegion(
+) -> geo :: TiltRegion{ST,FT}

Creates a tilted rectangular GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • X : Longitude coordinate of region centre.

  • Y : Latitude coordinate of region centre.

  • ΔX : Half-width in longitude coordinates (before tilting).

  • ΔY : Half-width in latitude coordinates (before tilting).

  • θ : Tilt of rectangular region in degrees.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A tilted rectangular GeoRegion.

source

`,9))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),s[7]||(s[7]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
PolyRegion(
     ID   :: AbstractString,
     pID  :: AbstractString,
     name :: AbstractString,
@@ -34,4 +34,4 @@ import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framewo
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: PolyRegion{ST,FT}

Creates a polygonal GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • lon : A vector containing the longitude points.

  • lat : A vector containing the latitude points.

Keyword Arguments

  • join : If true, if the first and last coordinate points do not match, append the first coordinate again to close the shape.

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : If true, verbose logging for ease of monitoring. Default is false.

Returns

  • geo : A polygonal GeoRegion.

source

`,9))])])}const A=l(o,[["render",E]]);export{C as __pageData,A as default}; +) -> geo :: PolyRegion{ST,FT}

Creates a polygonal GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • lon : A vector containing the longitude points.

  • lat : A vector containing the latitude points.

Keyword Arguments

  • join : If true, if the first and last coordinate points do not match, append the first coordinate again to close the shape.

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : If true, verbose logging for ease of monitoring. Default is false.

Returns

  • geo : A polygonal GeoRegion.

source

`,9))])])}const A=l(o,[["render",E]]);export{C as __pageData,A as default}; diff --git a/dev/assets/api_create.md.DiBlGY3W.lean.js b/dev/assets/api_create.md.D6FPTd5d.lean.js similarity index 97% rename from dev/assets/api_create.md.DiBlGY3W.lean.js rename to dev/assets/api_create.md.D6FPTd5d.lean.js index c9b0361..5a62360 100644 --- a/dev/assets/api_create.md.DiBlGY3W.lean.js +++ b/dev/assets/api_create.md.D6FPTd5d.lean.js @@ -1,4 +1,4 @@ -import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framework.CEeYBNx8.js";const C=JSON.parse('{"title":"API for Creating GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/create.md","filePath":"api/create.md","lastUpdated":null}'),o={name:"api/create.md"},r={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function E(c,s,y,F,u,b){const e=p("Badge");return k(),h("div",null,[s[9]||(s[9]=i("h1",{id:"API-for-Creating-GeoRegions",tabindex:"-1"},[a("API for Creating GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Creating-GeoRegions","aria-label":'Permalink to "API for Creating GeoRegions {#API-for-Creating-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}",href:"#GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),s[1]||(s[1]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
RectRegion(
+import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framework.CEeYBNx8.js";const C=JSON.parse('{"title":"API for Creating GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"api/create.md","filePath":"api/create.md","lastUpdated":null}'),o={name:"api/create.md"},r={class:"jldocstring custom-block",open:""},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""};function E(c,s,y,F,u,f){const e=p("Badge");return k(),h("div",null,[s[9]||(s[9]=i("h1",{id:"API-for-Creating-GeoRegions",tabindex:"-1"},[a("API for Creating GeoRegions "),i("a",{class:"header-anchor",href:"#API-for-Creating-GeoRegions","aria-label":'Permalink to "API for Creating GeoRegions {#API-for-Creating-GeoRegions}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}",href:"#GeoRegions.RectRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),s[1]||(s[1]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
RectRegion(
     ID    :: AbstractString,
     pID   :: AbstractString,
     name  :: AbstractString,
@@ -8,7 +8,7 @@ import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framewo
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: RectRegion{ST,FT}

Creates a rectilinear GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • bound : The [N,S,E,W] coordinates defining the region.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A rectilinear GeoRegion.

source

`,9))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}",href:"#GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}"},[i("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),s[4]||(s[4]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
TiltRegion(
+) -> geo :: RectRegion{ST,FT}

Creates a rectilinear GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • bound : The [N,S,E,W] coordinates defining the region.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A rectilinear GeoRegion.

source

`,9))]),i("details",d,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}",href:"#GeoRegions.TiltRegion-Tuple{AbstractString, AbstractString, AbstractString, Vararg{Real, 5}}"},[i("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),s[4]||(s[4]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
TiltRegion(
     ID   :: AbstractString,
     pID  :: AbstractString,
     name :: AbstractString,
@@ -22,7 +22,7 @@ import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framewo
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: TiltRegion{ST,FT}

Creates a tilted rectangular GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • X : Longitude coordinate of region centre.

  • Y : Latitude coordinate of region centre.

  • ΔX : Half-width in longitude coordinates (before tilting).

  • ΔY : Half-width in latitude coordinates (before tilting).

  • θ : Tilt of rectangular region in degrees.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A tilted rectangular GeoRegion.

source

`,9))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),s[7]||(s[7]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
PolyRegion(
+) -> geo :: TiltRegion{ST,FT}

Creates a tilted rectangular GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • X : Longitude coordinate of region centre.

  • Y : Latitude coordinate of region centre.

  • ΔX : Half-width in longitude coordinates (before tilting).

  • ΔY : Half-width in latitude coordinates (before tilting).

  • θ : Tilt of rectangular region in degrees.

Keyword Arguments

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • geo : A tilted rectangular GeoRegion.

source

`,9))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.PolyRegion-Tuple{AbstractString, AbstractString, AbstractString, Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),s[7]||(s[7]=a()),n(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
PolyRegion(
     ID   :: AbstractString,
     pID  :: AbstractString,
     name :: AbstractString,
@@ -34,4 +34,4 @@ import{_ as l,c as h,j as i,a,G as n,a4 as t,B as p,o as k}from"./chunks/framewo
     verbose :: Bool = false,
     ST = String,
     FT = Float64
-) -> geo :: PolyRegion{ST,FT}

Creates a polygonal GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • lon : A vector containing the longitude points.

  • lat : A vector containing the latitude points.

Keyword Arguments

  • join : If true, if the first and last coordinate points do not match, append the first coordinate again to close the shape.

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : If true, verbose logging for ease of monitoring. Default is false.

Returns

  • geo : A polygonal GeoRegion.

source

`,9))])])}const A=l(o,[["render",E]]);export{C as __pageData,A as default}; +) -> geo :: PolyRegion{ST,FT}

Creates a polygonal GeoRegion.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is already in use, then an error will be thrown.

  • pID : The ID of the parent GeoRegion where information can be extracted from.

  • name : A name for the GeoRegion (meta information, can be used in Logging).

  • lon : A vector containing the longitude points.

  • lat : A vector containing the latitude points.

Keyword Arguments

  • join : If true, if the first and last coordinate points do not match, append the first coordinate again to close the shape.

  • save : If true, save the GeoRegion into the list of custom GeoRegions in the path specified by path.

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • verbose : If true, verbose logging for ease of monitoring. Default is false.

Returns

  • geo : A polygonal GeoRegion.

source

`,9))])])}const A=l(o,[["render",E]]);export{C as __pageData,A as default}; diff --git a/dev/assets/api_isinonequal.md.B_kVQHC3.js b/dev/assets/api_isinonequal.md.vujw6c_j.js similarity index 70% rename from dev/assets/api_isinonequal.md.B_kVQHC3.js rename to dev/assets/api_isinonequal.md.vujw6c_j.js index 528022a..26c2040 100644 --- a/dev/assets/api_isinonequal.md.B_kVQHC3.js +++ b/dev/assets/api_isinonequal.md.vujw6c_j.js @@ -1,51 +1,41 @@ -import{_ as o,c as l,j as i,a as e,G as n,a4 as t,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const j=JSON.parse('{"title":"API for Is it in/on a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"api/isinonequal.md","filePath":"api/isinonequal.md","lastUpdated":null}'),d={name:"api/isinonequal.md"},k={class:"jldocstring custom-block",open:""},r={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""};function C(m,s,R,A,B,G){const a=h("Badge");return p(),l("div",null,[s[30]||(s[30]=i("h1",{id:"API-for-Is-it-in/on-a-GeoRegion?",tabindex:"-1"},[e("API for Is it in/on a GeoRegion? "),i("a",{class:"header-anchor",href:"#API-for-Is-it-in/on-a-GeoRegion?","aria-label":'Permalink to "API for Is it in/on a GeoRegion? {#API-for-Is-it-in/on-a-GeoRegion?}"'},"​")],-1)),i("details",k,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.in-Tuple{Point2{<:Real}, GeoRegion}",href:"#Base.in-Tuple{Point2{<:Real}, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
in(
+import{_ as o,c as l,j as i,a as e,G as n,a4 as t,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const D=JSON.parse('{"title":"API for Is it in/on a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"api/isinonequal.md","filePath":"api/isinonequal.md","lastUpdated":null}'),d={name:"api/isinonequal.md"},r={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""};function F(b,s,C,m,R,A){const a=h("Badge");return p(),l("div",null,[s[24]||(s[24]=i("h1",{id:"API-for-Is-it-in/on-a-GeoRegion?",tabindex:"-1"},[e("API for Is it in/on a GeoRegion? "),i("a",{class:"header-anchor",href:"#API-for-Is-it-in/on-a-GeoRegion?","aria-label":'Permalink to "API for Is it in/on a GeoRegion? {#API-for-Is-it-in/on-a-GeoRegion?}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.in-Tuple{Point2{<:Real}, GeoRegion}",href:"#Base.in-Tuple{Point2{<:Real}, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
in(
     point :: Point2{<:Real},
     geo   :: GeoRegion;
     throw :: Bool = false
-) -> tf :: Bool

Check if a geographical point point is within a GeoRegion defined by geo.

Arguments

  • point : A geographical point of Type Point. Pass Point(plon,plat), where plon and plat are the longitude and latitudes of the point.

  • geo : The GeoRegion struct container.

Keyword Arguments

  • throw : If true, then if point is not within geo, an error is thrown and the program stops running.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",r,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Base.in-Tuple{GeoRegion, GeoRegion}",href:"#Base.in-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
in(
+) -> tf :: Bool

Check if a geographical point point is within a GeoRegion defined by geo.

Arguments

  • point : A geographical point of Type Point. Pass Point(plon,plat), where plon and plat are the longitude and latitudes of the point.

  • geo : The GeoRegion struct container.

Keyword Arguments

  • throw : If true, then if point is not within geo, an error is thrown and the program stops running.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Base.in-Tuple{GeoRegion, GeoRegion}",href:"#Base.in-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
in(
     cgeo :: GeoRegion,
     geo  :: GeoRegion;
     n    :: Int = 100,
     throw   :: Bool = false,
     verbose :: Bool = false
-) -> tf :: Bool

Check if a child GeoRegion defined by cgeo is within another GeoRegion geo.

Arguments

  • cgeo : A GeoRegion that we postulate to be a "child", or a subset of the GeoRegion defined by geo.

  • geo : A GeoRegion that we postulate to be a "parent", or containing the GeoRegion defined by cgeo.

Keyword Arguments

  • n : The number of segments to split each of the GeoRegions into. Default is 100.

  • throw : If true, then if cgeo is not within geo, an error is thrown and the program stops running.

  • verbose : If true, print logs to screen.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.on-Tuple{Point2{<:Real}, GeoRegion}",href:"#GeoRegions.on-Tuple{Point2{<:Real}, GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.on")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
on(
-    point :: Point2{<:Real},
-    geo   :: GeoRegion;
-    throw :: Bool = false
-) -> tf :: Bool

Check if a geographical point point is on the boundary of a shape of a GeoRegion defined by geo.

Arguments

  • point : A geographical point of Type Point. Pass Point(plon,plat), where plon and plat are the longitude and latitudes of the point.

  • geo : The GeoRegion struct container.

Keyword Arguments

  • throw : If true, then if point is not within geo, an error is thrown and the program stops running.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.on-Tuple{GeoRegion, GeoRegion}",href:"#GeoRegions.on-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.on")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=t(`
julia
on(
-    geo1 :: GeoRegion,
-    geo2 :: GeoRegion;
-    n    :: Int = 2,
-    throw   :: Bool = false,
-    verbose :: Bool = false
-) -> tf :: Bool

Check if the GeoRegions geo1 and geo2 have the same shape. The order of geo1 and geo2 does not matter.

Arguments

  • geo1 : The first GeoRegion

  • geo2 : The second GeoRegion

Keyword Arguments

  • n : The number of segments to split each of the GeoRegions into. Default is 2.

  • throw : If true, then if geo1 does not have the same shape as geo2, an error is thrown and the program stops running.

  • verbose : If true, print logs to screen.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Base.:==-Tuple{GeoRegion, GeoRegion}",href:"#Base.:==-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.:==")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=t(`
julia
==(
+) -> tf :: Bool

Check if a child GeoRegion defined by cgeo is within another GeoRegion geo.

Arguments

  • cgeo : A GeoRegion that we postulate to be a "child", or a subset of the GeoRegion defined by geo.

  • geo : A GeoRegion that we postulate to be a "parent", or containing the GeoRegion defined by cgeo.

Keyword Arguments

  • n : The number of segments to split each of the GeoRegions into. Default is 100.

  • throw : If true, then if cgeo is not within geo, an error is thrown and the program stops running.

  • verbose : If true, print logs to screen.

Returns

  • tf : A true/false boolean.

source

`,9))]),s[25]||(s[25]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Missing docstring."),i("p",null,"Missing docstring for `on( Point :: Point2{<:Real}, geo :: GeoRegion; throw :: Bool = false")],-1)),s[26]||(s[26]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Missing docstring."),i("p",null,"Missing docstring for `on( cgeo :: GeoRegion, geo :: GeoRegion; n :: Int = 100, throw :: Bool = false, verbose :: Bool = false")],-1)),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"Base.:==-Tuple{GeoRegion, GeoRegion}",href:"#Base.:==-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.:==")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
==(
     geo1 :: GeoRegion,
     geo2 :: GeoRegion,
-) -> tf :: Bool

Checks all the fields (except names and paths) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions must be of the same GeoRegion type.

The geo1.shape and geo2.shape need not be exactly the same as long as they define the same area (i.e., the points in geo2 can be a circshift version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Returns

  • tf : A true/false boolean.

source

`,8))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Base.isequal-Tuple{RectRegion, RectRegion}",href:"#Base.isequal-Tuple{RectRegion, RectRegion}"},[i("span",{class:"jlbinding"},"Base.isequal")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=t(`
julia
isequal(
+) -> tf :: Bool

Checks all the fields (except names and paths) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions must be of the same GeoRegion type.

The geo1.shape and geo2.shape need not be exactly the same as long as they define the same area (i.e., the points in geo2 can be a circshift version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Returns

  • tf : A true/false boolean.

source

`,8))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Base.isequal-Tuple{RectRegion, RectRegion}",href:"#Base.isequal-Tuple{RectRegion, RectRegion}"},[i("span",{class:"jlbinding"},"Base.isequal")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=t(`
julia
isequal(
     geo1 :: GeoRegion,
     geo2 :: GeoRegion;
     strict  :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks all the fields (except names) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions need not be of the same GeoRegion type as long as they have the same ID, pID and area defined by shape.

The geo1.shape and geo2.shape need not be exactly the same as long as they define exactly the same area (i.e., the points in geo2 can be a circshift() version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Keyword Arguments

  • strict : If true (which is default), geo1 and geo2 must be of the same GeoRegion type (e.g., a RectRegion ≠ PolyRegion).

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,10))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeoRegions.isgeo-Tuple{GeoRegion}",href:"#GeoRegions.isgeo-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeo")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=t(`
julia
isgeo(
+) -> tf :: Bool

Checks all the fields (except names) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions need not be of the same GeoRegion type as long as they have the same ID, pID and area defined by shape.

The geo1.shape and geo2.shape need not be exactly the same as long as they define exactly the same area (i.e., the points in geo2 can be a circshift() version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Keyword Arguments

  • strict : If true (which is default), geo1 and geo2 must be of the same GeoRegion type (e.g., a RectRegion ≠ PolyRegion).

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,10))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.isgeo-Tuple{GeoRegion}",href:"#GeoRegions.isgeo-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeo")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=t(`
julia
isgeo(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     strict  :: Bool = true,
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same ID and the same field values (except name and path) as the GeoRegion geo, returns true. Otherwise, returns false or throws an error.

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the directory geo.path.

  • strict : If true (which is default), check to see if all fields are equivalent except for name and path.

  • throw : If true, then throws an error if there is no GeoRegion defined in path with the same characteristics or field values as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",F,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeoRegions.isgeoshape-Tuple{GeoRegion}",href:"#GeoRegions.isgeoshape-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[23]||(s[23]=t(`
julia
isgeoshape(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same ID and the same field values (except name and path) as the GeoRegion geo, returns true. Otherwise, returns false or throws an error.

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the directory geo.path.

  • strict : If true (which is default), check to see if all fields are equivalent except for name and path.

  • throw : If true, then throws an error if there is no GeoRegion defined in path with the same characteristics or field values as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeoRegions.isgeoshape-Tuple{GeoRegion}",href:"#GeoRegions.isgeoshape-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=t(`
julia
isgeoshape(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     returnID :: Bool = true,
     verbose  :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as geo.shape, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory geo.path.

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",f,[i("summary",null,[s[24]||(s[24]=i("a",{id:"GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[25]||(s[25]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[26]||(s[26]=t(`
julia
isgeoshape(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as geo.shape, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory geo.path.

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=t(`
julia
isgeoshape(
     lon  :: Vector{<:Real},
     lat  :: Vector{<:Real};
     path :: AbstractString = dirname(geo.path),
     returnID :: Bool = true,
     verbose  :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as defined by the vectors lon and lat, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • lon : Vector of longitude points.

  • lat : Vector of latitude points.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory homedir().

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",b,[i("summary",null,[s[27]||(s[27]=i("a",{id:"GeoRegions.isID-Tuple{AbstractString}",href:"#GeoRegions.isID-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[28]||(s[28]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[29]||(s[29]=t(`
julia
isID(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as defined by the vectors lon and lat, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • lon : Vector of longitude points.

  • lat : Vector of latitude points.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory homedir().

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",f,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeoRegions.isID-Tuple{AbstractString}",href:"#GeoRegions.isID-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[23]||(s[23]=t(`
julia
isID(
     ID   :: AbstractString;
     path :: AbstractString = homedir(),
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))])])}const v=o(d,[["render",C]]);export{j as __pageData,v as default}; +) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))])])}const G=o(d,[["render",F]]);export{D as __pageData,G as default}; diff --git a/dev/assets/api_isinonequal.md.B_kVQHC3.lean.js b/dev/assets/api_isinonequal.md.vujw6c_j.lean.js similarity index 70% rename from dev/assets/api_isinonequal.md.B_kVQHC3.lean.js rename to dev/assets/api_isinonequal.md.vujw6c_j.lean.js index 528022a..26c2040 100644 --- a/dev/assets/api_isinonequal.md.B_kVQHC3.lean.js +++ b/dev/assets/api_isinonequal.md.vujw6c_j.lean.js @@ -1,51 +1,41 @@ -import{_ as o,c as l,j as i,a as e,G as n,a4 as t,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const j=JSON.parse('{"title":"API for Is it in/on a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"api/isinonequal.md","filePath":"api/isinonequal.md","lastUpdated":null}'),d={name:"api/isinonequal.md"},k={class:"jldocstring custom-block",open:""},r={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""};function C(m,s,R,A,B,G){const a=h("Badge");return p(),l("div",null,[s[30]||(s[30]=i("h1",{id:"API-for-Is-it-in/on-a-GeoRegion?",tabindex:"-1"},[e("API for Is it in/on a GeoRegion? "),i("a",{class:"header-anchor",href:"#API-for-Is-it-in/on-a-GeoRegion?","aria-label":'Permalink to "API for Is it in/on a GeoRegion? {#API-for-Is-it-in/on-a-GeoRegion?}"'},"​")],-1)),i("details",k,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.in-Tuple{Point2{<:Real}, GeoRegion}",href:"#Base.in-Tuple{Point2{<:Real}, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
in(
+import{_ as o,c as l,j as i,a as e,G as n,a4 as t,B as h,o as p}from"./chunks/framework.CEeYBNx8.js";const D=JSON.parse('{"title":"API for Is it in/on a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"api/isinonequal.md","filePath":"api/isinonequal.md","lastUpdated":null}'),d={name:"api/isinonequal.md"},r={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""};function F(b,s,C,m,R,A){const a=h("Badge");return p(),l("div",null,[s[24]||(s[24]=i("h1",{id:"API-for-Is-it-in/on-a-GeoRegion?",tabindex:"-1"},[e("API for Is it in/on a GeoRegion? "),i("a",{class:"header-anchor",href:"#API-for-Is-it-in/on-a-GeoRegion?","aria-label":'Permalink to "API for Is it in/on a GeoRegion? {#API-for-Is-it-in/on-a-GeoRegion?}"'},"​")],-1)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.in-Tuple{Point2{<:Real}, GeoRegion}",href:"#Base.in-Tuple{Point2{<:Real}, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
in(
     point :: Point2{<:Real},
     geo   :: GeoRegion;
     throw :: Bool = false
-) -> tf :: Bool

Check if a geographical point point is within a GeoRegion defined by geo.

Arguments

  • point : A geographical point of Type Point. Pass Point(plon,plat), where plon and plat are the longitude and latitudes of the point.

  • geo : The GeoRegion struct container.

Keyword Arguments

  • throw : If true, then if point is not within geo, an error is thrown and the program stops running.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",r,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Base.in-Tuple{GeoRegion, GeoRegion}",href:"#Base.in-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
in(
+) -> tf :: Bool

Check if a geographical point point is within a GeoRegion defined by geo.

Arguments

  • point : A geographical point of Type Point. Pass Point(plon,plat), where plon and plat are the longitude and latitudes of the point.

  • geo : The GeoRegion struct container.

Keyword Arguments

  • throw : If true, then if point is not within geo, an error is thrown and the program stops running.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Base.in-Tuple{GeoRegion, GeoRegion}",href:"#Base.in-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.in")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=t(`
julia
in(
     cgeo :: GeoRegion,
     geo  :: GeoRegion;
     n    :: Int = 100,
     throw   :: Bool = false,
     verbose :: Bool = false
-) -> tf :: Bool

Check if a child GeoRegion defined by cgeo is within another GeoRegion geo.

Arguments

  • cgeo : A GeoRegion that we postulate to be a "child", or a subset of the GeoRegion defined by geo.

  • geo : A GeoRegion that we postulate to be a "parent", or containing the GeoRegion defined by cgeo.

Keyword Arguments

  • n : The number of segments to split each of the GeoRegions into. Default is 100.

  • throw : If true, then if cgeo is not within geo, an error is thrown and the program stops running.

  • verbose : If true, print logs to screen.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.on-Tuple{Point2{<:Real}, GeoRegion}",href:"#GeoRegions.on-Tuple{Point2{<:Real}, GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.on")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
on(
-    point :: Point2{<:Real},
-    geo   :: GeoRegion;
-    throw :: Bool = false
-) -> tf :: Bool

Check if a geographical point point is on the boundary of a shape of a GeoRegion defined by geo.

Arguments

  • point : A geographical point of Type Point. Pass Point(plon,plat), where plon and plat are the longitude and latitudes of the point.

  • geo : The GeoRegion struct container.

Keyword Arguments

  • throw : If true, then if point is not within geo, an error is thrown and the program stops running.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.on-Tuple{GeoRegion, GeoRegion}",href:"#GeoRegions.on-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.on")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=t(`
julia
on(
-    geo1 :: GeoRegion,
-    geo2 :: GeoRegion;
-    n    :: Int = 2,
-    throw   :: Bool = false,
-    verbose :: Bool = false
-) -> tf :: Bool

Check if the GeoRegions geo1 and geo2 have the same shape. The order of geo1 and geo2 does not matter.

Arguments

  • geo1 : The first GeoRegion

  • geo2 : The second GeoRegion

Keyword Arguments

  • n : The number of segments to split each of the GeoRegions into. Default is 2.

  • throw : If true, then if geo1 does not have the same shape as geo2, an error is thrown and the program stops running.

  • verbose : If true, print logs to screen.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"Base.:==-Tuple{GeoRegion, GeoRegion}",href:"#Base.:==-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.:==")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=t(`
julia
==(
+) -> tf :: Bool

Check if a child GeoRegion defined by cgeo is within another GeoRegion geo.

Arguments

  • cgeo : A GeoRegion that we postulate to be a "child", or a subset of the GeoRegion defined by geo.

  • geo : A GeoRegion that we postulate to be a "parent", or containing the GeoRegion defined by cgeo.

Keyword Arguments

  • n : The number of segments to split each of the GeoRegions into. Default is 100.

  • throw : If true, then if cgeo is not within geo, an error is thrown and the program stops running.

  • verbose : If true, print logs to screen.

Returns

  • tf : A true/false boolean.

source

`,9))]),s[25]||(s[25]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Missing docstring."),i("p",null,"Missing docstring for `on( Point :: Point2{<:Real}, geo :: GeoRegion; throw :: Bool = false")],-1)),s[26]||(s[26]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Missing docstring."),i("p",null,"Missing docstring for `on( cgeo :: GeoRegion, geo :: GeoRegion; n :: Int = 100, throw :: Bool = false, verbose :: Bool = false")],-1)),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"Base.:==-Tuple{GeoRegion, GeoRegion}",href:"#Base.:==-Tuple{GeoRegion, GeoRegion}"},[i("span",{class:"jlbinding"},"Base.:==")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
==(
     geo1 :: GeoRegion,
     geo2 :: GeoRegion,
-) -> tf :: Bool

Checks all the fields (except names and paths) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions must be of the same GeoRegion type.

The geo1.shape and geo2.shape need not be exactly the same as long as they define the same area (i.e., the points in geo2 can be a circshift version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Returns

  • tf : A true/false boolean.

source

`,8))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"Base.isequal-Tuple{RectRegion, RectRegion}",href:"#Base.isequal-Tuple{RectRegion, RectRegion}"},[i("span",{class:"jlbinding"},"Base.isequal")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=t(`
julia
isequal(
+) -> tf :: Bool

Checks all the fields (except names and paths) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions must be of the same GeoRegion type.

The geo1.shape and geo2.shape need not be exactly the same as long as they define the same area (i.e., the points in geo2 can be a circshift version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Returns

  • tf : A true/false boolean.

source

`,8))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"Base.isequal-Tuple{RectRegion, RectRegion}",href:"#Base.isequal-Tuple{RectRegion, RectRegion}"},[i("span",{class:"jlbinding"},"Base.isequal")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=t(`
julia
isequal(
     geo1 :: GeoRegion,
     geo2 :: GeoRegion;
     strict  :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks all the fields (except names) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions need not be of the same GeoRegion type as long as they have the same ID, pID and area defined by shape.

The geo1.shape and geo2.shape need not be exactly the same as long as they define exactly the same area (i.e., the points in geo2 can be a circshift() version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Keyword Arguments

  • strict : If true (which is default), geo1 and geo2 must be of the same GeoRegion type (e.g., a RectRegion ≠ PolyRegion).

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,10))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeoRegions.isgeo-Tuple{GeoRegion}",href:"#GeoRegions.isgeo-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeo")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=t(`
julia
isgeo(
+) -> tf :: Bool

Checks all the fields (except names) of two different GeoRegions in order to determine if they are exactly the same. The GeoRegions need not be of the same GeoRegion type as long as they have the same ID, pID and area defined by shape.

The geo1.shape and geo2.shape need not be exactly the same as long as they define exactly the same area (i.e., the points in geo2 can be a circshift() version of geo1).

Arguments

  • geo1 : The first GeoRegion.

  • geo2 : The second GeoRegion.

Keyword Arguments

  • strict : If true (which is default), geo1 and geo2 must be of the same GeoRegion type (e.g., a RectRegion ≠ PolyRegion).

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,10))]),i("details",E,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.isgeo-Tuple{GeoRegion}",href:"#GeoRegions.isgeo-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeo")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=t(`
julia
isgeo(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     strict  :: Bool = true,
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same ID and the same field values (except name and path) as the GeoRegion geo, returns true. Otherwise, returns false or throws an error.

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the directory geo.path.

  • strict : If true (which is default), check to see if all fields are equivalent except for name and path.

  • throw : If true, then throws an error if there is no GeoRegion defined in path with the same characteristics or field values as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",F,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeoRegions.isgeoshape-Tuple{GeoRegion}",href:"#GeoRegions.isgeoshape-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[23]||(s[23]=t(`
julia
isgeoshape(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same ID and the same field values (except name and path) as the GeoRegion geo, returns true. Otherwise, returns false or throws an error.

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the directory geo.path.

  • strict : If true (which is default), check to see if all fields are equivalent except for name and path.

  • throw : If true, then throws an error if there is no GeoRegion defined in path with the same characteristics or field values as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",y,[i("summary",null,[s[15]||(s[15]=i("a",{id:"GeoRegions.isgeoshape-Tuple{GeoRegion}",href:"#GeoRegions.isgeoshape-Tuple{GeoRegion}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=t(`
julia
isgeoshape(
     geo  :: GeoRegion;
     path :: AbstractString = dirname(geo.path),
     returnID :: Bool = true,
     verbose  :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as geo.shape, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory geo.path.

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",f,[i("summary",null,[s[24]||(s[24]=i("a",{id:"GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[25]||(s[25]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[26]||(s[26]=t(`
julia
isgeoshape(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as geo.shape, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • geo : The GeoRegion in question.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory geo.path.

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",u,[i("summary",null,[s[18]||(s[18]=i("a",{id:"GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}",href:"#GeoRegions.isgeoshape-Tuple{Vector{<:Real}, Vector{<:Real}}"},[i("span",{class:"jlbinding"},"GeoRegions.isgeoshape")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=t(`
julia
isgeoshape(
     lon  :: Vector{<:Real},
     lat  :: Vector{<:Real};
     path :: AbstractString = dirname(geo.path),
     returnID :: Bool = true,
     verbose  :: Bool = false
-) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as defined by the vectors lon and lat, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • lon : Vector of longitude points.

  • lat : Vector of latitude points.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory homedir().

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",b,[i("summary",null,[s[27]||(s[27]=i("a",{id:"GeoRegions.isID-Tuple{AbstractString}",href:"#GeoRegions.isID-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[28]||(s[28]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[29]||(s[29]=t(`
julia
isID(
+) -> tf :: Bool

Checks all the GeoRegions defined in the project determined by path. If there exists a GeoRegion with the same shape as defined by the vectors lon and lat, returns true by default, or otherwise, if returnID is true, it will return the ID. If there is no GeoRegion with the same shape, then either returns a false or throws and error depending on throw

Arguments

  • lon : Vector of longitude points.

  • lat : Vector of latitude points.

Keyword Arguments

  • path : The path where GeoRegions will be retrieved from and compared against. Defaults to the directory homedir().

  • returnID : If true, then returns the ID of the GeoRegion in path with the same shape as geo.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))]),i("details",f,[i("summary",null,[s[21]||(s[21]=i("a",{id:"GeoRegions.isID-Tuple{AbstractString}",href:"#GeoRegions.isID-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.isID")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[23]||(s[23]=t(`
julia
isID(
     ID   :: AbstractString;
     path :: AbstractString = homedir(),
     throw   :: Bool = true,
     verbose :: Bool = false
-) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))])])}const v=o(d,[["render",C]]);export{j as __pageData,v as default}; +) -> tf :: Bool

Checks if there is a GeoRegion, that exists in the custom lists defined in path, with the ID ID.

Arguments

  • ID : The keyword ID that will be used to identify the GeoRegion. If the ID is not valid (i.e. not being used), then an error will be thrown.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current directory pwd().

  • throw : If true, then throws an error if ID is not a valid GeoRegion identifier instead of returning the Boolean tf.

  • verbose : Verbose logging for ease of monitoring? Default is false.

Returns

  • tf : A true/false boolean.

source

`,9))])])}const G=o(d,[["render",F]]);export{D as __pageData,G as default}; diff --git a/dev/assets/api_project.md.CxN5HGcY.js b/dev/assets/api_project.md.rRFXlQAq.js similarity index 88% rename from dev/assets/api_project.md.CxN5HGcY.js rename to dev/assets/api_project.md.rRFXlQAq.js index ffa4e2c..66ec352 100644 --- a/dev/assets/api_project.md.CxN5HGcY.js +++ b/dev/assets/api_project.md.rRFXlQAq.js @@ -1,15 +1,15 @@ -import{_ as o,c as l,j as i,a as e,G as n,a4 as t,B as p,o as r}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Project-Handling in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/project.md","filePath":"api/project.md","lastUpdated":null}'),h={name:"api/project.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function y(E,s,b,f,m,F){const a=p("Badge");return r(),l("div",null,[s[15]||(s[15]=i("h1",{id:"API-for-Project-Handling-in-GeoRegions.jl",tabindex:"-1"},[e("API for Project-Handling in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Project-Handling-in-GeoRegions.jl","aria-label":'Permalink to "API for Project-Handling in GeoRegions.jl {#API-for-Project-Handling-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.setupGeoRegions",href:"#GeoRegions.setupGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.setupGeoRegions")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=t(`
julia
setupGeoRegions(;
+import{_ as o,c as l,j as i,a as e,G as t,a4 as a,B as p,o as r}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Project-Handling in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/project.md","filePath":"api/project.md","lastUpdated":null}'),h={name:"api/project.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function y(E,s,f,b,m,F){const n=p("Badge");return r(),l("div",null,[s[15]||(s[15]=i("h1",{id:"API-for-Project-Handling-in-GeoRegions.jl",tabindex:"-1"},[e("API for Project-Handling in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Project-Handling-in-GeoRegions.jl","aria-label":'Permalink to "API for Project-Handling in GeoRegions.jl {#API-for-Project-Handling-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.setupGeoRegions",href:"#GeoRegions.setupGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.setupGeoRegions")],-1)),s[1]||(s[1]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
julia
setupGeoRegions(;
     path :: AbstractString = pwd(),
     overwrite :: Bool = false
-) -> nothing

Setup the directory specified by path with files for custom GeoRegions. If overwrite = true, then any preexisting files are overwritten.

Keyword Arguments

  • path : The path where the template list of custom GeoRegions will be copied to. Defaults to the current working directory pwd().

  • overwrite : If template files exist in this folder, overwrite?

source

`,5))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.deleteGeoRegions",href:"#GeoRegions.deleteGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.deleteGeoRegions")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
julia
deleteGeoRegions(;
+) -> nothing

Setup the directory specified by path with files for custom GeoRegions. If overwrite = true, then any preexisting files are overwritten.

Keyword Arguments

  • path : The path where the template list of custom GeoRegions will be copied to. Defaults to the current working directory pwd().

  • overwrite : If template files exist in this folder, overwrite?

source

`,5))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.deleteGeoRegions",href:"#GeoRegions.deleteGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.deleteGeoRegions")],-1)),s[4]||(s[4]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a(`
julia
deleteGeoRegions(;
     path :: AbstractString = pwd()
-) -> nothing

Reset all the files containing GeoRegion information back to the default.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

source

`,5))]),i("details",k,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{AbstractString}",href:"#GeoRegions.tableGeoRegions-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
tableGeoRegions(
+) -> nothing

Reset all the files containing GeoRegion information back to the default.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

source

`,5))]),i("details",k,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{AbstractString}",href:"#GeoRegions.tableGeoRegions-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[7]||(s[7]=e()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=a(`
julia
tableGeoRegions(
     fname :: AbstractString
-) -> nothing

Display all available GeoRegions in tabular format listed in the file fname.

Arguments

  • fname : Specifies the name + path of the file containing GeoRegion information.

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.readGeoRegions",href:"#GeoRegions.readGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.readGeoRegions")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t(`
julia
readGeoRegions(
+) -> nothing

Display all available GeoRegions in tabular format listed in the file fname.

Arguments

  • fname : Specifies the name + path of the file containing GeoRegion information.

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.readGeoRegions",href:"#GeoRegions.readGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.readGeoRegions")],-1)),s[10]||(s[10]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a(`
julia
readGeoRegions(
     fname :: AbstractString
-) -> gvec :: Vector{<:GeoRegion}

Extract information of GeoRegions from the file defined by fname.

Arguments

  • fname : String specifying name + path of the file containing GeoRegion information.

Returns

  • gvec : Vector containing all the GeoRegions in the file fname.

source

`,7))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.addGeoRegions",href:"#GeoRegions.addGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.addGeoRegions")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=t(`
julia
addGeoRegions(
+) -> gvec :: Vector{<:GeoRegion}

Extract information of GeoRegions from the file defined by fname.

Arguments

  • fname : String specifying name + path of the file containing GeoRegion information.

Returns

  • gvec : Vector containing all the GeoRegions in the file fname.

source

`,7))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.addGeoRegions",href:"#GeoRegions.addGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.addGeoRegions")],-1)),s[13]||(s[13]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=a(`
julia
addGeoRegions(
     fname :: AbstractString;
     path  :: AbstractString = pwd(),
     overwrite :: Bool = false,
     verbose   :: Bool = false
-) -> nothing

Add GeoRegions from the file fname into the project directory defined by path.

Arguments

  • fname : name + path of the file containing GeoRegion information.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

  • overwrite : If true, override any custom GeoRegions that have the same IDs as those in the file fname.

source

`,7))])])}const G=o(h,[["render",y]]);export{R as __pageData,G as default}; +) -> nothing

Add GeoRegions from the file fname into the project directory defined by path.

Arguments

  • fname : name + path of the file containing GeoRegion information.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

  • overwrite : If true, override any custom GeoRegions that have the same IDs as those in the file fname.

source

`,7))])])}const G=o(h,[["render",y]]);export{R as __pageData,G as default}; diff --git a/dev/assets/api_project.md.CxN5HGcY.lean.js b/dev/assets/api_project.md.rRFXlQAq.lean.js similarity index 88% rename from dev/assets/api_project.md.CxN5HGcY.lean.js rename to dev/assets/api_project.md.rRFXlQAq.lean.js index ffa4e2c..66ec352 100644 --- a/dev/assets/api_project.md.CxN5HGcY.lean.js +++ b/dev/assets/api_project.md.rRFXlQAq.lean.js @@ -1,15 +1,15 @@ -import{_ as o,c as l,j as i,a as e,G as n,a4 as t,B as p,o as r}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Project-Handling in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/project.md","filePath":"api/project.md","lastUpdated":null}'),h={name:"api/project.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function y(E,s,b,f,m,F){const a=p("Badge");return r(),l("div",null,[s[15]||(s[15]=i("h1",{id:"API-for-Project-Handling-in-GeoRegions.jl",tabindex:"-1"},[e("API for Project-Handling in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Project-Handling-in-GeoRegions.jl","aria-label":'Permalink to "API for Project-Handling in GeoRegions.jl {#API-for-Project-Handling-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.setupGeoRegions",href:"#GeoRegions.setupGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.setupGeoRegions")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=t(`
julia
setupGeoRegions(;
+import{_ as o,c as l,j as i,a as e,G as t,a4 as a,B as p,o as r}from"./chunks/framework.CEeYBNx8.js";const R=JSON.parse('{"title":"API for Project-Handling in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/project.md","filePath":"api/project.md","lastUpdated":null}'),h={name:"api/project.md"},d={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function y(E,s,f,b,m,F){const n=p("Badge");return r(),l("div",null,[s[15]||(s[15]=i("h1",{id:"API-for-Project-Handling-in-GeoRegions.jl",tabindex:"-1"},[e("API for Project-Handling in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Project-Handling-in-GeoRegions.jl","aria-label":'Permalink to "API for Project-Handling in GeoRegions.jl {#API-for-Project-Handling-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.setupGeoRegions",href:"#GeoRegions.setupGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.setupGeoRegions")],-1)),s[1]||(s[1]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[2]||(s[2]=a(`
julia
setupGeoRegions(;
     path :: AbstractString = pwd(),
     overwrite :: Bool = false
-) -> nothing

Setup the directory specified by path with files for custom GeoRegions. If overwrite = true, then any preexisting files are overwritten.

Keyword Arguments

  • path : The path where the template list of custom GeoRegions will be copied to. Defaults to the current working directory pwd().

  • overwrite : If template files exist in this folder, overwrite?

source

`,5))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.deleteGeoRegions",href:"#GeoRegions.deleteGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.deleteGeoRegions")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
julia
deleteGeoRegions(;
+) -> nothing

Setup the directory specified by path with files for custom GeoRegions. If overwrite = true, then any preexisting files are overwritten.

Keyword Arguments

  • path : The path where the template list of custom GeoRegions will be copied to. Defaults to the current working directory pwd().

  • overwrite : If template files exist in this folder, overwrite?

source

`,5))]),i("details",g,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.deleteGeoRegions",href:"#GeoRegions.deleteGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.deleteGeoRegions")],-1)),s[4]||(s[4]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=a(`
julia
deleteGeoRegions(;
     path :: AbstractString = pwd()
-) -> nothing

Reset all the files containing GeoRegion information back to the default.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

source

`,5))]),i("details",k,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{AbstractString}",href:"#GeoRegions.tableGeoRegions-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=t(`
julia
tableGeoRegions(
+) -> nothing

Reset all the files containing GeoRegion information back to the default.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

source

`,5))]),i("details",k,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{AbstractString}",href:"#GeoRegions.tableGeoRegions-Tuple{AbstractString}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[7]||(s[7]=e()),t(n,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=a(`
julia
tableGeoRegions(
     fname :: AbstractString
-) -> nothing

Display all available GeoRegions in tabular format listed in the file fname.

Arguments

  • fname : Specifies the name + path of the file containing GeoRegion information.

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.readGeoRegions",href:"#GeoRegions.readGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.readGeoRegions")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t(`
julia
readGeoRegions(
+) -> nothing

Display all available GeoRegions in tabular format listed in the file fname.

Arguments

  • fname : Specifies the name + path of the file containing GeoRegion information.

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.readGeoRegions",href:"#GeoRegions.readGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.readGeoRegions")],-1)),s[10]||(s[10]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=a(`
julia
readGeoRegions(
     fname :: AbstractString
-) -> gvec :: Vector{<:GeoRegion}

Extract information of GeoRegions from the file defined by fname.

Arguments

  • fname : String specifying name + path of the file containing GeoRegion information.

Returns

  • gvec : Vector containing all the GeoRegions in the file fname.

source

`,7))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.addGeoRegions",href:"#GeoRegions.addGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.addGeoRegions")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=t(`
julia
addGeoRegions(
+) -> gvec :: Vector{<:GeoRegion}

Extract information of GeoRegions from the file defined by fname.

Arguments

  • fname : String specifying name + path of the file containing GeoRegion information.

Returns

  • gvec : Vector containing all the GeoRegions in the file fname.

source

`,7))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"GeoRegions.addGeoRegions",href:"#GeoRegions.addGeoRegions"},[i("span",{class:"jlbinding"},"GeoRegions.addGeoRegions")],-1)),s[13]||(s[13]=e()),t(n,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=a(`
julia
addGeoRegions(
     fname :: AbstractString;
     path  :: AbstractString = pwd(),
     overwrite :: Bool = false,
     verbose   :: Bool = false
-) -> nothing

Add GeoRegions from the file fname into the project directory defined by path.

Arguments

  • fname : name + path of the file containing GeoRegion information.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

  • overwrite : If true, override any custom GeoRegions that have the same IDs as those in the file fname.

source

`,7))])])}const G=o(h,[["render",y]]);export{R as __pageData,G as default}; +) -> nothing

Add GeoRegions from the file fname into the project directory defined by path.

Arguments

  • fname : name + path of the file containing GeoRegion information.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the current working directory pwd().

  • overwrite : If true, override any custom GeoRegions that have the same IDs as those in the file fname.

source

`,7))])])}const G=o(h,[["render",y]]);export{R as __pageData,G as default}; diff --git a/dev/assets/api_shape.md.tRnJAzBD.js b/dev/assets/api_shape.md.ByrUh8hw.js similarity index 98% rename from dev/assets/api_shape.md.tRnJAzBD.js rename to dev/assets/api_shape.md.ByrUh8hw.js index 37ff65b..23f2211 100644 --- a/dev/assets/api_shape.md.tRnJAzBD.js +++ b/dev/assets/api_shape.md.ByrUh8hw.js @@ -1,4 +1,4 @@ import{_ as t,c as n,j as s,a as i,G as o,a4 as l,B as p,o as r}from"./chunks/framework.CEeYBNx8.js";const m=JSON.parse('{"title":"API for Different GeoRegion Properties","description":"","frontmatter":{},"headers":[],"relativePath":"api/shape.md","filePath":"api/shape.md","lastUpdated":null}'),h={name:"api/shape.md"},d={class:"jldocstring custom-block",open:""};function k(g,e,c,f,u,E){const a=p("Badge");return r(),n("div",null,[e[3]||(e[3]=s("h1",{id:"API-for-Different-GeoRegion-Properties",tabindex:"-1"},[i("API for Different GeoRegion Properties "),s("a",{class:"header-anchor",href:"#API-for-Different-GeoRegion-Properties","aria-label":'Permalink to "API for Different GeoRegion Properties {#API-for-Different-GeoRegion-Properties}"'},"​")],-1)),s("details",d,[s("summary",null,[e[0]||(e[0]=s("a",{id:"GeoRegions.coordinates",href:"#GeoRegions.coordinates"},[s("span",{class:"jlbinding"},"GeoRegions.coordinates")],-1)),e[1]||(e[1]=i()),o(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),e[2]||(e[2]=l(`
julia
coordinates(
     geo :: GeoRegion;
     n :: Int = 1
-) -> lon :: Vector{<:Real}, lat :: Vector{<:Real}

For a given GeoRegion, create longitude and latitude vectors of the shape.

Arguments

  • geo : A GeoRegion.

  • n : The number of segments on each side of the shape.

Returns

  • lon : A vector of longitude points for the shape of the GeoRegion.

  • lat : A vector of latitude points for the shape of the GeoRegion.

source

`,7))])])}const F=t(h,[["render",k]]);export{m as __pageData,F as default}; +) -> lon :: Vector{<:Real}, lat :: Vector{<:Real}

For a given GeoRegion, create longitude and latitude vectors of the shape.

Arguments

  • geo : A GeoRegion.

  • n : The number of segments on each side of the shape.

Returns

  • lon : A vector of longitude points for the shape of the GeoRegion.

  • lat : A vector of latitude points for the shape of the GeoRegion.

source

`,7))])])}const F=t(h,[["render",k]]);export{m as __pageData,F as default}; diff --git a/dev/assets/api_shape.md.tRnJAzBD.lean.js b/dev/assets/api_shape.md.ByrUh8hw.lean.js similarity index 98% rename from dev/assets/api_shape.md.tRnJAzBD.lean.js rename to dev/assets/api_shape.md.ByrUh8hw.lean.js index 37ff65b..23f2211 100644 --- a/dev/assets/api_shape.md.tRnJAzBD.lean.js +++ b/dev/assets/api_shape.md.ByrUh8hw.lean.js @@ -1,4 +1,4 @@ import{_ as t,c as n,j as s,a as i,G as o,a4 as l,B as p,o as r}from"./chunks/framework.CEeYBNx8.js";const m=JSON.parse('{"title":"API for Different GeoRegion Properties","description":"","frontmatter":{},"headers":[],"relativePath":"api/shape.md","filePath":"api/shape.md","lastUpdated":null}'),h={name:"api/shape.md"},d={class:"jldocstring custom-block",open:""};function k(g,e,c,f,u,E){const a=p("Badge");return r(),n("div",null,[e[3]||(e[3]=s("h1",{id:"API-for-Different-GeoRegion-Properties",tabindex:"-1"},[i("API for Different GeoRegion Properties "),s("a",{class:"header-anchor",href:"#API-for-Different-GeoRegion-Properties","aria-label":'Permalink to "API for Different GeoRegion Properties {#API-for-Different-GeoRegion-Properties}"'},"​")],-1)),s("details",d,[s("summary",null,[e[0]||(e[0]=s("a",{id:"GeoRegions.coordinates",href:"#GeoRegions.coordinates"},[s("span",{class:"jlbinding"},"GeoRegions.coordinates")],-1)),e[1]||(e[1]=i()),o(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),e[2]||(e[2]=l(`
julia
coordinates(
     geo :: GeoRegion;
     n :: Int = 1
-) -> lon :: Vector{<:Real}, lat :: Vector{<:Real}

For a given GeoRegion, create longitude and latitude vectors of the shape.

Arguments

  • geo : A GeoRegion.

  • n : The number of segments on each side of the shape.

Returns

  • lon : A vector of longitude points for the shape of the GeoRegion.

  • lat : A vector of latitude points for the shape of the GeoRegion.

source

`,7))])])}const F=t(h,[["render",k]]);export{m as __pageData,F as default}; +) -> lon :: Vector{<:Real}, lat :: Vector{<:Real}

For a given GeoRegion, create longitude and latitude vectors of the shape.

Arguments

  • geo : A GeoRegion.

  • n : The number of segments on each side of the shape.

Returns

  • lon : A vector of longitude points for the shape of the GeoRegion.

  • lat : A vector of latitude points for the shape of the GeoRegion.

source

`,7))])])}const F=t(h,[["render",k]]);export{m as __pageData,F as default}; diff --git a/dev/assets/api_tables.md.Dosp9r3m.js b/dev/assets/api_tables.md.DJhk53Bu.js similarity index 96% rename from dev/assets/api_tables.md.Dosp9r3m.js rename to dev/assets/api_tables.md.DJhk53Bu.js index 4d9030c..87a77c0 100644 --- a/dev/assets/api_tables.md.Dosp9r3m.js +++ b/dev/assets/api_tables.md.DJhk53Bu.js @@ -1,18 +1,18 @@ -import{_ as n,c as p,j as i,a as e,G as l,a4 as t,B as o,o as h}from"./chunks/framework.CEeYBNx8.js";const m=JSON.parse('{"title":"API for Tables in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/tables.md","filePath":"api/tables.md","lastUpdated":null}'),k={name:"api/tables.md"},d={class:"jldocstring custom-block",open:""},r={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function y(E,s,u,b,F,f){const a=o("Badge");return h(),p("div",null,[s[12]||(s[12]=i("h1",{id:"API-for-Tables-in-GeoRegions.jl",tabindex:"-1"},[e("API for Tables in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Tables-in-GeoRegions.jl","aria-label":'Permalink to "API for Tables in GeoRegions.jl {#API-for-Tables-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{}",href:"#GeoRegions.tableGeoRegions-Tuple{}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[1]||(s[1]=e()),l(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
tableGeoRegions(;
+import{_ as n,c as p,j as i,a as e,G as l,a4 as t,B as o,o as h}from"./chunks/framework.CEeYBNx8.js";const m=JSON.parse('{"title":"API for Tables in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/tables.md","filePath":"api/tables.md","lastUpdated":null}'),k={name:"api/tables.md"},d={class:"jldocstring custom-block",open:""},r={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function y(E,s,u,F,b,f){const a=o("Badge");return h(),p("div",null,[s[12]||(s[12]=i("h1",{id:"API-for-Tables-in-GeoRegions.jl",tabindex:"-1"},[e("API for Tables in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Tables-in-GeoRegions.jl","aria-label":'Permalink to "API for Tables in GeoRegions.jl {#API-for-Tables-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{}",href:"#GeoRegions.tableGeoRegions-Tuple{}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[1]||(s[1]=e()),l(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
tableGeoRegions(;
     path :: AbstractString = homedir(),
     predefined :: Bool = true,
     custom     :: Bool = true,
     warn :: Bool = true,
     crop :: Bool = false
-) -> nothing

Display all available GeoRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • predefined : If true, predefined Giorgi, SREX and IPPC AR6 list of GeoRegions will be displayed.

  • custom : If true, custom, user-defined list of GeoRegions will be displayed.

  • warn : If true, display warnings if custom files do not exist.

  • crop : If true, will crop the vertical extent of the table, default is false.

source

`,5))]),i("details",r,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.tableRectRegions",href:"#GeoRegions.tableRectRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableRectRegions")],-1)),s[4]||(s[4]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
julia
tableRectRegions(;
+) -> nothing

Display all available GeoRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • predefined : If true, predefined Giorgi, SREX and IPPC AR6 list of GeoRegions will be displayed.

  • custom : If true, custom, user-defined list of GeoRegions will be displayed.

  • warn : If true, display warnings if custom files do not exist.

  • crop : If true, will crop the vertical extent of the table, default is false.

source

`,5))]),i("details",r,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.tableRectRegions",href:"#GeoRegions.tableRectRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableRectRegions")],-1)),s[4]||(s[4]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
julia
tableRectRegions(;
     path :: AbstractString = homedir(),
     custom :: Bool = true,
     giorgi :: Bool = false
-) -> nothing

Display all available RectRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom RectRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined RectRegions. Default is true.

  • giorgi : If true, display GF predefined RectRegions. Default is true.

source

`,5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableTiltRegions",href:"#GeoRegions.tableTiltRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableTiltRegions")],-1)),s[7]||(s[7]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t(`
julia
tableTiltRegions(;
+) -> nothing

Display all available RectRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom RectRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined RectRegions. Default is true.

  • giorgi : If true, display GF predefined RectRegions. Default is true.

source

`,5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableTiltRegions",href:"#GeoRegions.tableTiltRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableTiltRegions")],-1)),s[7]||(s[7]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t(`
julia
tableTiltRegions(;
     path :: AbstractString = homedir()
-) -> nothing

Display all available TiltRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom TiltRegions will be retrieved from. Defaults to the user's home directory homedir().

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.tablePolyRegions",href:"#GeoRegions.tablePolyRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tablePolyRegions")],-1)),s[10]||(s[10]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t(`
julia
tablePolyRegions(;
+) -> nothing

Display all available TiltRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom TiltRegions will be retrieved from. Defaults to the user's home directory homedir().

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.tablePolyRegions",href:"#GeoRegions.tablePolyRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tablePolyRegions")],-1)),s[10]||(s[10]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t(`
julia
tablePolyRegions(;
     path :: AbstractString = homedir(),
     custom :: Bool = true,
     srex :: Bool = false,
     ar6  :: Bool = false
-) -> nothing

Display all available PolyRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom PolyRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined PolyRegions. Default is true.

  • srex : If true, display SREX predefined PolyRegions. Default is true.

  • ar6 : If true, display IPCC AR6 predefined PolyRegions. Default is true.

source

`,5))])])}const R=n(k,[["render",y]]);export{m as __pageData,R as default}; +) -> nothing

Display all available PolyRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom PolyRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined PolyRegions. Default is true.

  • srex : If true, display SREX predefined PolyRegions. Default is true.

  • ar6 : If true, display IPCC AR6 predefined PolyRegions. Default is true.

source

`,5))])])}const R=n(k,[["render",y]]);export{m as __pageData,R as default}; diff --git a/dev/assets/api_tables.md.Dosp9r3m.lean.js b/dev/assets/api_tables.md.DJhk53Bu.lean.js similarity index 96% rename from dev/assets/api_tables.md.Dosp9r3m.lean.js rename to dev/assets/api_tables.md.DJhk53Bu.lean.js index 4d9030c..87a77c0 100644 --- a/dev/assets/api_tables.md.Dosp9r3m.lean.js +++ b/dev/assets/api_tables.md.DJhk53Bu.lean.js @@ -1,18 +1,18 @@ -import{_ as n,c as p,j as i,a as e,G as l,a4 as t,B as o,o as h}from"./chunks/framework.CEeYBNx8.js";const m=JSON.parse('{"title":"API for Tables in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/tables.md","filePath":"api/tables.md","lastUpdated":null}'),k={name:"api/tables.md"},d={class:"jldocstring custom-block",open:""},r={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function y(E,s,u,b,F,f){const a=o("Badge");return h(),p("div",null,[s[12]||(s[12]=i("h1",{id:"API-for-Tables-in-GeoRegions.jl",tabindex:"-1"},[e("API for Tables in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Tables-in-GeoRegions.jl","aria-label":'Permalink to "API for Tables in GeoRegions.jl {#API-for-Tables-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{}",href:"#GeoRegions.tableGeoRegions-Tuple{}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[1]||(s[1]=e()),l(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
tableGeoRegions(;
+import{_ as n,c as p,j as i,a as e,G as l,a4 as t,B as o,o as h}from"./chunks/framework.CEeYBNx8.js";const m=JSON.parse('{"title":"API for Tables in GeoRegions.jl","description":"","frontmatter":{},"headers":[],"relativePath":"api/tables.md","filePath":"api/tables.md","lastUpdated":null}'),k={name:"api/tables.md"},d={class:"jldocstring custom-block",open:""},r={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""};function y(E,s,u,F,b,f){const a=o("Badge");return h(),p("div",null,[s[12]||(s[12]=i("h1",{id:"API-for-Tables-in-GeoRegions.jl",tabindex:"-1"},[e("API for Tables in GeoRegions.jl "),i("a",{class:"header-anchor",href:"#API-for-Tables-in-GeoRegions.jl","aria-label":'Permalink to "API for Tables in GeoRegions.jl {#API-for-Tables-in-GeoRegions.jl}"'},"​")],-1)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GeoRegions.tableGeoRegions-Tuple{}",href:"#GeoRegions.tableGeoRegions-Tuple{}"},[i("span",{class:"jlbinding"},"GeoRegions.tableGeoRegions")],-1)),s[1]||(s[1]=e()),l(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=t(`
julia
tableGeoRegions(;
     path :: AbstractString = homedir(),
     predefined :: Bool = true,
     custom     :: Bool = true,
     warn :: Bool = true,
     crop :: Bool = false
-) -> nothing

Display all available GeoRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • predefined : If true, predefined Giorgi, SREX and IPPC AR6 list of GeoRegions will be displayed.

  • custom : If true, custom, user-defined list of GeoRegions will be displayed.

  • warn : If true, display warnings if custom files do not exist.

  • crop : If true, will crop the vertical extent of the table, default is false.

source

`,5))]),i("details",r,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.tableRectRegions",href:"#GeoRegions.tableRectRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableRectRegions")],-1)),s[4]||(s[4]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
julia
tableRectRegions(;
+) -> nothing

Display all available GeoRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom GeoRegions will be retrieved from. Defaults to the user's home directory homedir().

  • predefined : If true, predefined Giorgi, SREX and IPPC AR6 list of GeoRegions will be displayed.

  • custom : If true, custom, user-defined list of GeoRegions will be displayed.

  • warn : If true, display warnings if custom files do not exist.

  • crop : If true, will crop the vertical extent of the table, default is false.

source

`,5))]),i("details",r,[i("summary",null,[s[3]||(s[3]=i("a",{id:"GeoRegions.tableRectRegions",href:"#GeoRegions.tableRectRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableRectRegions")],-1)),s[4]||(s[4]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[5]||(s[5]=t(`
julia
tableRectRegions(;
     path :: AbstractString = homedir(),
     custom :: Bool = true,
     giorgi :: Bool = false
-) -> nothing

Display all available RectRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom RectRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined RectRegions. Default is true.

  • giorgi : If true, display GF predefined RectRegions. Default is true.

source

`,5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableTiltRegions",href:"#GeoRegions.tableTiltRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableTiltRegions")],-1)),s[7]||(s[7]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t(`
julia
tableTiltRegions(;
+) -> nothing

Display all available RectRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom RectRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined RectRegions. Default is true.

  • giorgi : If true, display GF predefined RectRegions. Default is true.

source

`,5))]),i("details",g,[i("summary",null,[s[6]||(s[6]=i("a",{id:"GeoRegions.tableTiltRegions",href:"#GeoRegions.tableTiltRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tableTiltRegions")],-1)),s[7]||(s[7]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[8]||(s[8]=t(`
julia
tableTiltRegions(;
     path :: AbstractString = homedir()
-) -> nothing

Display all available TiltRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom TiltRegions will be retrieved from. Defaults to the user's home directory homedir().

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.tablePolyRegions",href:"#GeoRegions.tablePolyRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tablePolyRegions")],-1)),s[10]||(s[10]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t(`
julia
tablePolyRegions(;
+) -> nothing

Display all available TiltRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom TiltRegions will be retrieved from. Defaults to the user's home directory homedir().

source

`,5))]),i("details",c,[i("summary",null,[s[9]||(s[9]=i("a",{id:"GeoRegions.tablePolyRegions",href:"#GeoRegions.tablePolyRegions"},[i("span",{class:"jlbinding"},"GeoRegions.tablePolyRegions")],-1)),s[10]||(s[10]=e()),l(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=t(`
julia
tablePolyRegions(;
     path :: AbstractString = homedir(),
     custom :: Bool = true,
     srex :: Bool = false,
     ar6  :: Bool = false
-) -> nothing

Display all available PolyRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom PolyRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined PolyRegions. Default is true.

  • srex : If true, display SREX predefined PolyRegions. Default is true.

  • ar6 : If true, display IPCC AR6 predefined PolyRegions. Default is true.

source

`,5))])])}const R=n(k,[["render",y]]);export{m as __pageData,R as default}; +) -> nothing

Display all available PolyRegions in tabular format.

Keyword Arguments

  • path : The path where the list of custom PolyRegions will be retrieved from. Defaults to the user's home directory homedir().

  • custom : If true, display custom user-defined PolyRegions. Default is true.

  • srex : If true, display SREX predefined PolyRegions. Default is true.

  • ar6 : If true, display IPCC AR6 predefined PolyRegions. Default is true.

source

`,5))])])}const R=n(k,[["render",y]]);export{m as __pageData,R as default}; diff --git a/dev/assets/app.kHUU-BdX.js b/dev/assets/app.YBeC1Pez.js similarity index 95% rename from dev/assets/app.kHUU-BdX.js rename to dev/assets/app.YBeC1Pez.js index a76e0da..a0b7e6e 100644 --- a/dev/assets/app.kHUU-BdX.js +++ b/dev/assets/app.YBeC1Pez.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.6nTMTlEW.js";import{R as o,a5 as u,a6 as c,a7 as l,a8 as f,a9 as d,aa as m,ab as h,ac as g,ad as A,ae as v,d as P,u as R,v as w,s as y,af as C,ag as b,ah as E,ai as S}from"./chunks/framework.CEeYBNx8.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; +import{R as p}from"./chunks/theme.BetGdEN7.js";import{R as o,a5 as u,a6 as c,a7 as l,a8 as f,a9 as d,aa as m,ab as h,ac as g,ad as A,ae as v,d as P,u as R,v as w,s as y,af as C,ag as b,ah as E,ai as S}from"./chunks/framework.CEeYBNx8.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/dev/assets/basics_shape.md.B7Y4otKP.js b/dev/assets/basics_shape.md.DCZ6l6H5.js similarity index 51% rename from dev/assets/basics_shape.md.B7Y4otKP.js rename to dev/assets/basics_shape.md.DCZ6l6H5.js index cd87807..2c044ce 100644 --- a/dev/assets/basics_shape.md.B7Y4otKP.js +++ b/dev/assets/basics_shape.md.DCZ6l6H5.js @@ -1,12 +1,12 @@ -import{_ as a,c as e,a4 as n,o as i}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"The Shape of a GeoRegion","description":"","frontmatter":{},"headers":[],"relativePath":"basics/shape.md","filePath":"basics/shape.md","lastUpdated":null}'),t={name:"basics/shape.md"};function p(o,s,l,h,c,d){return i(),e("div",null,s[0]||(s[0]=[n(`

The Shape of a GeoRegion

In this section, we go through process of extracting information on the shape of the GeoRegion.

Let us now setup the example

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

We load a predefined AR6 GeoRegion for Northwest North America:

julia
geo = GeoRegion("AR6_NWN")
The Polygonal Region AR6_NWN has the following properties:
+import{_ as a,c as i,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c=JSON.parse('{"title":"The Shape of a GeoRegion","description":"","frontmatter":{},"headers":[],"relativePath":"basics/shape.md","filePath":"basics/shape.md","lastUpdated":null}'),t={name:"basics/shape.md"};function p(l,s,h,o,d,k){return n(),i("div",null,s[0]||(s[0]=[e(`

The Shape of a GeoRegion

In this section, we go through process of extracting information on the shape of the GeoRegion.

Let us now setup the example

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

We load a predefined AR6 GeoRegion for Northwest North America:

julia
geo = GeoRegion("AR6_NWN")
The Polygonal Region AR6_NWN has the following properties:
     Region ID     (ID) : AR6_NWN
     Parent ID    (pID) : GLB
     Name        (name) : Northwest North America
@@ -23,4 +23,4 @@ import{_ as a,c as e,a4 as n,o as i}from"./chunks/framework.CEeYBNx8.js";const g
 lines!(ax,lon,lat,linewidth=5)
 resize_to_layout!(fig)
 fig

This plotting works on maps where the projection is equirectangular. However, there are many different map projections, and so we can specify the number of segments n on each side of the shape using the keyword argument n in order to ensure during plotting that is plotted correctly on the projection.

julia
nlon,nlat = coordinates(geo,n=50)
-length(lon), length(nlon)
(9, 401)

Number of Points

The shape is defined by 8 sides. Therefore there are by default 8 + 1 = 9 coordinate points to close the polygon. If we specify 50 segments a side, we therefore have 400 + 1 = 401 coordinate points to close the polygon.

See the API here

`,15)]))}const u=a(t,[["render",p]]);export{g as __pageData,u as default}; +length(lon), length(nlon)
(9, 401)

Number of Points

The shape is defined by 8 sides. Therefore there are by default 8 + 1 = 9 coordinate points to close the polygon. If we specify 50 segments a side, we therefore have 400 + 1 = 401 coordinate points to close the polygon.

See the API here

`,15)]))}const g=a(t,[["render",p]]);export{c as __pageData,g as default}; diff --git a/dev/assets/basics_shape.md.B7Y4otKP.lean.js b/dev/assets/basics_shape.md.DCZ6l6H5.lean.js similarity index 51% rename from dev/assets/basics_shape.md.B7Y4otKP.lean.js rename to dev/assets/basics_shape.md.DCZ6l6H5.lean.js index cd87807..2c044ce 100644 --- a/dev/assets/basics_shape.md.B7Y4otKP.lean.js +++ b/dev/assets/basics_shape.md.DCZ6l6H5.lean.js @@ -1,12 +1,12 @@ -import{_ as a,c as e,a4 as n,o as i}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"The Shape of a GeoRegion","description":"","frontmatter":{},"headers":[],"relativePath":"basics/shape.md","filePath":"basics/shape.md","lastUpdated":null}'),t={name:"basics/shape.md"};function p(o,s,l,h,c,d){return i(),e("div",null,s[0]||(s[0]=[n(`

The Shape of a GeoRegion

In this section, we go through process of extracting information on the shape of the GeoRegion.

Let us now setup the example

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

We load a predefined AR6 GeoRegion for Northwest North America:

julia
geo = GeoRegion("AR6_NWN")
The Polygonal Region AR6_NWN has the following properties:
+import{_ as a,c as i,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c=JSON.parse('{"title":"The Shape of a GeoRegion","description":"","frontmatter":{},"headers":[],"relativePath":"basics/shape.md","filePath":"basics/shape.md","lastUpdated":null}'),t={name:"basics/shape.md"};function p(l,s,h,o,d,k){return n(),i("div",null,s[0]||(s[0]=[e(`

The Shape of a GeoRegion

In this section, we go through process of extracting information on the shape of the GeoRegion.

Let us now setup the example

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

We load a predefined AR6 GeoRegion for Northwest North America:

julia
geo = GeoRegion("AR6_NWN")
The Polygonal Region AR6_NWN has the following properties:
     Region ID     (ID) : AR6_NWN
     Parent ID    (pID) : GLB
     Name        (name) : Northwest North America
@@ -23,4 +23,4 @@ import{_ as a,c as e,a4 as n,o as i}from"./chunks/framework.CEeYBNx8.js";const g
 lines!(ax,lon,lat,linewidth=5)
 resize_to_layout!(fig)
 fig

This plotting works on maps where the projection is equirectangular. However, there are many different map projections, and so we can specify the number of segments n on each side of the shape using the keyword argument n in order to ensure during plotting that is plotted correctly on the projection.

julia
nlon,nlat = coordinates(geo,n=50)
-length(lon), length(nlon)
(9, 401)

Number of Points

The shape is defined by 8 sides. Therefore there are by default 8 + 1 = 9 coordinate points to close the polygon. If we specify 50 segments a side, we therefore have 400 + 1 = 401 coordinate points to close the polygon.

See the API here

`,15)]))}const u=a(t,[["render",p]]);export{g as __pageData,u as default}; +length(lon), length(nlon)
(9, 401)

Number of Points

The shape is defined by 8 sides. Therefore there are by default 8 + 1 = 9 coordinate points to close the polygon. If we specify 50 segments a side, we therefore have 400 + 1 = 401 coordinate points to close the polygon.

See the API here

`,15)]))}const g=a(t,[["render",p]]);export{c as __pageData,g as default}; diff --git a/dev/assets/chunks/@localSearchIndexroot.BixCjSid.js b/dev/assets/chunks/@localSearchIndexroot.BixCjSid.js deleted file mode 100644 index a7eb897..0000000 --- a/dev/assets/chunks/@localSearchIndexroot.BixCjSid.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":69,"nextId":69,"documentIds":{"0":"/GeoRegions.jl/dev/api/addreadrm#API-for-Adding,-Reading-and-Removing-GeoRegions","1":"/GeoRegions.jl/dev/api/create#API-for-Creating-GeoRegions","2":"/GeoRegions.jl/dev/api/isinonequal#API-for-Is-it-in/on-a-GeoRegion?","3":"/GeoRegions.jl/dev/api/project#API-for-Project-Handling-in-GeoRegions.jl","4":"/GeoRegions.jl/dev/api/shape#API-for-Different-GeoRegion-Properties","5":"/GeoRegions.jl/dev/api/tables#API-for-Tables-in-GeoRegions.jl","6":"/GeoRegions.jl/dev/basics/create#Creating-Custom-GeoRegions","7":"/GeoRegions.jl/dev/basics/create#Defining-New-RectRegions","8":"/GeoRegions.jl/dev/basics/create#Defining-New-PolyRegions","9":"/GeoRegions.jl/dev/basics/create#Defining-New-TiltRegions","10":"/GeoRegions.jl/dev/basics/read/listall#Default-List-of-Predefined-GeoRegions","11":"/GeoRegions.jl/dev/basics/read/listall#GeoRegions.jl\'s-default-region-is-the-Globe","12":"/GeoRegions.jl/dev/basics/read/listall#Giorgi-and-Francisco-[2000]","13":"/GeoRegions.jl/dev/basics/read/listall#SREX-Regions-from-Seneviratne-et-al.-[2012]","14":"/GeoRegions.jl/dev/basics/read/listall#IPCC-AR6-Regions-from-Iturbide-et-al.,-[2020]","15":"/GeoRegions.jl/dev/basics/read/overview#Reading-Predefined-GeoRegions","16":"/GeoRegions.jl/dev/basics/read/predefined#Predefined-GeoRegions-in-GeoRegions.jl","17":"/GeoRegions.jl/dev/basics/read/predefined#Adapted-from-Giorgi-and-Francisco-[2000]","18":"/GeoRegions.jl/dev/basics/read/predefined#SREX-Regions-adapted-from-Seneviratne-et-al.-[2012]","19":"/GeoRegions.jl/dev/basics/read/predefined#AR6-Regions-adapted-from-Iturbide-et-al.,-[2020]","20":"/GeoRegions.jl/dev/basics/read/tables#Tabular-Listings-of-GeoRegions","21":"/GeoRegions.jl/dev/basics/read/tables#More-specific-lists-of-GeoRegions","22":"/GeoRegions.jl/dev/basics/read/tables#Use-Case-Examples","23":"/GeoRegions.jl/dev/basics/shape#The-Shape-of-a-GeoRegion","24":"/GeoRegions.jl/dev/basics/shape#Retrieving-the-coordinates-of-a-GeoRegion","25":"/GeoRegions.jl/dev/georegions#What-is-a-GeoRegion?","26":"/GeoRegions.jl/dev/georegions#Types-of-GeoRegions","27":"/GeoRegions.jl/dev/georegions#rectregions","28":"/GeoRegions.jl/dev/georegions#tiltregions","29":"/GeoRegions.jl/dev/georegions#polyregions","30":"/GeoRegions.jl/dev/#Installation-Instructions","31":"/GeoRegions.jl/dev/#Getting-help","32":"/GeoRegions.jl/dev/tutorials/isequal#Equivalence-between-GeoRegions-and-their-Properties","33":"/GeoRegions.jl/dev/tutorials/isequal#1.-Are-two-GeoRegions-Equivalent","34":"/GeoRegions.jl/dev/tutorials/isequal#1.-Strict-Equivalence","35":"/GeoRegions.jl/dev/tutorials/isequal#1.2-Non-Strict-Equivalence","36":"/GeoRegions.jl/dev/tutorials/isequal#2.-Does-there-already-exist-a-GeoRegion?","37":"/GeoRegions.jl/dev/tutorials/isequal#3.-Property-Checks-for-GeoRegions","38":"/GeoRegions.jl/dev/tutorials/isequal#3.1-Checking-if-an-ID-already-exists","39":"/GeoRegions.jl/dev/tutorials/isequal#3.1-Checking-if-a-GeoRegion-has-an-equivalent-shape","40":"/GeoRegions.jl/dev/tutorials/isequal#3.1-Checking-if-a-shape-defined-by-(lon,lat)-is-defined-in-an-existing-GeoRegion","41":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#Manipulation-of-User-Defined-GeoRegions.jl-for-your-Project","42":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#1.-Adding-custom-GeoRegions-to-your-Project","43":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#2.-Check-if-GeoRegions-have-been-added","44":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#3.-Reading-and-Retrieving-GeoRegions-for-your-Project","45":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#4.-Overwriting-Information-for-a-Previously-Defined-GeoRegion","46":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#5.-Removing-a-custom-GeoRegions-from-your-Project","47":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#5.1-Removing-a-GeoRegion-that-has-been-loaded","48":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#5.2-Removing-a-GeoRegion-based-on-its-ID","49":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#6.-Removing-a-the-custom-GeoRegions-lists-from-your-Project","50":"/GeoRegions.jl/dev/tutorials/projects/files#Files-of-custom-GeoRegions","51":"/GeoRegions.jl/dev/tutorials/projects/files#RectRegion-and-TiltRegion-Files","52":"/GeoRegions.jl/dev/tutorials/projects/files#Example-in-rectlist.txt","53":"/GeoRegions.jl/dev/tutorials/projects/files#Example-in-tiltlist.txt","54":"/GeoRegions.jl/dev/tutorials/projects/files#PolyRegion-Files","55":"/GeoRegions.jl/dev/tutorials/projects/files#Listing-GeoRegions-inside-Custom-Files","56":"/GeoRegions.jl/dev/tutorials/projects/files#Adding-GeoRegions-inside-Custom-Files","57":"/GeoRegions.jl/dev/tutorials/projects/setup#GeoRegions.jl-for-your-Research-Project","58":"/GeoRegions.jl/dev/tutorials/projects/setup#1.-Setup-GeoRegions.jl-for-your-Project","59":"/GeoRegions.jl/dev/tutorials/projects/setup#2.-Listing-out-the-custom-GeoRegions-for-your-Project","60":"/GeoRegions.jl/dev/tutorials/projects/setup#3.-Removing-a-the-custom-GeoRegions-list-from-your-Project","61":"/GeoRegions.jl/dev/tutorials/using/isin#Is-it-in-a-GeoRegion?","62":"/GeoRegions.jl/dev/tutorials/using/isin#Is-a-Point-in-a-GeoRegion?","63":"/GeoRegions.jl/dev/tutorials/using/isin#Is-a-GeoRegion-inside-a-GeoRegion?","64":"/GeoRegions.jl/dev/tutorials/using/ison#Is-it-on-a-GeoRegion-Boundary?","65":"/GeoRegions.jl/dev/tutorials/using/ison#Is-a-Point-on-a-GeoRegion-Boundary?","66":"/GeoRegions.jl/dev/tutorials/using/ison#Is-a-GeoRegion-on-a-GeoRegion?-(i.e.,-Are-their-Shapes-the-Same?)","67":"/GeoRegions.jl/dev/tutorials/using/ison#1.-circshift()-the-points-defining-the-GeoRegion","68":"/GeoRegions.jl/dev/tutorials/using/ison#2.-Shifting-the-GeoRegion-by-360º"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[7,1,121],"1":[4,1,129],"2":[9,1,197],"3":[7,1,94],"4":[5,1,40],"5":[6,1,77],"6":[3,1,53],"7":[3,3,86],"8":[3,3,94],"9":[3,3,93],"10":[5,1,5],"11":[9,5,22],"12":[5,5,127],"13":[8,5,178],"14":[9,5,233],"15":[3,1,88],"16":[4,1,10],"17":[7,4,75],"18":[9,4,82],"19":[9,4,81],"20":[4,1,84],"21":[5,4,49],"22":[3,4,314],"23":[5,1,93],"24":[6,5,114],"25":[5,1,93],"26":[3,5,29],"27":[1,7,22],"28":[1,7,67],"29":[1,7,23],"30":[2,1,69],"31":[2,1,36],"32":[6,1,17],"33":[5,6,19],"34":[3,10,128],"35":[5,10,58],"36":[8,6,66],"37":[5,6,24],"38":[8,10,32],"39":[10,10,33],"40":[15,10,39],"41":[9,1,27],"42":[7,9,150],"43":[7,9,131],"44":[8,9,71],"45":[8,9,109],"46":[8,9,39],"47":[9,14,65],"48":[9,14,68],"49":[10,9,121],"50":[4,1,21],"51":[4,4,54],"52":[4,7,63],"53":[4,7,52],"54":[2,4,112],"55":[5,4,92],"56":[5,4,123],"57":[6,1,80],"58":[7,6,98],"59":[9,6,99],"60":[10,6,86],"61":[6,1,78],"62":[6,6,156],"63":[5,6,139],"64":[7,1,87],"65":[7,7,157],"66":[12,7,50],"67":[6,14,122],"68":[6,14,71]},"averageFieldLength":[5.956521739130435,5.115942028985507,84.27536231884059],"storedFields":{"0":{"title":"API for Adding, Reading and Removing GeoRegions","titles":[]},"1":{"title":"API for Creating GeoRegions","titles":[]},"2":{"title":"API for Is it in/on a GeoRegion?","titles":[]},"3":{"title":"API for Project-Handling in GeoRegions.jl","titles":[]},"4":{"title":"API for Different GeoRegion Properties","titles":[]},"5":{"title":"API for Tables in GeoRegions.jl","titles":[]},"6":{"title":"Creating Custom GeoRegions","titles":[]},"7":{"title":"Defining New RectRegions","titles":["Creating Custom GeoRegions"]},"8":{"title":"Defining New PolyRegions","titles":["Creating Custom GeoRegions"]},"9":{"title":"Defining New TiltRegions","titles":["Creating Custom GeoRegions"]},"10":{"title":"Default List of Predefined GeoRegions","titles":[]},"11":{"title":"GeoRegions.jl's default region is the Globe","titles":["Default List of Predefined GeoRegions"]},"12":{"title":"Giorgi & Francisco [2000]","titles":["Default List of Predefined GeoRegions"]},"13":{"title":"SREX Regions from Seneviratne et al. [2012]","titles":["Default List of Predefined GeoRegions"]},"14":{"title":"IPCC AR6 Regions from Iturbide et al., [2020]","titles":["Default List of Predefined GeoRegions"]},"15":{"title":"Reading Predefined GeoRegions","titles":[]},"16":{"title":"Predefined GeoRegions in GeoRegions.jl","titles":[]},"17":{"title":"Adapted from Giorgi & Francisco [2000]","titles":["Predefined GeoRegions in GeoRegions.jl"]},"18":{"title":"SREX Regions adapted from Seneviratne et al. [2012]","titles":["Predefined GeoRegions in GeoRegions.jl"]},"19":{"title":"AR6 Regions adapted from Iturbide et al., [2020]","titles":["Predefined GeoRegions in GeoRegions.jl"]},"20":{"title":"Tabular Listings of GeoRegions","titles":[]},"21":{"title":"More specific lists of GeoRegions","titles":["Tabular Listings of GeoRegions"]},"22":{"title":"Use Case Examples","titles":["Tabular Listings of GeoRegions"]},"23":{"title":"The Shape of a GeoRegion","titles":[]},"24":{"title":"Retrieving the coordinates of a GeoRegion","titles":["The Shape of a GeoRegion"]},"25":{"title":"What is a GeoRegion?","titles":[]},"26":{"title":"Types of GeoRegions","titles":["What is a GeoRegion?"]},"27":{"title":"RectRegions","titles":["What is a GeoRegion?","Types of GeoRegions"]},"28":{"title":"TiltRegions","titles":["What is a GeoRegion?","Types of GeoRegions"]},"29":{"title":"PolyRegions","titles":["What is a GeoRegion?","Types of GeoRegions"]},"30":{"title":"Installation Instructions","titles":[]},"31":{"title":"Getting help","titles":[]},"32":{"title":"Equivalence between GeoRegions and their Properties","titles":[]},"33":{"title":"1. Are two GeoRegions Equivalent","titles":["Equivalence between GeoRegions and their Properties"]},"34":{"title":"1. Strict Equivalence","titles":["Equivalence between GeoRegions and their Properties","1. Are two GeoRegions Equivalent"]},"35":{"title":"1.2 Non-Strict Equivalence","titles":["Equivalence between GeoRegions and their Properties","1. Are two GeoRegions Equivalent"]},"36":{"title":"2. Does there already exist a GeoRegion?","titles":["Equivalence between GeoRegions and their Properties"]},"37":{"title":"3. Property Checks for GeoRegions","titles":["Equivalence between GeoRegions and their Properties"]},"38":{"title":"3.1 Checking if an ID already exists","titles":["Equivalence between GeoRegions and their Properties","3. Property Checks for GeoRegions"]},"39":{"title":"3.1 Checking if a GeoRegion has an equivalent shape","titles":["Equivalence between GeoRegions and their Properties","3. Property Checks for GeoRegions"]},"40":{"title":"3.1 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion","titles":["Equivalence between GeoRegions and their Properties","3. Property Checks for GeoRegions"]},"41":{"title":"Manipulation of User-Defined GeoRegions.jl for your Project","titles":[]},"42":{"title":"1. Adding custom GeoRegions to your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"43":{"title":"2. Check if GeoRegions have been added","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"44":{"title":"3. Reading and Retrieving GeoRegions for your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"45":{"title":"4. Overwriting Information for a Previously Defined GeoRegion","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"46":{"title":"5. Removing a custom GeoRegions from your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"47":{"title":"5.1 Removing a GeoRegion that has been loaded","titles":["Manipulation of User-Defined GeoRegions.jl for your Project","5. Removing a custom GeoRegions from your Project"]},"48":{"title":"5.2 Removing a GeoRegion based on its ID","titles":["Manipulation of User-Defined GeoRegions.jl for your Project","5. Removing a custom GeoRegions from your Project"]},"49":{"title":"6. Removing a the custom GeoRegions lists from your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"50":{"title":"Files of custom GeoRegions","titles":[]},"51":{"title":"RectRegion and TiltRegion Files","titles":["Files of custom GeoRegions"]},"52":{"title":"Example in rectlist.txt","titles":["Files of custom GeoRegions","RectRegion and TiltRegion Files"]},"53":{"title":"Example in tiltlist.txt","titles":["Files of custom GeoRegions","RectRegion and TiltRegion Files"]},"54":{"title":"PolyRegion Files","titles":["Files of custom GeoRegions"]},"55":{"title":"Listing GeoRegions inside Custom Files","titles":["Files of custom GeoRegions"]},"56":{"title":"Adding GeoRegions inside Custom Files","titles":["Files of custom GeoRegions"]},"57":{"title":"GeoRegions.jl for your Research Project","titles":[]},"58":{"title":"1. Setup GeoRegions.jl for your Project","titles":["GeoRegions.jl for your Research Project"]},"59":{"title":"2. Listing out the custom GeoRegions for your Project","titles":["GeoRegions.jl for your Research Project"]},"60":{"title":"3. Removing a the custom GeoRegions list from your Project","titles":["GeoRegions.jl for your Research Project"]},"61":{"title":"Is it in a GeoRegion?","titles":[]},"62":{"title":"Is a Point in a GeoRegion?","titles":["Is it in a GeoRegion?"]},"63":{"title":"Is a GeoRegion inside a GeoRegion?","titles":["Is it in a GeoRegion?"]},"64":{"title":"Is it on a GeoRegion Boundary?","titles":[]},"65":{"title":"Is a Point on a GeoRegion Boundary?","titles":["Is it on a GeoRegion Boundary?"]},"66":{"title":"Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)","titles":["Is it on a GeoRegion Boundary?"]},"67":{"title":"1. circshift() the points defining the GeoRegion","titles":["Is it on a GeoRegion Boundary?","Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)"]},"68":{"title":"2. Shifting the GeoRegion by 360º","titles":["Is it on a GeoRegion Boundary?","Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)"]}},"dirtCount":0,"index":[["know",{"2":{"64":1,"67":1}}],["keywords",{"2":{"20":1}}],["keyword",{"2":{"0":8,"1":6,"2":10,"3":3,"5":4,"24":1,"42":2,"57":1,"58":1,"59":1}}],["$",{"2":{"51":1,"54":1}}],["$path",{"2":{"42":3}}],["⋮",{"2":{"43":6}}],["~",{"2":{"22":3,"49":1,"56":1,"58":3,"60":1}}],["└",{"2":{"22":3,"49":1,"56":1,"58":3,"60":1}}],["`",{"2":{"22":3}}],["`setupgeoregions",{"2":{"22":3}}],["┌",{"2":{"22":3,"49":1,"56":1,"58":3,"60":1}}],["unless",{"2":{"59":1}}],["universally",{"2":{"57":1}}],["update",{"2":{"30":3}}],["ultimate",{"2":{"21":1}}],["us",{"2":{"9":1,"23":1,"34":1,"38":1,"39":1,"40":1,"43":1,"61":1,"62":2,"63":2,"64":1,"65":2,"66":1}}],["using",{"2":{"7":1,"8":2,"9":1,"15":1,"20":1,"23":2,"24":2,"25":2,"30":2,"31":1,"43":2,"50":1,"56":1,"57":2,"59":1,"61":2,"62":1,"64":2,"65":1}}],["useful",{"2":{"25":1,"64":1}}],["uses",{"2":{"15":1}}],["use",{"0":{"22":1},"2":{"1":3,"6":1,"20":1,"22":3,"31":1,"33":1,"36":2,"38":1,"42":1,"45":1,"47":2,"48":1,"49":1,"56":1,"58":2,"61":2,"64":2,"66":1,"67":1}}],["user",{"0":{"41":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"0":1,"1":3,"5":7,"20":5,"43":1,"44":1,"49":1,"56":1,"57":2,"58":2,"59":2}}],["used",{"2":{"0":6,"1":6,"2":2,"34":1,"45":1,"67":1}}],["zealand",{"2":{"14":1,"22":2}}],["98",{"2":{"63":1}}],["913",{"2":{"60":1}}],["99",{"2":{"43":1}}],["9",{"2":{"14":1,"22":2,"24":2}}],["93",{"2":{"14":3,"22":6}}],["95",{"2":{"13":1,"22":2,"63":1}}],["90",{"2":{"7":2,"11":2,"12":3,"13":4,"14":10,"15":7,"22":30,"25":2,"43":2,"45":5,"54":4,"55":8,"56":4,"59":2,"63":6}}],["80",{"2":{"63":3}}],["895",{"2":{"58":3}}],["883",{"2":{"56":1}}],["881",{"2":{"56":1}}],["877",{"2":{"56":1}}],["83",{"2":{"14":2,"22":4}}],["81",{"2":{"14":1,"22":2,"23":2}}],["82",{"2":{"13":1,"14":2,"22":6}}],["8",{"2":{"13":2,"14":8,"22":20,"24":2,"53":1,"62":3,"63":1,"65":3,"67":4}}],["85",{"2":{"12":2,"13":4,"14":2,"18":4,"22":16,"43":1,"63":1}}],["760",{"2":{"56":1}}],["76",{"2":{"14":1,"22":2}}],["77",{"2":{"14":1,"22":2,"23":1,"54":2}}],["70",{"2":{"13":1,"14":1,"22":4,"52":2,"54":4,"63":1}}],["7",{"2":{"13":3,"14":11,"22":28,"52":1,"53":1,"62":4,"65":7,"67":3,"68":3}}],["79",{"2":{"13":1,"14":3,"22":8}}],["72",{"2":{"13":2,"14":5,"22":14,"23":2}}],["75",{"2":{"12":4,"13":4,"14":5,"22":26,"43":2,"63":1}}],["≥v2",{"2":{"26":1}}],["≥v6",{"2":{"26":1}}],["≥",{"2":{"17":1,"18":1,"19":1}}],["≥2",{"2":{"13":1,"14":1,"18":1,"19":1}}],["≥1",{"2":{"12":1,"17":1}}],["≧",{"2":{"13":1,"14":1}}],["62",{"2":{"14":2,"22":4}}],["643",{"2":{"56":1}}],["64",{"2":{"14":1,"22":2}}],["67",{"2":{"13":1,"22":2}}],["679491924311229",{"2":{"9":3,"49":3}}],["66",{"2":{"13":1,"14":1,"22":4}}],["61",{"2":{"13":1,"14":1,"22":4}}],["68",{"2":{"13":1,"22":2}}],["6",{"0":{"49":1},"2":{"13":4,"14":7,"18":3,"22":22,"23":3,"52":1,"53":1,"62":3,"65":5,"67":3,"68":3}}],["65",{"2":{"12":2,"14":6,"22":16}}],["60",{"2":{"12":2,"13":7,"14":4,"22":26,"42":5,"43":3,"52":2,"55":3,"56":3,"63":2}}],["63",{"2":{"9":2,"49":2}}],["44",{"2":{"63":1}}],["46",{"2":{"14":3,"22":6}}],["42",{"2":{"14":1,"22":2}}],["48",{"2":{"13":1,"14":1,"22":4}}],["4",{"0":{"45":1},"2":{"13":7,"14":3,"22":20,"52":1,"53":1,"55":1,"63":6}}],["450",{"2":{"34":4}}],["45",{"2":{"12":1,"13":2,"14":9,"19":3,"22":24,"43":1,"62":1,"63":4,"65":2}}],["43",{"2":{"9":4,"49":4,"58":3,"63":1}}],["47",{"2":{"9":2,"14":1,"22":2,"49":2}}],["400",{"2":{"24":1}}],["401",{"2":{"24":2}}],["40",{"2":{"8":6,"12":4,"13":6,"14":8,"22":36,"40":1,"42":5,"43":3,"53":2,"63":2}}],["53",{"2":{"14":3,"22":6}}],["584",{"2":{"45":1}}],["58",{"2":{"14":1,"22":2,"23":1}}],["56",{"2":{"13":2,"14":6,"22":16}}],["525",{"2":{"34":3}}],["52",{"2":{"13":3,"22":6,"23":1}}],["55",{"2":{"12":2,"14":1,"22":6,"43":1,"63":1}}],["5",{"0":{"46":1,"47":1,"48":1},"1":{"47":1,"48":1},"2":{"9":2,"12":1,"13":8,"14":12,"19":4,"22":42,"23":1,"49":2,"52":1,"53":3,"62":5,"63":4,"65":3}}],["50",{"2":{"7":4,"8":4,"9":2,"12":10,"13":12,"14":13,"18":4,"22":70,"23":4,"24":1,"42":1,"43":7,"44":3,"45":5,"49":2,"54":6,"62":3,"63":2,"65":3,"67":4}}],["061",{"2":{"45":1}}],["01t07",{"2":{"42":1,"45":2,"47":2,"48":2,"49":1,"56":7,"58":3,"60":1}}],["0",{"2":{"7":14,"8":14,"9":5,"11":5,"12":89,"13":117,"14":203,"15":18,"17":14,"18":11,"19":16,"22":808,"23":18,"25":1,"34":14,"42":15,"43":66,"44":23,"45":29,"49":5,"54":24,"55":64,"56":14,"59":5,"62":21,"63":7,"65":22,"67":22,"68":21}}],["310",{"2":{"68":3}}],["31",{"2":{"14":1,"22":2,"54":2}}],["38",{"2":{"14":1,"22":2,"45":1,"47":2,"48":2,"49":1}}],["326",{"2":{"68":3}}],["325",{"2":{"63":2}}],["32",{"2":{"14":1,"22":2,"63":1}}],["320",{"2":{"12":1,"22":2,"43":1,"63":1}}],["32050807568877",{"2":{"9":4,"49":4}}],["368",{"2":{"68":3}}],["36",{"2":{"14":5,"22":10}}],["360º",{"0":{"68":1},"2":{"34":1,"35":1,"62":1,"65":1,"68":1}}],["360",{"2":{"7":2,"11":1,"12":1,"13":1,"14":1,"15":3,"22":4,"25":1,"43":1,"55":6,"59":1,"62":1,"63":1,"65":1,"68":2}}],["335",{"2":{"65":1}}],["33",{"2":{"14":3,"22":6}}],["330",{"2":{"12":1,"22":2,"43":1,"63":2}}],["340",{"2":{"62":2,"68":1}}],["34",{"2":{"13":1,"14":2,"22":6,"62":3,"65":3,"67":3}}],["355",{"2":{"63":1}}],["35",{"2":{"12":1,"13":1,"22":4,"63":1}}],["350",{"2":{"12":1,"22":2,"43":1}}],["3",{"0":{"37":1,"38":1,"39":1,"40":1,"44":1,"60":1},"1":{"38":1,"39":1,"40":1},"2":{"12":1,"13":3,"14":5,"17":1,"18":1,"19":1,"22":12,"52":1,"53":1,"63":5}}],["37",{"2":{"9":2,"14":2,"19":2,"22":4,"42":1,"45":1,"49":2}}],["300",{"2":{"12":1,"22":2,"43":1,"63":2}}],["30127018922193",{"2":{"9":7,"49":7}}],["30",{"2":{"7":5,"8":11,"9":2,"12":8,"13":7,"14":6,"22":42,"40":2,"43":4,"49":2,"53":2,"55":7,"62":1,"63":5}}],["39",{"0":{"11":1},"2":{"0":1,"1":3,"5":4,"13":1,"22":2,"30":1,"37":1,"44":2,"46":2,"49":1,"56":8,"58":3,"60":1,"64":1}}],["≤v6",{"2":{"57":1}}],["≤",{"2":{"7":4}}],["17",{"2":{"42":1,"45":2,"47":2,"48":2,"49":1,"56":7,"58":3,"60":1}}],["132",{"2":{"14":2,"19":2,"22":4}}],["130",{"2":{"13":1,"14":3,"22":8,"23":1,"52":2,"55":3}}],["197",{"2":{"48":1}}],["19",{"2":{"14":3,"19":4,"22":6}}],["192",{"2":{"14":1,"22":2}}],["148",{"2":{"56":1}}],["143",{"2":{"23":1}}],["14",{"2":{"14":3,"22":6,"42":4,"43":1}}],["145",{"2":{"12":1,"13":1,"14":2,"22":8}}],["115",{"2":{"63":1}}],["117",{"2":{"14":1,"19":1,"22":2}}],["118",{"2":{"13":1,"22":2}}],["11",{"2":{"13":5,"22":10}}],["110",{"2":{"12":1,"13":2,"14":4,"22":14,"43":1,"63":4}}],["161",{"2":{"49":1,"56":1,"60":1}}],["163",{"2":{"47":1}}],["160",{"2":{"47":1}}],["167",{"2":{"22":1}}],["16",{"2":{"14":1,"22":2}}],["168",{"2":{"13":1,"14":1,"22":4,"23":3,"48":1}}],["165",{"2":{"12":1,"22":2}}],["152",{"2":{"14":1,"19":2,"22":2}}],["15",{"2":{"12":5,"13":4,"14":4,"17":3,"22":26,"34":3,"43":3,"55":3,"56":3,"62":1,"63":3}}],["155",{"2":{"12":1,"13":5,"14":6,"22":24,"43":1}}],["120",{"2":{"63":3}}],["125",{"2":{"23":1}}],["129",{"2":{"23":1}}],["122",{"2":{"14":1,"22":2}}],["12",{"2":{"9":1,"14":4,"22":8,"49":1,"63":1}}],["108",{"2":{"19":1}}],["104",{"2":{"14":1,"22":2}}],["105",{"2":{"13":4,"14":4,"18":3,"22":16,"23":4,"63":1}}],["10",{"2":{"7":5,"8":4,"9":2,"12":6,"13":7,"14":18,"22":62,"30":3,"40":3,"42":4,"43":4,"44":6,"45":11,"47":2,"48":2,"49":3,"53":2,"55":10,"56":7,"58":3,"60":1,"62":4,"63":6,"65":4,"67":4,"68":4}}],["100",{"2":{"2":2,"12":3,"13":3,"14":3,"19":4,"22":18,"42":1,"43":1,"44":3,"53":2,"63":3}}],["180",{"2":{"7":1,"12":2,"13":6,"14":9,"22":34,"43":1,"62":2,"63":2,"68":2}}],["1",{"0":{"33":1,"34":1,"35":1,"38":1,"39":1,"40":1,"42":1,"47":1,"58":1,"67":1},"1":{"34":1,"35":1},"2":{"4":1,"12":3,"13":2,"14":1,"17":2,"20":1,"22":6,"23":1,"24":4,"42":1,"52":1,"53":1,"61":1,"62":2,"63":7,"64":1,"65":2,"67":2}}],["+360",{"2":{"34":1}}],["+2",{"2":{"24":2,"62":2,"65":2}}],["+",{"2":{"3":3,"24":2,"68":1}}],["questions",{"2":{"31":2}}],["question",{"2":{"2":2}}],["quot",{"2":{"2":4,"15":2,"20":4,"22":2,"42":4,"51":6,"54":2,"58":2}}],["≠",{"2":{"2":1}}],["getting",{"0":{"31":1}}],["get",{"2":{"30":1,"31":1,"58":1}}],["generally",{"2":{"25":1,"30":1}}],["geovec",{"2":{"55":1}}],["geo6",{"2":{"34":1,"35":1}}],["geo5",{"2":{"34":1,"35":1}}],["geo4",{"2":{"34":3,"35":1}}],["geo3",{"2":{"34":3,"68":2}}],["geographic",{"2":{"34":1,"61":1,"63":1}}],["geographical",{"2":{"2":4,"25":2}}],["geometryops",{"2":{"25":1,"61":1,"64":1}}],["geometry",{"2":{"25":1}}],["geometrybasics",{"2":{"25":2,"61":1,"64":1}}],["geoplottingdata",{"2":{"23":1,"61":1,"64":1}}],["geo2",{"2":{"2":14,"34":3,"67":5}}],["geo1",{"2":{"2":14,"34":1}}],["geodir",{"2":{"0":5,"51":1,"54":1}}],["geo",{"2":{"0":15,"1":6,"2":27,"4":2,"15":1,"24":2,"34":11,"35":3,"36":8,"38":2,"39":1,"42":2,"45":3,"47":1,"55":2,"56":2,"62":5,"63":17,"65":5,"66":2,"67":5,"68":3}}],["georegion",{"0":{"2":1,"4":1,"23":1,"24":1,"25":1,"36":1,"39":1,"40":1,"45":1,"47":1,"48":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":2,"67":1,"68":1},"1":{"24":1,"26":1,"27":1,"28":1,"29":1,"62":1,"63":1,"65":1,"66":1,"67":3,"68":3},"2":{"0":21,"1":18,"2":45,"3":5,"4":5,"6":3,"7":1,"8":1,"15":7,"17":1,"18":1,"19":1,"21":3,"22":1,"23":3,"24":1,"25":11,"27":1,"28":2,"29":1,"34":4,"36":2,"37":1,"39":1,"40":1,"42":4,"44":1,"45":9,"46":2,"47":5,"48":4,"49":1,"51":2,"55":1,"56":8,"57":2,"60":1,"61":1,"62":7,"63":5,"64":3,"65":5,"66":2,"67":1}}],["georegionsecosystem",{"2":{"55":1}}],["georegions",{"0":{"0":1,"1":1,"3":1,"5":1,"6":1,"10":1,"11":1,"15":1,"16":2,"20":1,"21":1,"26":1,"32":1,"33":1,"37":1,"41":1,"42":1,"43":1,"44":1,"46":1,"49":1,"50":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"1":{"7":1,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"17":2,"18":2,"19":2,"21":1,"22":1,"27":1,"28":1,"29":1,"33":1,"34":2,"35":2,"36":1,"37":1,"38":2,"39":2,"40":2,"42":1,"43":1,"44":1,"45":1,"46":1,"47":2,"48":2,"49":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1},"2":{"0":11,"1":9,"2":20,"3":14,"4":1,"5":8,"6":2,"7":1,"8":1,"9":1,"10":1,"12":3,"13":3,"14":3,"15":5,"16":2,"17":5,"18":5,"19":5,"20":8,"21":3,"22":17,"23":1,"25":3,"26":6,"27":1,"28":1,"29":1,"30":5,"31":1,"32":2,"33":1,"34":1,"35":2,"36":1,"41":2,"42":4,"43":1,"44":2,"45":2,"47":2,"48":4,"49":10,"50":2,"51":1,"52":1,"53":1,"54":4,"55":2,"56":17,"57":6,"58":30,"59":5,"60":9,"61":3,"62":2,"63":2,"64":3,"65":2,"66":1,"67":4,"68":2}}],["go",{"2":{"17":1,"18":1,"19":1,"23":1}}],["global",{"2":{"11":1,"12":1,"13":1,"14":1,"22":4,"25":2,"43":1,"59":1}}],["globe",{"0":{"11":1},"2":{"11":1,"12":1,"13":1,"14":1,"15":2,"22":4,"43":1,"59":1}}],["glb",{"2":{"7":3,"8":2,"9":3,"11":2,"12":23,"13":35,"14":60,"15":5,"17":1,"18":1,"19":1,"21":3,"22":233,"23":1,"25":2,"34":6,"36":1,"38":1,"39":1,"42":3,"43":17,"44":1,"45":3,"48":1,"49":2,"52":2,"53":2,"54":2,"55":1,"59":2,"62":1,"63":5,"65":1}}],["green",{"2":{"63":2}}],["greenland",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1}}],["grl",{"2":{"12":1,"22":2,"43":1}}],["grid",{"2":{"8":1,"27":1,"28":1,"29":1,"68":2}}],["grants",{"2":{"8":1}}],["gt",{"2":{"7":2,"12":1,"58":1}}],["gf",{"2":{"5":1,"12":23,"17":5,"22":42,"34":7,"36":1,"38":1,"43":13,"48":1,"57":1}}],["gives",{"2":{"50":1}}],["given",{"2":{"4":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"20":1,"25":1,"62":1}}],["github",{"2":{"30":1}}],["githubusercontent",{"2":{"23":1,"55":1,"61":1,"64":1}}],["gic",{"2":{"14":1,"22":2}}],["giorgi=true",{"2":{"12":1}}],["giorgi",{"0":{"12":1,"17":1},"2":{"5":3,"12":22,"17":2,"21":1,"22":42,"43":13,"51":1}}],["gvec",{"2":{"3":2}}],["g",{"2":{"2":1}}],["244",{"2":{"42":1}}],["240",{"2":{"12":1,"22":2,"43":1}}],["227",{"2":{"22":1}}],["292",{"2":{"22":1}}],["263",{"2":{"56":1}}],["268",{"2":{"14":1,"22":2}}],["26",{"2":{"14":1,"22":2}}],["276",{"2":{"14":1,"22":2}}],["27",{"2":{"14":4,"22":8}}],["275",{"2":{"12":3,"22":6,"43":3}}],["210",{"2":{"13":2,"22":4}}],["285",{"2":{"14":1,"22":2}}],["28",{"2":{"13":3,"18":3,"22":6}}],["280",{"2":{"12":2,"22":4,"43":2}}],["257",{"2":{"49":1}}],["25",{"2":{"12":2,"13":7,"14":6,"17":3,"19":1,"22":30,"43":2,"54":6,"55":4,"56":4,"63":1,"65":1}}],["255",{"2":{"12":4,"22":8,"43":4}}],["230",{"2":{"12":1,"13":1,"22":4,"43":1}}],["23",{"2":{"9":1,"14":2,"22":4,"49":1}}],["2024",{"2":{"42":1,"45":2,"47":2,"48":2,"49":1,"56":7,"58":3,"60":1}}],["2020",{"0":{"14":1,"19":1},"2":{"14":1,"19":2}}],["2012",{"0":{"13":1,"18":1},"2":{"13":1,"18":2}}],["2000",{"0":{"12":1,"17":1},"2":{"12":1,"17":2}}],["20",{"2":{"7":4,"8":9,"9":2,"12":9,"13":7,"14":8,"17":8,"22":48,"34":4,"40":2,"42":6,"43":8,"44":5,"45":8,"49":2,"52":2,"55":4,"62":3,"63":9,"65":2,"67":1}}],["2",{"0":{"35":1,"36":1,"43":1,"48":1,"59":1,"68":1},"2":{"2":2,"7":1,"8":1,"9":3,"13":2,"14":7,"15":1,"17":1,"18":1,"19":1,"22":14,"23":2,"24":2,"34":1,"42":1,"44":1,"45":5,"49":3,"52":1,"53":1,"55":4,"56":1,"61":1,"62":3,"63":6,"64":1,"65":6,"67":3,"68":1}}],["just",{"2":{"37":1,"42":1,"60":1,"64":1,"67":1}}],["juliaa",{"2":{"62":1,"65":1}}],["juliaaddgeoregions",{"2":{"3":1,"56":1}}],["juliaadd",{"2":{"0":1}}],["juliadownload",{"2":{"55":1}}],["juliadeletegeoregions",{"2":{"3":1,"49":1,"56":1,"60":1}}],["julialon",{"2":{"44":1,"67":1,"68":1}}],["juliaply",{"2":{"44":1,"45":1}}],["juliapolyregion",{"2":{"1":1,"8":1,"29":1,"54":1}}],["julia",{"2":{"30":5}}],["julianlon",{"2":{"24":1}}],["juliageo2",{"2":{"34":1}}],["juliageo",{"2":{"15":1,"23":1,"34":2,"36":1,"38":1,"39":1,"42":2,"65":1}}],["juliageoregion",{"2":{"0":1,"25":1,"56":1}}],["juliausing",{"2":{"10":1,"15":1,"17":1,"18":1,"19":1,"22":4,"32":1,"41":1,"50":1,"58":1}}],["julia>",{"2":{"7":1,"8":1,"9":1,"45":1}}],["juliajulia>",{"2":{"7":1,"8":1,"9":1,"30":1,"45":1,"47":1,"48":1,"49":1,"56":1}}],["juliacoordinates",{"2":{"4":1}}],["juliatablepolyregions",{"2":{"5":1,"13":1,"14":1}}],["juliatabletiltregions",{"2":{"5":1}}],["juliatablerectregions",{"2":{"5":1,"12":1,"21":1}}],["juliatablegeoregions",{"2":{"3":1,"5":1,"11":1,"20":1,"43":1,"59":2}}],["juliatiltregion",{"2":{"1":1,"9":1,"28":1,"49":1,"53":1}}],["juliasetupgeoregions",{"2":{"3":1,"58":1}}],["julia==",{"2":{"2":1}}],["juliaon",{"2":{"2":2,"65":2,"66":1,"67":1,"68":1}}],["juliaoverwrite",{"2":{"0":1,"45":1}}],["juliaisfile",{"2":{"58":1,"60":1}}],["juliaisgeoshape",{"2":{"2":2,"40":1}}],["juliaisgeo",{"2":{"2":1}}],["juliaisequal",{"2":{"2":1,"34":1,"35":1}}],["juliaisid",{"2":{"0":1,"2":1,"43":1}}],["juliain",{"2":{"2":2,"62":2,"63":1}}],["juliareadgeoregions",{"2":{"3":1}}],["juliarectregion",{"2":{"1":1,"6":1,"7":1,"27":1,"42":1,"52":1}}],["juliarmid",{"2":{"0":1,"48":1}}],["juliarm",{"2":{"0":1,"47":1}}],["jl",{"0":{"3":1,"5":1,"11":1,"16":1,"41":1,"57":1,"58":1},"1":{"17":1,"18":1,"19":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"58":1,"59":1,"60":1},"2":{"9":1,"15":2,"16":1,"17":1,"18":1,"19":1,"20":1,"22":10,"25":4,"26":2,"30":1,"31":1,"36":1,"42":2,"45":2,"47":2,"48":3,"49":7,"54":1,"56":13,"57":2,"58":24,"60":7,"61":4,"62":2,"64":3,"65":2}}],["joinpath",{"2":{"20":1,"41":1,"42":1,"51":1,"54":1,"58":3,"60":3}}],["join",{"2":{"1":2}}],["θ",{"2":{"1":2,"9":2,"28":2,"49":1,"53":1}}],["δy",{"2":{"1":2,"9":2,"28":2,"49":1,"53":1}}],["δx",{"2":{"1":2,"9":2,"28":2,"49":1,"53":1}}],["yes",{"2":{"43":1}}],["yet",{"2":{"15":1,"42":1}}],["your",{"0":{"41":1,"42":1,"44":1,"46":1,"49":1,"57":1,"58":1,"59":1,"60":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":2,"48":2,"49":1,"58":1,"59":1,"60":1},"2":{"55":1,"58":1,"60":1}}],["you",{"2":{"7":1,"8":1,"15":1,"20":1,"30":3,"31":2,"33":1,"41":1,"42":4,"45":2,"46":2,"48":1,"49":2,"54":1,"55":2,"59":1,"60":3,"61":1,"67":1}}],["y",{"2":{"1":2,"9":2,"28":2,"49":1,"53":1,"54":1}}],["x",{"2":{"1":2,"9":2,"28":2,"49":1,"53":1,"54":1}}],["x3c",{"2":{"1":3,"2":4,"3":1,"4":2,"27":1,"28":1,"29":1}}],["clear",{"2":{"60":1}}],["clat",{"2":{"23":1,"24":1,"61":1,"62":1,"63":1,"64":1,"65":1}}],["clockwise",{"2":{"28":2}}],["clon",{"2":{"23":1,"24":1,"61":1,"62":1,"63":1,"64":1,"65":1}}],["closed",{"2":{"8":1}}],["close",{"2":{"1":1,"24":2}}],["cst",{"2":{"23":2,"61":2,"64":2}}],["cgi",{"2":{"13":1,"22":2}}],["cgeo",{"2":{"2":5}}],["certain",{"2":{"46":1}}],["ceu",{"2":{"13":1,"22":2}}],["central",{"2":{"12":3,"13":4,"14":8,"18":1,"22":30,"43":2}}],["centre",{"2":{"1":2,"28":3}}],["cna",{"2":{"12":1,"13":1,"14":1,"18":3,"22":6,"43":1}}],["calculate",{"2":{"62":1}}],["calling",{"2":{"22":1,"54":1}}],["called",{"2":{"20":1}}],["call",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["cairomakie",{"2":{"23":1,"61":1,"64":1}}],["cause",{"2":{"57":1}}],["cau",{"2":{"14":1,"22":2}}],["caf",{"2":{"14":1,"22":2}}],["care",{"2":{"35":1}}],["caribbean",{"2":{"13":1,"14":1,"22":4,"55":1,"56":1}}],["car",{"2":{"13":1,"14":1,"22":4}}],["cases",{"2":{"67":1}}],["case",{"0":{"22":1},"2":{"36":1,"62":1,"63":1,"67":2,"68":1}}],["cas",{"2":{"12":1,"13":1,"22":4}}],["cam",{"2":{"12":1,"13":1,"22":4,"43":1}}],["cannot",{"2":{"45":2,"48":2,"49":1}}],["canada",{"2":{"13":2,"22":4}}],["can",{"2":{"1":6,"2":2,"8":1,"15":1,"20":2,"24":1,"30":2,"33":1,"34":1,"35":2,"36":1,"42":3,"43":3,"44":1,"45":1,"49":1,"55":1,"56":1,"57":2,"59":1,"60":2,"62":1,"63":1,"65":1,"66":1}}],["c",{"2":{"6":1,"62":7,"65":5}}],["crb",{"2":{"55":2,"56":6}}],["crop=true",{"2":{"43":1}}],["crop",{"2":{"5":3}}],["created",{"2":{"42":1}}],["create",{"2":{"4":1,"6":1,"59":2}}],["creates",{"2":{"1":3}}],["creating",{"0":{"1":1,"6":1},"1":{"7":1,"8":1,"9":1}}],["circshifted",{"2":{"67":1}}],["circshift",{"0":{"67":1},"2":{"2":2,"67":3}}],["change",{"2":{"67":1}}],["characteristics",{"2":{"2":1}}],["choose",{"2":{"20":1}}],["child",{"2":{"2":2}}],["checking",{"0":{"38":1,"39":1,"40":1}}],["check",{"0":{"43":1},"2":{"2":5,"33":1,"37":2,"38":1,"39":1,"40":1,"43":1,"47":1,"61":2}}],["checks",{"0":{"37":1},"1":{"38":1,"39":1,"40":1},"2":{"0":1,"2":6,"25":1}}],["corroborate",{"2":{"62":1,"65":1}}],["correctly",{"2":{"24":1}}],["color=",{"2":{"24":1,"62":1,"63":6,"65":1}}],["come",{"2":{"57":1}}],["compare",{"2":{"67":1,"68":1}}],["compared",{"2":{"2":2,"35":1,"67":1}}],["comparing",{"2":{"66":1}}],["completely",{"2":{"60":1}}],["complicated",{"2":{"42":1,"66":1}}],["comments",{"2":{"31":1}}],["comments=true",{"2":{"23":1,"61":1,"64":1}}],["command",{"2":{"30":1}}],["common",{"2":{"28":1}}],["com",{"2":{"23":1,"55":1,"61":1,"64":1}}],["copy",{"2":{"22":3,"58":2}}],["copied",{"2":{"3":1}}],["coastline",{"2":{"23":1,"61":1,"64":1}}],["coast",{"2":{"13":1,"22":2,"23":5,"61":5,"64":5}}],["concern",{"2":{"62":1,"65":1}}],["confirm",{"2":{"43":1}}],["conditions",{"2":{"34":1}}],["considering",{"2":{"34":2}}],["consider",{"2":{"34":1,"63":1}}],["considered",{"2":{"25":1,"34":1}}],["constructed",{"2":{"32":1}}],["construct",{"2":{"7":1,"8":1,"9":1}}],["constraints",{"2":{"7":2}}],["contain",{"2":{"25":1,"28":1}}],["container",{"2":{"2":2}}],["containing",{"2":{"1":2,"2":1,"3":5,"28":1,"54":1}}],["coordinate",{"2":{"1":4,"24":2,"28":2}}],["coordinates",{"0":{"24":1},"2":{"1":3,"4":1,"24":4,"25":1,"28":3,"29":1,"34":2,"44":1,"62":6,"63":5,"65":2,"67":2,"68":1}}],["currently",{"2":{"7":1,"8":1}}],["current",{"2":{"0":1,"2":1,"3":3,"37":1,"38":1,"59":1,"60":1}}],["customrect",{"2":{"55":1}}],["customized",{"2":{"20":1}}],["custom=false",{"2":{"11":1,"12":1,"13":1,"14":1}}],["custom",{"0":{"6":1,"42":1,"46":1,"49":1,"50":1,"55":1,"56":1,"59":1,"60":1},"1":{"7":1,"8":1,"9":1,"47":1,"48":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"0":12,"1":6,"2":3,"3":5,"5":14,"15":1,"20":1,"21":2,"22":6,"42":3,"43":1,"49":3,"50":1,"55":2,"56":4,"58":1,"59":3,"60":2}}],["https",{"2":{"23":1,"55":1,"61":1,"64":1}}],["honestly",{"2":{"54":1}}],["however",{"2":{"24":1,"54":1,"57":1,"62":1,"65":1,"66":1}}],["how",{"2":{"20":1,"31":1,"36":1,"50":1}}],["hovmoller",{"2":{"9":1}}],["home",{"2":{"0":2,"1":3,"5":4,"22":6,"49":1,"56":1,"58":6,"60":1}}],["homedir",{"2":{"0":4,"1":3,"2":2,"5":8,"57":1}}],["heads",{"2":{"55":1}}],["headers",{"2":{"51":1}}],["header",{"2":{"8":1,"52":1,"53":1,"54":3}}],["heavy",{"2":{"42":1}}],["help",{"0":{"31":1}}],["height=750",{"2":{"24":1,"62":1,"63":1,"65":1}}],["here",{"2":{"7":1,"8":1,"9":1,"15":2,"17":1,"18":1,"19":1,"20":1,"22":4,"24":1,"34":2,"36":2,"42":2,"43":1,"44":1,"45":1,"47":1,"48":1,"58":1,"59":1,"60":1,"62":2,"63":1,"65":2,"66":1,"67":1}}],["has",{"0":{"39":1,"47":1},"2":{"7":1,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"34":1,"35":1,"39":1,"40":1,"42":1,"44":1,"45":4,"47":1,"49":1,"55":4,"56":1,"62":1,"65":1,"67":1,"68":1}}],["handling",{"0":{"3":1}}],["half",{"2":{"1":2,"28":2}}],["have",{"0":{"43":1},"2":{"0":1,"2":3,"3":1,"6":1,"24":1,"31":1,"32":2,"34":1,"36":1,"42":1,"43":2,"44":1,"48":1,"49":1,"54":2,"55":1,"57":2,"59":2,"67":1}}],["mkpath",{"2":{"41":1}}],["minimum",{"2":{"24":4,"62":4,"65":4}}],["mdg",{"2":{"14":1,"22":2}}],["markersize=20",{"2":{"62":2,"65":3}}],["may",{"2":{"30":1}}],["make",{"2":{"30":1}}],["map",{"2":{"24":1,"63":1}}],["maps",{"2":{"24":1}}],["maximum",{"2":{"24":4,"62":4,"65":4}}],["main",{"2":{"23":1,"30":2,"55":1,"61":1,"64":1}}],["manual",{"2":{"52":2,"53":2}}],["manually",{"2":{"42":1,"50":1,"51":2,"54":2}}],["manipulation",{"0":{"41":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1}}],["manager",{"2":{"30":1}}],["manner",{"2":{"21":1}}],["many",{"2":{"13":1,"18":1,"24":1}}],["madagascar",{"2":{"14":1,"22":2}}],["matter",{"2":{"2":1,"67":2}}],["match",{"2":{"1":1}}],["means",{"2":{"57":1}}],["meant",{"2":{"57":1}}],["method",{"2":{"47":1,"48":1}}],["meta",{"2":{"1":3}}],["me",{"2":{"30":1,"31":1,"67":1}}],["mexico",{"2":{"13":1,"22":2}}],["mediterranean",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1}}],["med",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1}}],["modify",{"2":{"42":1}}],["modification",{"2":{"42":1}}],["modulelog",{"2":{"22":3}}],["monsoon",{"2":{"14":1,"22":2}}],["monitoring",{"2":{"0":4,"1":3,"2":5}}],["more",{"0":{"21":1},"2":{"9":1,"15":1,"20":1,"36":1,"66":1}}],["most",{"2":{"7":1,"8":1,"15":3,"42":1,"59":1}}],["must",{"2":{"0":2,"2":2,"8":2,"25":1,"34":2,"36":1}}],["right",{"2":{"59":1}}],["rows",{"2":{"43":1}}],["ropes",{"2":{"41":1}}],["rotation",{"2":{"28":1}}],["rotated",{"2":{"9":1}}],["raw",{"2":{"23":1,"55":1,"61":1,"64":1}}],["rar",{"2":{"14":1,"22":2}}],["rfe",{"2":{"14":1,"22":2}}],["runner",{"2":{"22":6,"49":1,"56":1,"58":6,"60":1}}],["running",{"2":{"2":4}}],["russia",{"2":{"14":2,"22":4}}],["rmid",{"2":{"0":1,"48":1}}],["rm",{"2":{"0":1,"47":1}}],["red",{"2":{"63":2}}],["reexported",{"2":{"61":1,"64":1}}],["require",{"2":{"57":1}}],["refs",{"2":{"55":1}}],["refer",{"2":{"20":1}}],["relevant",{"2":{"59":1}}],["release",{"2":{"30":2}}],["relatively",{"2":{"51":1}}],["reload",{"2":{"45":1}}],["replacing",{"2":{"60":1}}],["replace",{"2":{"45":1,"46":1,"51":1}}],["repository",{"2":{"30":1}}],["regy",{"2":{"54":3}}],["regx",{"2":{"54":3}}],["regid",{"2":{"54":3}}],["registry",{"2":{"30":1}}],["regions",{"0":{"13":1,"14":1,"18":1,"19":1},"2":{"25":1,"57":1}}],["regiongrids",{"2":{"9":1}}],["region",{"0":{"11":1},"2":{"1":4,"7":5,"8":4,"9":7,"15":2,"17":2,"18":2,"19":2,"21":1,"23":2,"25":1,"27":1,"28":4,"29":1,"34":3,"42":2,"44":2,"45":4,"49":2,"55":8,"56":2,"61":2,"62":2,"63":7,"65":2,"67":3,"68":2}}],["regardless",{"2":{"6":1}}],["research",{"0":{"57":1},"1":{"58":1,"59":1,"60":1}}],["reset",{"2":{"3":1}}],["resize",{"2":{"24":1,"62":1,"63":1,"65":1}}],["resl",{"2":{"23":1,"61":1,"64":1}}],["respectively",{"2":{"8":1,"58":1}}],["respective",{"2":{"6":3,"9":1,"20":1,"42":1,"50":1,"51":1}}],["recommended",{"2":{"42":1}}],["recall",{"2":{"6":1}}],["rectlist",{"0":{"52":1},"2":{"22":1,"42":1,"43":1,"51":1,"52":1,"55":1,"58":4,"59":1,"60":2}}],["rectangle",{"2":{"7":3,"9":1}}],["rectangular",{"2":{"1":3,"9":1,"26":1,"27":1,"28":2}}],["rectilinear",{"2":{"1":2,"7":1,"8":1,"9":1,"13":1,"15":1,"17":1,"18":1,"25":1,"26":1,"27":1,"28":1,"29":1,"42":1,"49":1,"55":4,"56":1}}],["rectregions",{"0":{"7":1,"27":1},"2":{"5":4,"6":1,"34":1,"58":1}}],["rectregion",{"0":{"51":1},"1":{"52":1,"53":1},"2":{"1":2,"2":1,"6":1,"7":3,"8":1,"11":1,"12":23,"13":1,"14":1,"17":1,"22":46,"26":1,"27":1,"34":4,"35":1,"36":1,"38":1,"42":3,"43":16,"47":1,"48":1,"51":1,"52":6,"56":1,"59":1,"63":1}}],["reason",{"2":{"46":1}}],["reads",{"2":{"54":1}}],["readdlm",{"2":{"23":1,"61":1,"64":1}}],["read",{"2":{"15":1,"55":1}}],["readgeoregions",{"2":{"3":1,"55":2}}],["reading",{"0":{"0":1,"15":1,"44":1},"2":{"15":1}}],["realize",{"2":{"57":1}}],["realized",{"2":{"46":1}}],["really",{"2":{"46":1}}],["real",{"2":{"1":8,"2":4,"4":2}}],["remove",{"2":{"47":1,"48":2,"49":2,"56":1}}],["removed",{"2":{"0":1,"48":1}}],["removes",{"2":{"0":2}}],["removing",{"0":{"0":1,"46":1,"47":1,"48":1,"49":1,"60":1},"1":{"47":1,"48":1},"2":{"41":1,"47":1,"48":1,"49":1,"56":1,"60":1}}],["retrieving",{"0":{"24":1,"44":1},"2":{"41":1,"44":1,"57":1}}],["retrieve",{"2":{"15":2,"24":1,"44":1,"49":1}}],["retrieved",{"2":{"0":6,"1":3,"2":4,"3":2,"5":4,"49":1}}],["return",{"2":{"2":2,"22":1,"34":1}}],["returnid",{"2":{"2":6}}],["returning",{"2":{"0":1,"2":1}}],["returns",{"2":{"0":2,"1":3,"2":18,"3":1,"4":1}}],["nfor",{"2":{"34":2}}],["nlon",{"2":{"24":1}}],["nlat",{"2":{"24":1}}],["n=50",{"2":{"24":1}}],["npo",{"2":{"14":1,"22":2}}],["nz",{"2":{"14":1,"22":2}}],["nsa",{"2":{"14":1,"22":2}}],["nws",{"2":{"14":1,"22":2}}],["nwn",{"2":{"14":1,"22":2,"23":3}}],["nca",{"2":{"14":1,"22":2}}],["ntp",{"2":{"13":1,"22":2}}],["natural",{"2":{"63":1}}],["natgeo",{"2":{"23":1,"61":1,"64":1}}],["nao",{"2":{"14":1,"22":2}}],["nau",{"2":{"13":1,"14":1,"22":4}}],["nas",{"2":{"12":1,"13":1,"22":4}}],["named",{"2":{"45":1}}],["names",{"2":{"2":2}}],["name",{"2":{"1":9,"2":2,"3":3,"6":5,"7":4,"8":3,"9":4,"11":1,"12":1,"13":1,"14":1,"15":2,"17":2,"18":2,"19":2,"22":4,"23":2,"25":2,"34":8,"42":6,"43":1,"44":2,"45":4,"49":2,"51":2,"53":1,"54":4,"55":8,"56":2,"59":1,"62":2,"65":2,"67":2,"68":2}}],["next",{"2":{"65":1}}],["necessary",{"2":{"30":1,"58":1}}],["neaf",{"2":{"14":1,"22":2}}],["nes",{"2":{"14":1,"22":2}}],["nen",{"2":{"14":1,"22":2}}],["neb",{"2":{"13":1,"22":2}}],["neu",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1}}],["needs",{"2":{"54":1}}],["need",{"2":{"2":3,"7":1,"45":1,"46":1}}],["newly",{"2":{"36":1}}],["newzealand",{"2":{"13":1,"22":2}}],["new",{"0":{"7":1,"8":1,"9":1},"2":{"0":1,"6":1,"14":1,"22":2,"30":1,"36":1,"38":1,"42":1,"46":1,"60":1}}],["number",{"2":{"2":2,"4":1,"24":2}}],["n",{"2":{"1":1,"2":4,"4":2,"7":6,"8":1,"9":1,"11":1,"12":1,"13":2,"14":1,"15":1,"17":1,"18":1,"19":1,"22":6,"23":1,"24":2,"25":1,"27":1,"34":1,"42":1,"43":1,"44":1,"45":2,"49":1,"52":3,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["non",{"0":{"35":1},"2":{"25":1}}],["now",{"2":{"23":1,"32":1,"43":1,"44":1,"46":1,"47":2,"49":1,"56":1,"59":1,"62":2,"63":2,"65":2,"67":1}}],["northwest",{"2":{"13":1,"14":2,"22":6,"23":2}}],["northeast",{"2":{"13":1,"14":2,"22":6}}],["northern",{"2":{"12":1,"14":7,"22":16,"43":1}}],["north",{"2":{"7":1,"12":4,"13":5,"14":5,"18":1,"22":28,"23":2,"25":1,"43":3,"54":2}}],["notebooks",{"2":{"55":1}}],["note",{"2":{"34":1,"52":1,"59":1,"62":1,"65":1}}],["nothing",{"2":{"0":4,"3":4,"5":4,"23":1,"34":1,"59":1,"61":1,"64":1}}],["not",{"2":{"0":7,"1":1,"2":11,"5":1,"22":3,"34":3,"35":1,"42":3,"47":2,"48":1,"55":1,"56":1,"58":1,"59":1,"62":1,"63":1,"65":1,"67":3}}],["no",{"2":{"0":1,"2":3,"22":2,"45":1,"59":1,"62":1,"65":1}}],["perimeter",{"2":{"65":2,"66":2}}],["permanently",{"2":{"49":1,"56":1,"60":1}}],["perform",{"2":{"34":2,"61":1}}],["per",{"2":{"34":1}}],["peninsular",{"2":{"14":1,"22":2}}],["pkg>",{"2":{"30":3}}],["ply",{"2":{"44":1,"47":1}}],["please",{"2":{"31":2,"45":1,"51":1,"54":1,"67":1}}],["plotted",{"2":{"24":1}}],["plotting",{"2":{"24":2}}],["plot",{"2":{"24":1,"63":1}}],["plon",{"2":{"2":4}}],["plateau",{"2":{"13":1,"14":1,"22":4}}],["plat",{"2":{"2":4}}],["pop",{"2":{"67":2}}],["possible",{"2":{"20":1,"21":1,"42":1}}],["postulate",{"2":{"2":2}}],["point2",{"2":{"2":2,"25":1,"61":2,"64":2}}],["point",{"0":{"62":1,"65":1},"2":{"2":18,"7":1,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"30":1,"34":1,"42":1,"44":1,"45":2,"49":1,"55":4,"56":1,"61":2,"62":14,"64":2,"65":15,"67":1,"68":1}}],["points",{"0":{"67":1},"2":{"1":3,"2":4,"4":2,"24":4,"61":1,"62":2,"64":1,"67":3}}],["polylist",{"2":{"22":1,"42":2,"43":1,"54":1,"55":1,"58":4,"59":1,"60":1}}],["polygons",{"2":{"25":1}}],["polygon",{"2":{"8":1,"24":2,"25":1}}],["polygonal",{"2":{"1":2,"8":3,"18":1,"19":1,"23":1,"26":1,"29":1,"34":1,"44":1,"45":2,"62":1,"65":1,"67":1,"68":1}}],["polyregions",{"0":{"8":1,"29":1},"2":{"5":5,"6":1,"54":2,"58":1}}],["polyregion",{"0":{"54":1},"2":{"1":2,"2":1,"6":2,"8":2,"13":34,"14":59,"18":1,"19":1,"22":182,"26":1,"29":1,"34":4,"35":1,"39":1,"42":4,"43":2,"44":2,"45":4,"47":1,"48":1,"54":7,"56":1,"63":4,"67":1,"68":1}}],["pid",{"2":{"1":6,"2":1,"6":4,"7":3,"8":2,"9":3,"15":1,"17":1,"18":1,"19":1,"23":1,"25":2,"34":2,"35":1,"36":1,"42":5,"44":1,"45":2,"49":1,"52":1,"53":1,"54":4,"55":4,"56":1,"62":1,"65":1,"67":1,"68":1}}],["pwd",{"2":{"0":1,"1":3,"2":1,"3":6,"41":2,"42":2,"43":3,"44":1,"45":3,"47":2,"48":2,"49":3,"58":3,"59":1,"60":5}}],["present",{"2":{"59":1}}],["pressing",{"2":{"30":1}}],["previous",{"2":{"57":1}}],["previously",{"0":{"45":1}}],["pretty",{"2":{"42":1}}],["pre",{"2":{"28":1}}],["prefix",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["predefined=false",{"2":{"11":1,"59":1}}],["predefined",{"0":{"10":1,"15":1,"16":1},"1":{"11":1,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1},"2":{"5":6,"15":1,"16":1,"17":1,"18":1,"19":1,"20":3,"22":2,"23":1,"48":2,"57":1,"59":1}}],["preexisting",{"2":{"0":2,"3":1,"45":1,"58":1}}],["print",{"2":{"2":2}}],["prove",{"2":{"64":1}}],["problems",{"2":{"57":1}}],["property",{"0":{"37":1},"1":{"38":1,"39":1,"40":1}}],["properties",{"0":{"4":1,"32":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"0":1,"7":1,"8":1,"9":1,"15":2,"17":1,"18":1,"19":1,"20":1,"23":1,"34":1,"42":1,"44":1,"45":2,"49":1,"55":4,"56":1,"62":1,"65":1,"67":1,"68":1}}],["prompt",{"2":{"30":1}}],["process",{"2":{"23":1}}],["projects",{"2":{"36":1,"49":2,"56":1,"57":1,"58":3,"60":1}}],["projections",{"2":{"24":1}}],["projection",{"2":{"24":2}}],["project",{"0":{"3":1,"41":1,"42":1,"44":1,"46":1,"49":1,"57":1,"58":1,"59":1,"60":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":2,"48":2,"49":1,"58":1,"59":1,"60":1},"2":{"2":3,"3":1,"20":2,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"45":2,"49":2,"55":1,"56":1,"57":6,"58":3,"59":1,"60":2}}],["program",{"2":{"2":4}}],["page",{"2":{"50":1}}],["patch",{"2":{"30":1}}],["path=joinpath",{"2":{"41":1,"42":2,"43":3,"44":1,"45":3,"47":2,"48":2,"49":3}}],["path=pwd",{"2":{"39":1,"40":2,"56":4,"58":2,"59":1}}],["paths",{"2":{"2":1,"20":1}}],["path",{"2":{"0":27,"1":15,"2":26,"3":14,"5":12,"20":2,"42":9,"45":1,"57":3,"58":2,"59":2,"60":2}}],["particular",{"2":{"46":1,"57":1}}],["part",{"2":{"20":1,"57":1}}],["parent",{"2":{"1":3,"2":1,"6":1,"7":1,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"21":1,"22":4,"23":1,"25":2,"34":1,"42":1,"43":1,"44":1,"45":2,"49":1,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["pacific",{"2":{"13":3,"14":3,"22":12}}],["package",{"2":{"0":3,"30":1,"57":1,"61":2,"64":2}}],["paper",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["pass",{"2":{"2":2}}],["obviously",{"2":{"65":1}}],["obvious",{"2":{"62":1,"66":1}}],["obtain",{"2":{"9":1}}],["omitted",{"2":{"43":1}}],["ogeo",{"2":{"36":2}}],["option",{"2":{"35":1}}],["open",{"2":{"31":1}}],["other",{"2":{"21":1,"63":2,"64":1,"67":1}}],["otherwise",{"2":{"2":3}}],["ocean",{"2":{"13":1,"14":10,"22":22,"62":2,"65":1}}],["out",{"0":{"59":1},"2":{"7":1,"8":1,"31":1,"36":1}}],["over",{"2":{"58":2}}],["override",{"2":{"3":1}}],["overwritten",{"2":{"3":1,"58":1}}],["overwriting",{"0":{"45":1},"2":{"0":1,"58":3}}],["overwrite=true",{"2":{"10":1,"58":1}}],["overwrites",{"2":{"0":1}}],["overwrite",{"2":{"0":1,"3":6,"45":2,"58":2}}],["original",{"2":{"58":3}}],["ordered",{"2":{"52":1}}],["order",{"2":{"2":3,"6":1,"7":1,"24":1,"45":1,"51":1,"52":3,"53":1,"58":1,"67":2}}],["or",{"2":{"2":8,"20":1,"30":1,"31":1,"33":1,"34":1,"37":1,"42":1,"46":1,"47":1,"48":3,"51":1,"55":1,"56":1,"60":1,"61":1,"66":1}}],["once",{"2":{"45":1}}],["only",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"20":1,"22":1}}],["one",{"2":{"0":1}}],["on",{"0":{"2":1,"48":1,"64":1,"65":1,"66":1},"1":{"65":1,"66":1,"67":2,"68":2},"2":{"0":1,"2":5,"4":1,"7":2,"8":1,"15":1,"20":1,"23":1,"24":3,"25":1,"27":1,"28":1,"29":1,"34":1,"36":1,"44":2,"48":1,"54":1,"57":1,"63":1,"64":3,"65":6,"66":2,"67":5,"68":1}}],["often",{"2":{"61":1}}],["of",{"0":{"10":1,"20":1,"21":1,"23":1,"24":1,"26":1,"41":1,"50":1},"1":{"11":1,"12":1,"13":1,"14":1,"21":1,"22":1,"24":1,"27":1,"28":1,"29":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"0":12,"1":15,"2":31,"3":7,"4":7,"5":7,"6":5,"7":1,"8":5,"9":2,"13":1,"14":1,"15":5,"16":1,"17":1,"18":2,"19":1,"20":2,"21":3,"22":2,"23":2,"24":5,"25":8,"26":2,"28":6,"29":1,"30":2,"32":2,"34":2,"35":2,"36":1,"40":1,"41":2,"42":2,"44":1,"45":2,"46":1,"51":3,"52":2,"53":1,"54":1,"55":1,"57":4,"58":1,"59":3,"60":1,"62":7,"64":2,"65":5,"66":2,"67":4,"68":3}}],["lifting",{"2":{"42":1}}],["line",{"2":{"54":5}}],["linewidth=5",{"2":{"24":1,"62":1,"63":5,"65":1}}],["linewidth=3",{"2":{"24":1,"62":1,"63":1,"65":1}}],["lines",{"2":{"24":2,"54":4,"62":2,"63":6,"65":2}}],["limits=",{"2":{"24":1,"62":1,"63":1,"65":1}}],["listing",{"0":{"55":1,"59":1},"2":{"21":1}}],["listings",{"0":{"20":1},"1":{"21":1,"22":1}}],["listed",{"2":{"3":1,"15":1,"43":1}}],["lists",{"0":{"21":1,"49":1},"2":{"0":5,"2":1,"20":1,"22":3,"42":4,"49":1,"56":1,"60":1}}],["list",{"0":{"10":1,"60":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"0":7,"1":6,"2":2,"3":3,"5":6,"17":1,"18":1,"19":1,"20":4,"21":1,"42":1,"45":1,"47":1,"48":1,"52":1,"53":1,"54":1,"55":1,"56":5,"59":1}}],["let",{"2":{"23":1,"34":1,"42":1,"43":1,"44":2,"49":1,"56":1,"62":2,"63":2,"65":2,"66":1,"67":1}}],["letter",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["length",{"2":{"8":2,"24":2}}],["lt",{"2":{"7":1,"58":1}}],["layout",{"2":{"24":1,"62":1,"63":1,"65":1}}],["larger",{"2":{"20":1}}],["last",{"2":{"1":1,"54":1}}],["latest",{"2":{"30":3}}],["lat",{"0":{"40":1},"2":{"1":2,"2":3,"4":2,"8":4,"24":2,"28":1,"29":2,"34":5,"39":2,"40":2,"44":1,"67":9,"68":2}}],["latitudes",{"2":{"2":2}}],["latitude",{"2":{"1":3,"2":1,"4":2,"8":2,"24":1,"28":3,"54":3}}],["look",{"2":{"67":1}}],["lost",{"2":{"49":1,"56":1,"60":1}}],["loaded",{"0":{"47":1},"2":{"47":1}}],["load",{"2":{"23":1,"34":1}}],["logs",{"2":{"2":2}}],["logging",{"2":{"0":4,"1":6,"2":5}}],["longer",{"2":{"45":1}}],["long",{"2":{"2":3,"35":1}}],["longitude",{"2":{"1":3,"2":3,"4":2,"8":2,"24":1,"28":3,"54":3,"62":1,"65":1}}],["lon",{"0":{"40":1},"2":{"1":2,"2":3,"4":2,"8":4,"24":2,"28":1,"29":2,"34":5,"39":2,"40":2,"67":8,"68":4}}],["local",{"2":{"0":3}}],["d",{"2":{"65":5}}],["data",{"2":{"61":1}}],["dtp",{"2":{"55":2,"56":1}}],["during",{"2":{"24":1}}],["differen",{"2":{"35":1}}],["differentiate",{"2":{"26":1}}],["different",{"0":{"4":1},"2":{"2":2,"6":1,"21":1,"24":1,"26":1,"32":2,"34":8,"35":1,"57":2,"64":1,"67":1}}],["diagrams",{"2":{"9":1}}],["displayed",{"2":{"5":2}}],["display",{"2":{"3":1,"5":10}}],["directly",{"2":{"42":1,"52":2,"53":1,"54":1,"56":2,"60":1}}],["direction",{"2":{"28":1}}],["directions",{"2":{"28":1}}],["directories",{"2":{"20":1}}],["directory",{"2":{"0":4,"1":3,"2":4,"3":5,"5":4,"42":3,"45":1,"57":2,"58":1,"59":1,"60":1}}],["dirname",{"2":{"0":2,"2":3}}],["docs",{"2":{"49":1,"56":1,"58":3,"60":1}}],["documentation",{"2":{"20":1}}],["done",{"2":{"54":1}}],["don",{"2":{"37":1,"46":1,"64":1}}],["doing",{"2":{"25":1}}],["download",{"2":{"23":1,"61":1,"64":1}}],["domains",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["domain",{"2":{"8":1,"25":1}}],["does",{"0":{"36":1},"2":{"2":2,"22":3,"47":1,"67":1}}],["do",{"2":{"1":1,"5":1,"7":1,"35":1,"42":4,"46":1,"47":1,"48":1,"52":1,"53":1,"60":1}}],["determining",{"2":{"64":1}}],["determined",{"2":{"2":3}}],["determine",{"2":{"2":2,"36":1,"61":1,"63":1,"64":1,"66":1}}],["detect",{"2":{"62":1,"65":1}}],["denote",{"2":{"61":1,"64":1}}],["denoted",{"2":{"26":3}}],["dealing",{"2":{"61":1}}],["deep",{"2":{"55":1}}],["description",{"2":{"52":1}}],["deleted",{"2":{"49":1}}],["delete",{"2":{"46":1,"60":1}}],["deletegeoregions",{"2":{"3":1,"49":1,"60":2}}],["delimitedfiles",{"2":{"23":1,"50":1,"61":1,"64":1}}],["depot",{"2":{"20":1,"42":1}}],["depending",{"2":{"2":2}}],["degrees",{"2":{"1":1,"28":2}}],["define",{"2":{"2":2,"7":1,"24":1,"34":3,"51":1,"52":1,"53":1,"54":1,"62":1,"66":1,"67":2,"68":1}}],["defined",{"0":{"40":2,"41":1,"45":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"0":1,"2":12,"3":2,"5":3,"12":3,"13":3,"14":3,"17":3,"18":3,"19":3,"20":4,"24":1,"27":1,"28":1,"29":1,"36":2,"40":1,"42":1,"43":1,"44":1,"45":1,"49":1,"50":1,"54":3,"55":1,"56":2,"57":2,"58":2,"59":2,"62":1,"63":2,"65":1}}],["defining",{"0":{"7":1,"8":1,"9":1,"67":1},"2":{"1":1,"25":2,"51":1,"54":2,"67":1}}],["default",{"0":{"10":1,"11":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"0":4,"1":3,"2":11,"3":1,"5":6,"15":1,"20":1,"24":1,"25":2,"42":2,"57":1,"60":2}}],["defaults",{"2":{"0":6,"1":3,"2":4,"3":3,"5":4}}],["smaller",{"2":{"63":1}}],["such",{"2":{"36":1,"56":1,"62":1,"65":1,"67":1}}],["suppose",{"2":{"32":1,"55":1}}],["supertype",{"2":{"25":1}}],["suggestions",{"2":{"31":1}}],["subregion",{"2":{"25":1}}],["subtypes",{"2":{"21":1}}],["subset",{"2":{"2":1,"21":1,"25":1}}],["shared",{"2":{"57":1}}],["shapes",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"64":1,"67":1,"68":1}}],["shape",{"0":{"23":1,"39":1,"40":1},"1":{"24":1},"2":{"1":1,"2":15,"4":4,"7":2,"8":3,"9":2,"15":2,"17":2,"18":2,"19":2,"23":3,"24":3,"25":2,"34":5,"35":3,"36":1,"37":1,"39":1,"40":1,"42":2,"44":3,"45":4,"49":2,"55":8,"56":2,"62":2,"65":2,"66":1,"67":3,"68":2}}],["shown",{"2":{"59":1}}],["show",{"2":{"41":1}}],["should",{"2":{"25":1,"42":1,"54":4,"57":1,"67":1}}],["shifting",{"0":{"68":1}}],["shift",{"2":{"35":1,"68":1}}],["shifted",{"2":{"34":1,"62":1,"65":1}}],["slat",{"2":{"24":4,"62":6,"63":10,"65":6}}],["slon",{"2":{"24":4,"62":5,"63":10,"65":5}}],["soneto",{"2":{"65":1}}],["so",{"2":{"22":1,"24":1,"35":1,"42":1,"44":1,"57":1,"59":1,"67":2,"68":1}}],["something",{"2":{"64":1,"66":1}}],["sometimes",{"2":{"36":1,"37":2,"64":2}}],["some",{"2":{"21":1,"43":1,"46":1,"54":1}}],["soon",{"2":{"30":1}}],["soo",{"2":{"14":1,"22":2}}],["southwest",{"2":{"14":1,"22":2}}],["southeastern",{"2":{"13":1,"22":2}}],["southeast",{"2":{"12":1,"13":1,"14":2,"22":8,"34":1,"36":1,"38":1,"55":1}}],["southern",{"2":{"12":2,"13":2,"14":8,"22":24,"43":1,"51":2}}],["south",{"2":{"7":1,"12":2,"13":5,"14":10,"22":34,"25":1,"43":1,"51":2}}],["source",{"2":{"0":6,"1":3,"2":10,"3":5,"4":1,"5":4,"25":1,"27":1,"28":1,"29":1}}],["simply",{"2":{"62":1,"65":1}}],["simpler",{"2":{"66":1}}],["simple",{"2":{"51":2}}],["similar",{"2":{"57":1}}],["simultaneously",{"2":{"42":1}}],["since",{"2":{"30":1,"63":1}}],["sio",{"2":{"14":1,"22":2}}],["siberia",{"2":{"14":2,"22":4}}],["sides",{"2":{"24":1}}],["side",{"2":{"4":1,"24":2}}],["sws",{"2":{"14":1,"22":2}}],["scatter",{"2":{"62":2,"65":3}}],["sca",{"2":{"14":1,"22":2}}],["screen",{"2":{"2":2}}],["src",{"2":{"22":3,"49":1,"56":1,"58":6,"60":1}}],["srx",{"2":{"13":35,"18":5,"22":66,"48":1}}],["srex=false",{"2":{"14":1}}],["srex=true",{"2":{"13":1}}],["srex",{"0":{"13":1,"18":1},"2":{"5":4,"13":33,"21":1,"22":66,"57":1}}],["ssa",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1}}],["select",{"2":{"65":1}}],["separated",{"2":{"54":1}}],["setting",{"2":{"20":1}}],["set",{"2":{"16":1,"40":1,"45":1,"59":1}}],["sets",{"2":{"15":1}}],["setup",{"0":{"58":1},"2":{"3":1,"20":1,"23":1}}],["setupgeoregions",{"2":{"3":1,"10":1,"41":1,"58":2}}],["several",{"2":{"15":1,"26":1,"32":1}}],["ses",{"2":{"14":1,"22":2}}],["seneviratne",{"0":{"13":1,"18":1},"2":{"13":1,"18":2}}],["seaf",{"2":{"14":1,"22":2}}],["sea",{"2":{"12":1,"13":1,"14":2,"22":8,"34":8,"36":5,"38":3}}],["section",{"2":{"15":1,"23":1}}],["sections",{"2":{"6":1}}],["second",{"2":{"2":3,"48":1}}],["seen",{"2":{"6":1}}],["see",{"2":{"2":1,"7":1,"8":1,"9":1,"15":2,"17":1,"18":1,"19":1,"22":4,"24":1,"25":2,"34":2,"35":1,"36":2,"42":2,"43":3,"44":2,"45":2,"47":2,"48":1,"49":1,"51":1,"54":1,"58":1,"59":1,"60":2,"62":4,"63":3,"65":4,"66":1,"67":1,"68":1}}],["segments",{"2":{"2":2,"4":1,"24":2}}],["spaces",{"2":{"51":1,"54":1}}],["spans",{"2":{"15":1}}],["spo",{"2":{"14":1,"22":2}}],["specify",{"2":{"7":1,"8":1,"24":2,"42":2,"59":1}}],["specifying",{"2":{"3":1}}],["specifically",{"2":{"37":1,"57":1,"58":1}}],["specification",{"2":{"8":1,"9":1,"57":2}}],["specific",{"0":{"21":1},"2":{"6":1,"20":1}}],["specifies",{"2":{"3":1}}],["specified",{"2":{"0":3,"1":3,"3":1,"25":1,"42":1,"59":1}}],["split",{"2":{"2":2}}],["stored",{"2":{"58":1}}],["store",{"2":{"58":1}}],["stops",{"2":{"2":4}}],["start",{"2":{"67":3}}],["starting",{"2":{"67":1}}],["started",{"2":{"58":1}}],["state",{"2":{"8":1}}],["still",{"2":{"57":1}}],["stp",{"2":{"13":1,"22":2}}],["straightforward",{"2":{"7":1}}],["strict=false",{"2":{"35":3}}],["strict",{"0":{"34":1,"35":1},"2":{"2":4,"34":1,"35":1}}],["string",{"2":{"1":3,"3":1,"15":1,"25":3,"48":1}}],["struct",{"2":{"2":2}}],["st",{"2":{"1":6}}],["say",{"2":{"60":1}}],["satisfied",{"2":{"34":1}}],["saving",{"2":{"20":1}}],["save=true",{"2":{"42":1,"54":1}}],["save",{"2":{"1":9,"34":1,"42":8,"43":2,"44":1,"45":4,"49":2}}],["saved",{"2":{"0":2,"20":1,"42":3,"44":1,"45":1,"49":1,"56":1,"57":1,"59":1,"60":1}}],["saves",{"2":{"0":1}}],["sao",{"2":{"14":1,"22":2}}],["sau",{"2":{"13":1,"14":1,"22":4}}],["sas",{"2":{"12":1,"13":1,"14":1,"22":6}}],["sahara",{"2":{"12":1,"13":1,"14":1,"22":6}}],["sah",{"2":{"12":1,"13":1,"14":1,"22":6}}],["saf",{"2":{"12":1,"13":1,"22":4}}],["sam",{"2":{"14":1,"22":2}}],["sample",{"2":{"7":1,"8":1,"9":1}}],["same",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"0":1,"2":21,"3":1,"6":1,"8":2,"34":6,"35":3,"36":1,"45":1,"52":1,"53":1,"54":1,"66":1,"67":2,"68":1}}],["s",{"0":{"11":1},"2":{"0":1,"1":4,"5":4,"7":6,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"25":1,"27":1,"34":1,"42":1,"43":1,"44":3,"45":2,"49":2,"52":3,"55":4,"56":2,"59":1,"62":1,"65":1,"67":1,"68":1}}],["written",{"2":{"51":1}}],["writes",{"2":{"42":3}}],["would",{"2":{"40":1,"51":1,"64":1}}],["wong",{"2":{"23":1,"61":1,"64":1}}],["workspace",{"2":{"42":1,"47":1}}],["works",{"2":{"24":1,"57":1}}],["work",{"2":{"22":3,"49":2,"56":2,"58":9,"60":2}}],["working",{"2":{"3":3,"30":1}}],["wca",{"2":{"14":1,"22":2}}],["wce",{"2":{"14":1,"22":2}}],["wsea",{"2":{"55":2,"56":1}}],["wsb",{"2":{"14":1,"22":2}}],["wsaf",{"2":{"14":1,"22":2}}],["wsa",{"2":{"13":1,"22":2}}],["way",{"2":{"58":1,"61":1,"64":1}}],["ways",{"2":{"32":1,"46":1,"54":1}}],["waiting",{"2":{"30":1}}],["want",{"2":{"30":1,"33":1,"36":1,"37":2,"46":1,"60":1,"64":1}}],["wan",{"2":{"14":1,"22":2}}],["was",{"2":{"13":1,"22":2}}],["waf",{"2":{"12":1,"13":1,"14":1,"17":3,"22":6,"43":1}}],["warning",{"2":{"22":3,"49":1,"56":1,"58":3,"59":1,"60":1}}],["warnings",{"2":{"5":1}}],["warn=false",{"2":{"22":1}}],["warn",{"2":{"5":2,"59":1}}],["wna",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1}}],["wholly",{"2":{"63":1}}],["whole",{"2":{"15":1}}],["while",{"2":{"42":1}}],["which",{"2":{"2":2,"15":1,"20":1,"25":2,"40":1,"42":2,"52":1,"53":1,"54":1,"58":1,"61":1,"62":1,"64":1,"65":1,"66":1}}],["whether",{"2":{"64":1}}],["when",{"2":{"25":2,"42":1,"52":1,"61":1}}],["where",{"2":{"0":6,"1":6,"2":6,"3":3,"5":4,"24":1,"28":1,"35":1,"67":1}}],["what",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1},"2":{"62":1,"65":1}}],["were",{"2":{"57":1}}],["western",{"2":{"12":2,"14":5,"17":1,"22":14,"43":2,"55":1}}],["west",{"2":{"7":1,"13":4,"14":2,"22":12,"25":1}}],["we",{"2":{"2":2,"6":1,"8":1,"23":2,"24":5,"26":1,"32":2,"33":1,"34":4,"35":2,"36":4,"37":2,"41":1,"42":2,"43":4,"44":2,"45":3,"46":1,"47":3,"48":1,"49":2,"52":1,"53":1,"54":5,"56":3,"57":2,"59":3,"60":1,"61":2,"62":4,"63":2,"64":2,"65":4,"66":2,"67":4,"68":3}}],["w",{"2":{"1":1,"7":7,"8":1,"9":1,"11":1,"12":1,"13":2,"14":1,"15":1,"17":1,"18":1,"19":1,"22":6,"23":1,"25":1,"27":1,"34":1,"42":1,"43":1,"44":1,"45":2,"49":1,"52":3,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["wish",{"2":{"42":1,"54":1,"61":1}}],["wio",{"2":{"13":1,"22":2}}],["width=750",{"2":{"24":1,"62":1,"63":1,"65":1}}],["width",{"2":{"1":2,"28":3}}],["will",{"2":{"0":12,"1":9,"2":8,"3":3,"5":7,"20":1,"21":3,"22":1,"28":1,"34":1,"41":1,"42":1,"49":2,"56":1,"57":2,"58":4,"59":1,"60":1,"67":1}}],["without",{"2":{"30":1}}],["within",{"2":{"2":5,"61":1,"62":3,"63":1,"65":1}}],["with",{"2":{"0":7,"2":9,"3":1,"7":2,"8":2,"9":2,"21":1,"34":2,"45":7,"46":2,"48":1,"51":1,"58":3,"60":1,"61":2,"62":1,"63":1,"65":2,"67":1}}],["vcat",{"2":{"67":2}}],["v7",{"2":{"57":1}}],["via",{"2":{"55":1}}],["v2",{"2":{"18":1,"19":1}}],["v1",{"2":{"17":1,"30":3}}],["ve",{"2":{"46":1}}],["verify",{"2":{"63":1}}],["very",{"2":{"54":2,"62":1,"65":1}}],["vertices",{"2":{"24":1,"29":1}}],["vertical",{"2":{"5":1}}],["versions",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"30":1}}],["version",{"2":{"2":2,"26":1,"30":3,"57":1}}],["verbose",{"2":{"0":12,"1":9,"2":19,"3":1}}],["vectors",{"2":{"2":1,"4":1,"8":4,"40":1}}],["vector",{"2":{"1":5,"2":4,"3":2,"4":4,"25":2,"28":1,"54":6,"55":1}}],["various",{"2":{"32":1}}],["variety",{"2":{"21":1}}],["variable",{"2":{"0":3,"42":1,"57":1}}],["values",{"2":{"2":2,"67":1}}],["valid",{"2":{"0":4,"2":2,"25":1,"47":1,"48":1,"56":1}}],["ts4",{"2":{"63":5}}],["ts3",{"2":{"63":4}}],["ts2",{"2":{"63":5}}],["ts1",{"2":{"63":5}}],["tsr",{"2":{"42":3,"43":2,"48":4}}],["tsp",{"2":{"42":2,"43":2,"44":3,"45":10,"47":4}}],["tst",{"2":{"39":1,"49":4,"52":2,"53":2}}],["tutorials",{"2":{"49":1,"56":1,"58":3,"60":1}}],["tutorial",{"2":{"41":1}}],["tmp1",{"2":{"39":2}}],["t",{"2":{"30":1,"37":1,"46":1,"64":1}}],["taken",{"2":{"39":1}}],["talks",{"2":{"15":1}}],["tablepolyregions",{"2":{"5":1,"21":2,"22":1}}],["tabletiltregions",{"2":{"5":1,"21":2,"22":2}}],["tablerectregions",{"2":{"5":1,"21":1,"22":1}}],["table",{"2":{"5":1,"21":1,"59":2}}],["tables",{"0":{"5":1},"2":{"22":3}}],["tablegeoregions",{"2":{"3":1,"5":1,"20":4,"22":1,"43":1,"59":1}}],["tabular",{"0":{"20":1},"1":{"21":1,"22":1},"2":{"3":1,"5":4}}],["tibetian",{"2":{"14":1,"22":2}}],["tibetan",{"2":{"13":1,"22":2}}],["tibet",{"2":{"12":1,"22":2}}],["tib",{"2":{"12":1,"13":1,"14":1,"22":6}}],["tiltlist",{"0":{"53":1},"2":{"22":1,"42":1,"51":1,"53":1,"55":1,"58":4,"59":1,"60":1}}],["tiltgrid",{"2":{"9":1}}],["tilt",{"2":{"1":1,"9":3,"28":3,"49":1}}],["tilting",{"2":{"1":2,"28":2}}],["tilted",{"2":{"1":2,"9":2,"26":1,"28":1,"49":1}}],["tiltregions",{"0":{"9":1,"28":1},"2":{"5":2,"6":1,"22":2,"28":1,"58":1}}],["tiltregion",{"0":{"51":1},"1":{"52":1,"53":1},"2":{"1":2,"6":2,"9":4,"26":1,"28":1,"42":1,"47":1,"48":1,"49":2,"51":1,"53":5,"56":1}}],["txt",{"0":{"52":1,"53":1},"2":{"11":1,"12":22,"13":34,"14":59,"22":231,"23":1,"42":4,"43":16,"51":3,"52":1,"53":1,"54":2,"55":4,"58":12,"59":4,"60":4,"61":1,"64":1}}],["ttr",{"2":{"9":4}}],["tpr",{"2":{"8":4}}],["text",{"2":{"51":1}}],["terms",{"2":{"8":1,"66":1}}],["tests",{"2":{"34":2}}],["testing",{"2":{"32":1}}],["test",{"2":{"7":3,"8":2,"9":3,"41":2,"42":5,"43":5,"44":2,"45":6,"47":2,"48":2,"49":7,"52":2,"53":2,"55":2,"56":3,"62":1,"63":4,"65":1,"67":1,"68":1}}],["templates",{"2":{"22":3}}],["template",{"2":{"3":2}}],["trivial",{"2":{"62":1}}],["tricky",{"2":{"54":1}}],["tropics",{"2":{"55":2}}],["tropical",{"2":{"13":2,"22":4}}],["trp",{"2":{"55":5,"56":2}}],["try",{"2":{"44":1,"66":1}}],["trying",{"2":{"31":1}}],["trr",{"2":{"7":4}}],["true",{"2":{"0":3,"1":6,"2":33,"3":2,"5":19,"20":3,"21":5,"34":6,"35":5,"36":4,"38":1,"39":1,"42":4,"43":2,"58":4,"62":2,"63":2,"65":2,"66":1,"67":2,"68":1}}],["two",{"0":{"33":1},"1":{"34":1,"35":1},"2":{"2":2,"8":1,"32":1,"33":1,"46":1,"64":1,"66":1,"67":1,"68":1}}],["types",{"0":{"26":1},"1":{"27":1,"28":1,"29":1},"2":{"6":2,"7":1,"8":1,"25":3,"26":1,"28":1,"35":1}}],["type",{"2":{"2":5,"6":1,"11":1,"12":2,"13":2,"14":2,"15":1,"17":1,"18":1,"19":1,"22":4,"25":4,"26":3,"28":6,"34":3,"35":1,"43":1,"59":1,"61":2,"64":2}}],["tf",{"2":{"0":3,"2":21}}],["touch",{"2":{"31":1}}],["to",{"0":{"42":1},"2":{"0":13,"1":7,"2":14,"3":5,"5":4,"6":1,"7":2,"9":1,"12":2,"13":2,"14":2,"15":1,"17":3,"18":3,"19":3,"20":6,"21":1,"22":6,"24":5,"25":1,"28":2,"30":5,"31":4,"33":1,"34":4,"35":1,"36":4,"37":2,"38":1,"39":1,"40":2,"42":10,"43":1,"45":3,"46":2,"47":4,"48":3,"49":1,"50":1,"51":1,"52":1,"53":1,"54":2,"56":6,"57":2,"58":4,"59":3,"60":1,"61":5,"62":5,"63":2,"64":5,"65":4,"66":1,"67":2}}],["thus",{"2":{"54":1}}],["tho",{"2":{"35":1}}],["though",{"2":{"13":1,"18":1,"35":1,"59":1}}],["those",{"2":{"3":1,"59":1}}],["through",{"2":{"23":1}}],["throw=false",{"2":{"49":1}}],["throws",{"2":{"0":1,"2":5}}],["throw",{"2":{"0":2,"2":14}}],["thrown",{"2":{"0":4,"1":3,"2":5}}],["three",{"2":{"6":2,"7":1,"8":1}}],["that",{"0":{"47":1},"2":{"0":4,"1":3,"2":4,"3":1,"6":1,"7":1,"9":2,"15":1,"24":2,"33":1,"34":3,"35":1,"36":2,"40":1,"42":1,"43":2,"44":1,"45":1,"46":1,"47":2,"48":1,"52":1,"55":1,"57":4,"58":1,"59":1,"62":6,"63":2,"65":6,"67":2,"68":2}}],["this",{"2":{"0":1,"3":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"23":1,"24":1,"30":1,"36":1,"41":1,"42":1,"44":1,"45":4,"47":2,"48":2,"50":1,"55":1,"56":2,"57":2,"58":1,"61":2,"62":3,"63":2,"64":2,"65":2,"67":2,"68":1}}],["them",{"2":{"13":1,"18":1,"20":1,"60":1,"63":1}}],["these",{"2":{"6":1,"34":1,"44":1,"49":1,"56":1,"58":1,"60":1}}],["their",{"0":{"32":1,"66":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"67":1,"68":1},"2":{"6":1,"20":2,"43":1,"49":1,"50":1}}],["they",{"2":{"2":5,"34":1,"43":1,"49":1,"58":1}}],["therefore",{"2":{"24":2,"45":1,"52":1,"53":1,"57":1,"67":1}}],["there",{"0":{"36":1},"2":{"0":1,"2":7,"6":1,"15":1,"16":1,"22":1,"24":2,"36":2,"46":1,"54":2,"59":1}}],["then",{"2":{"0":4,"1":3,"2":11,"3":1,"54":1,"60":1}}],["the",{"0":{"11":1,"23":1,"24":1,"49":1,"59":1,"60":1,"66":1,"67":2,"68":1},"1":{"24":1,"67":1,"68":1},"2":{"0":49,"1":43,"2":86,"3":24,"4":7,"5":14,"6":6,"7":10,"8":11,"9":6,"12":3,"13":3,"14":3,"15":14,"17":6,"18":6,"19":6,"20":2,"21":5,"22":8,"23":5,"24":16,"25":14,"26":3,"28":13,"29":1,"30":9,"33":1,"34":18,"35":7,"36":5,"37":1,"38":1,"39":2,"40":2,"41":2,"42":17,"43":4,"44":6,"45":15,"46":1,"47":7,"48":5,"49":7,"51":7,"52":6,"53":3,"54":12,"55":9,"56":16,"57":6,"58":5,"59":6,"60":4,"61":4,"62":18,"63":5,"64":5,"65":15,"66":5,"67":17,"68":7}}],["bit",{"2":{"66":1}}],["big",{"2":{"63":10}}],["blue",{"2":{"62":1,"63":1,"65":1}}],["black",{"2":{"24":1,"62":1,"63":1,"65":1}}],["brief",{"2":{"50":1}}],["branch",{"2":{"30":1}}],["brazil",{"2":{"13":1,"22":2}}],["but",{"2":{"52":1,"62":1,"63":1,"65":1}}],["build",{"2":{"49":1,"56":1,"58":3,"60":1}}],["bugs",{"2":{"30":1}}],["b",{"2":{"6":1,"62":5,"63":4,"65":6}}],["bay",{"2":{"14":1,"22":2}}],["basis",{"2":{"54":1,"57":1}}],["basic",{"2":{"15":2,"20":1}}],["basically",{"2":{"9":1}}],["basin",{"2":{"12":2,"22":4,"43":2}}],["based",{"0":{"48":1},"2":{"48":1}}],["base",{"2":{"0":1,"2":4}}],["back",{"2":{"3":1}}],["border",{"2":{"65":1}}],["box",{"2":{"62":1,"65":1}}],["both",{"2":{"20":1,"28":1,"67":1}}],["bob",{"2":{"14":1,"22":2}}],["bounding",{"2":{"62":1,"65":1}}],["bounds",{"2":{"7":3,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"34":1,"42":1,"43":1,"44":1,"45":2,"49":1,"52":1,"55":4,"56":1,"59":1,"62":5,"65":3,"67":1,"68":1}}],["boundaries",{"2":{"7":1,"25":1,"27":1}}],["boundary",{"0":{"64":1,"65":1},"1":{"65":1,"66":1,"67":1,"68":1},"2":{"2":1,"64":2}}],["bound",{"2":{"1":2,"25":1,"34":2,"36":1,"38":1,"52":1}}],["boolean",{"2":{"0":2,"2":11}}],["bool",{"2":{"0":6,"1":7,"2":27,"3":3,"5":9}}],["by",{"0":{"40":1,"68":1},"2":{"0":2,"1":3,"2":12,"3":3,"20":2,"24":2,"25":4,"26":3,"27":1,"28":1,"29":1,"30":1,"34":1,"35":1,"40":1,"42":1,"54":3,"57":1,"61":1,"62":2,"63":1,"64":1,"65":2,"68":1}}],["best",{"2":{"54":1,"58":1}}],["besides",{"2":{"21":1}}],["been",{"0":{"43":1,"47":1},"2":{"43":1,"45":2,"47":1,"48":1,"59":1}}],["between",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"26":1,"54":3}}],["because",{"2":{"21":1,"34":1,"36":1,"59":1,"66":1,"67":1}}],["bengal",{"2":{"14":1,"22":2}}],["below",{"2":{"6":1,"24":1,"54":1,"62":2,"63":1,"65":1}}],["before",{"2":{"1":2,"28":2}}],["being",{"2":{"0":3,"2":1,"35":1,"54":2,"67":1}}],["be",{"2":{"0":16,"1":15,"2":15,"3":3,"5":6,"8":2,"20":1,"21":1,"25":3,"30":1,"34":4,"35":1,"36":1,"40":1,"42":1,"43":1,"45":1,"48":1,"49":2,"51":1,"54":1,"56":1,"57":3,"58":1,"59":1,"60":1,"63":1}}],["edge",{"2":{"67":1}}],["eye",{"2":{"62":1,"63":1,"65":1}}],["element",{"2":{"55":1,"65":1}}],["end",{"2":{"67":2}}],["ending",{"2":{"67":2}}],["entail",{"2":{"57":1}}],["ensure",{"2":{"24":1}}],["ena",{"2":{"12":1,"13":1,"14":1,"22":6,"43":1,"54":2}}],["empty",{"2":{"22":3,"54":6}}],["eio",{"2":{"14":1,"22":2}}],["either",{"2":{"2":2}}],["equivalence",{"0":{"32":1,"34":1,"35":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"32":1,"34":2}}],["equivalent",{"0":{"33":1,"39":1},"1":{"34":1,"35":1},"2":{"2":1,"33":1,"34":1,"35":2,"39":1,"40":1,"64":1}}],["equirectangular",{"2":{"24":1}}],["equatorial",{"2":{"14":3,"22":6,"62":2,"65":1}}],["epo",{"2":{"14":1,"22":2}}],["eca",{"2":{"14":1,"22":2}}],["essential",{"2":{"54":1}}],["essence",{"2":{"25":1}}],["especially",{"2":{"42":1}}],["esb",{"2":{"14":1,"22":2}}],["esaf",{"2":{"14":1,"22":2}}],["eeu",{"2":{"14":1,"22":2}}],["even",{"2":{"13":1,"18":1,"34":1,"35":2,"59":1}}],["etc",{"2":{"31":1}}],["etp",{"2":{"13":1,"22":2}}],["et",{"0":{"13":1,"14":1,"18":1,"19":1},"2":{"13":1,"14":1,"18":2,"19":2}}],["europe",{"2":{"12":1,"13":3,"14":3,"22":14,"43":1}}],["eao",{"2":{"14":1,"22":2,"62":4,"65":4}}],["ean",{"2":{"14":1,"22":2}}],["eau",{"2":{"14":1,"22":2}}],["eaf",{"2":{"12":1,"13":1,"22":4,"43":1}}],["easy",{"2":{"61":1,"62":1,"64":1,"65":1}}],["eas",{"2":{"12":1,"13":1,"14":1,"19":3,"22":6}}],["easily",{"2":{"9":1,"61":1}}],["eastern",{"2":{"12":2,"13":1,"14":6,"22":18,"43":2,"54":2}}],["east",{"2":{"7":1,"12":1,"13":3,"14":5,"19":1,"22":18,"25":1}}],["ease",{"2":{"0":4,"1":3,"2":5}}],["each",{"2":{"2":2,"4":1,"6":1,"24":1,"54":1,"64":1,"67":1}}],["e",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"0":3,"1":1,"2":4,"7":7,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"25":1,"27":1,"34":2,"35":1,"42":1,"43":1,"44":1,"45":2,"49":1,"52":3,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["error",{"2":{"0":5,"1":3,"2":10,"45":1,"47":1,"48":1,"56":1}}],["explicitly",{"2":{"57":1}}],["examplegeo",{"2":{"63":1}}],["examplelon",{"2":{"24":1}}],["exampleusing",{"2":{"23":1,"61":1,"64":1}}],["exampleslon",{"2":{"62":1,"65":1}}],["examples",{"0":{"22":1},"2":{"51":1}}],["example",{"0":{"52":1,"53":1},"2":{"7":1,"8":1,"9":1,"15":1,"23":1,"24":1,"34":1,"39":1,"42":1,"51":1,"52":1,"53":1,"54":2,"59":1,"62":1,"65":1,"66":1}}],["exact",{"2":{"0":1}}],["exactly",{"2":{"0":1,"2":5,"34":1}}],["extension",{"2":{"63":1}}],["extent",{"2":{"5":1}}],["extracting",{"2":{"23":1}}],["extract",{"2":{"3":1,"34":1}}],["extracted",{"2":{"1":3}}],["extracts",{"2":{"0":1}}],["existing",{"0":{"40":1}}],["exist",{"0":{"36":1},"2":{"3":1,"5":1,"22":3,"36":1,"58":1,"59":1}}],["exists",{"0":{"38":1},"2":{"0":2,"2":4,"36":1,"37":2,"47":1,"60":1}}],["except",{"2":{"2":4}}],["importing",{"2":{"56":1}}],["important",{"2":{"15":1,"54":1,"64":1}}],["iceland",{"2":{"13":1,"14":1,"22":4}}],["ipcc",{"0":{"14":1},"2":{"5":1}}],["ippc",{"2":{"5":1}}],["iturbide",{"0":{"14":1,"19":1},"2":{"14":1,"19":2}}],["itself",{"2":{"25":1,"66":1}}],["its",{"0":{"48":1},"2":{"9":1,"15":1,"27":1,"28":1,"29":1,"34":1,"48":1}}],["it",{"0":{"2":1,"61":1,"64":1},"1":{"62":1,"63":1,"65":1,"66":1,"67":1,"68":1},"2":{"2":2,"8":1,"20":2,"21":2,"31":1,"42":4,"46":2,"47":1,"52":1,"54":2,"62":5,"64":1,"65":4,"67":1,"68":1}}],["indeed",{"2":{"63":1}}],["indices",{"2":{"65":1}}],["individual",{"2":{"54":1}}],["indian",{"2":{"13":1,"14":2,"22":6}}],["inside",{"0":{"55":1,"56":1,"63":1},"2":{"55":2,"56":1,"61":1,"62":1,"64":1}}],["installed",{"2":{"30":1}}],["installation",{"0":{"30":1}}],["instructions",{"0":{"30":1}}],["instead",{"2":{"0":1,"2":1,"42":1,"67":1,"68":1}}],["inputing",{"2":{"52":1}}],["inputs",{"2":{"6":2}}],["info",{"2":{"42":1,"45":1,"47":1,"48":1,"56":5}}],["information",{"0":{"45":1},"2":{"0":5,"1":6,"3":5,"15":1,"23":1,"36":1,"41":1,"42":2,"44":2,"45":2,"46":2,"49":2,"56":1,"60":1,"64":1}}],["introduction",{"2":{"50":1}}],["interested",{"2":{"31":1}}],["interest",{"2":{"9":1,"25":1}}],["int",{"2":{"2":2,"4":1}}],["into",{"2":{"0":2,"1":3,"2":2,"3":1,"20":1,"42":1,"45":2,"47":1,"49":1,"50":1,"52":1,"55":1,"56":2,"60":1,"67":1}}],["in",{"0":{"2":1,"3":1,"5":1,"16":1,"40":1,"52":1,"53":1,"61":1,"62":1},"1":{"17":1,"18":1,"19":1,"62":1,"63":1},"2":{"0":8,"1":12,"2":16,"3":5,"5":4,"6":2,"7":1,"8":2,"9":1,"12":3,"13":3,"14":3,"15":1,"16":1,"17":3,"18":3,"19":3,"20":1,"21":2,"22":4,"23":1,"24":2,"25":1,"26":4,"28":7,"30":1,"31":2,"34":2,"36":2,"37":1,"38":1,"39":1,"40":1,"41":1,"42":3,"45":2,"48":1,"50":1,"51":3,"52":6,"53":3,"54":6,"57":2,"58":5,"62":7,"63":5,"64":1,"65":2,"66":1,"67":3,"68":1}}],["i",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"0":3,"2":3,"30":2,"34":1,"35":1,"67":1}}],["isingeoregion",{"2":{"61":1}}],["isid",{"2":{"0":1,"2":1,"38":1,"43":2,"47":1,"48":1,"49":1}}],["isfile",{"2":{"58":2,"60":2}}],["issue",{"2":{"31":1}}],["isn",{"2":{"30":1}}],["islands",{"2":{"13":1,"22":2,"55":1,"56":1}}],["isgeoshape",{"2":{"2":2,"39":2,"40":2}}],["isgeo",{"2":{"2":1,"36":4,"38":1}}],["isequal",{"2":{"2":1,"33":1,"34":5,"35":3,"36":1}}],["is",{"0":{"2":1,"11":1,"25":1,"40":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1},"1":{"26":1,"27":1,"28":1,"29":1,"62":1,"63":1,"65":1,"66":1,"67":2,"68":2},"2":{"0":10,"1":6,"2":27,"5":6,"7":2,"9":3,"15":4,"20":2,"21":2,"24":3,"25":3,"34":2,"35":4,"36":2,"38":1,"42":7,"47":2,"48":2,"51":1,"52":4,"53":2,"54":6,"55":1,"56":1,"57":1,"58":1,"59":2,"60":2,"61":3,"62":11,"63":3,"64":5,"65":9,"66":2,"67":1,"68":1}}],["if",{"0":{"38":1,"39":1,"40":1,"43":1},"2":{"0":7,"1":9,"2":34,"3":3,"5":10,"24":1,"30":1,"31":2,"33":1,"34":1,"35":1,"36":2,"37":2,"38":1,"39":1,"40":1,"42":2,"43":2,"44":1,"47":1,"49":2,"57":1,"58":1,"59":1,"60":1,"61":2,"62":3,"63":1,"64":3,"65":2,"66":2,"67":1}}],["ids",{"2":{"3":1,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"43":1}}],["identified",{"2":{"25":2}}],["identifiers",{"2":{"57":1}}],["identifier",{"2":{"0":1,"2":1,"25":2,"45":1,"47":1,"48":2,"56":1}}],["identify",{"2":{"0":3,"1":3,"2":1}}],["id",{"0":{"38":1,"48":1},"2":{"0":25,"1":15,"2":13,"6":6,"7":5,"8":4,"9":5,"11":1,"12":1,"13":1,"14":1,"15":7,"17":3,"18":3,"19":3,"22":4,"23":3,"25":3,"34":10,"35":2,"36":1,"37":1,"38":1,"42":7,"43":1,"44":3,"45":12,"46":1,"48":1,"49":3,"52":1,"53":1,"54":4,"55":12,"56":3,"57":1,"59":1,"62":3,"65":3,"67":3,"68":3}}],[">",{"2":{"0":6,"1":3,"2":10,"3":5,"4":1,"5":4}}],["feel",{"2":{"31":2}}],["features",{"2":{"30":1}}],["full",{"2":{"15":1,"17":1,"18":1,"19":1,"20":1,"25":1}}],["function",{"2":{"15":2,"20":1,"24":1,"34":1,"36":1,"38":1,"39":1,"40":1,"43":1,"47":1,"48":1,"52":1,"56":1,"61":1,"62":1,"65":1,"66":1,"67":1}}],["functionality",{"2":{"15":2,"20":1}}],["functions",{"2":{"6":2,"33":1}}],["factor",{"2":{"34":2}}],["far",{"2":{"14":1,"22":2}}],["false",{"2":{"0":9,"1":9,"2":29,"3":3,"5":5,"20":3,"21":5,"34":9,"35":2,"40":1,"49":1,"59":1,"60":3,"62":1,"63":2,"65":2}}],["frame",{"2":{"62":1,"65":1}}],["francisco",{"0":{"12":1,"17":1},"2":{"12":1,"17":2}}],["free",{"2":{"31":2}}],["from",{"0":{"13":1,"14":1,"17":1,"18":1,"19":1,"46":1,"49":1,"60":1},"1":{"47":1,"48":1},"2":{"0":9,"1":6,"2":4,"3":4,"5":4,"12":1,"13":1,"14":1,"17":2,"18":2,"19":2,"39":1,"49":2,"56":2,"60":1,"61":1,"64":1,"65":1}}],["float",{"2":{"25":1,"28":6}}],["float64",{"2":{"1":3,"7":1,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"34":1,"42":1,"44":1,"45":2,"49":1,"55":4,"56":1,"62":1,"65":2,"67":1,"68":1}}],["flexibility",{"2":{"8":1}}],["fname",{"2":{"3":11}}],["follow",{"2":{"51":1}}],["follows",{"2":{"42":1,"56":1,"59":1}}],["following",{"2":{"7":2,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"25":1,"28":1,"34":3,"42":1,"44":1,"45":2,"49":1,"54":5,"55":4,"56":1,"58":1,"62":1,"65":1,"67":1,"68":1}}],["folder",{"2":{"3":1}}],["forms",{"2":{"32":1}}],["format",{"2":{"3":1,"5":4}}],["for",{"0":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"37":1,"41":1,"44":1,"45":1,"57":1,"58":1,"59":1},"1":{"38":1,"39":1,"40":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"58":1,"59":1,"60":1},"2":{"0":4,"1":6,"2":6,"3":1,"4":3,"8":2,"9":1,"15":3,"20":4,"23":1,"25":3,"30":1,"34":1,"36":2,"38":1,"41":1,"42":2,"45":1,"46":1,"49":1,"51":2,"52":1,"53":1,"54":1,"57":4,"59":2,"60":1,"66":1}}],["fill",{"2":{"54":3}}],["filed",{"2":{"52":1,"53":1}}],["file",{"2":{"3":8,"11":1,"12":1,"13":1,"14":1,"22":7,"43":1,"51":1,"52":1,"54":2,"55":2,"56":1,"58":3,"59":1}}],["files",{"0":{"50":1,"51":1,"54":1,"55":1,"56":1},"1":{"51":1,"52":2,"53":2,"54":1,"55":1,"56":1},"2":{"3":4,"5":1,"20":1,"42":1,"43":1,"49":2,"50":1,"51":2,"55":1,"56":3,"58":6,"59":1,"60":3}}],["filesystem",{"2":{"0":1}}],["fix",{"2":{"30":1}}],["find",{"2":{"30":1,"67":1}}],["figure",{"2":{"24":1,"31":1,"36":1,"62":1,"63":1,"65":1}}],["fig",{"2":{"24":4,"62":4,"63":4,"65":4}}],["field",{"2":{"2":2,"28":1}}],["fields",{"2":{"2":3,"25":1,"28":1,"34":2,"35":1}}],["first",{"2":{"1":2,"2":3,"6":1,"34":1,"47":1,"59":2}}],["ft",{"2":{"1":6}}],["==",{"2":{"2":1,"33":1,"34":6}}],["=",{"2":{"0":11,"1":16,"2":23,"3":7,"4":1,"5":13,"15":3,"20":2,"21":5,"23":4,"24":7,"34":9,"35":1,"36":3,"38":1,"39":1,"42":11,"44":2,"45":4,"55":1,"58":2,"59":2,"61":3,"62":8,"63":12,"64":3,"65":9,"67":7,"68":3}}],["at",{"2":{"62":3,"67":2}}],["atlantic",{"2":{"14":3,"22":6,"62":2,"65":1}}],["after",{"2":{"54":1}}],["africa",{"2":{"12":3,"13":3,"14":6,"17":1,"22":24,"43":2}}],["automatically",{"2":{"42":1}}],["australia",{"2":{"12":1,"13":2,"14":4,"22":14,"43":1}}],["aus",{"2":{"12":1,"22":2,"43":1}}],["accessed",{"2":{"30":1}}],["axis",{"2":{"24":1,"62":1,"63":1,"65":1}}],["ax",{"2":{"24":3,"62":5,"63":7,"65":6}}],["abovementioned",{"2":{"44":1}}],["above",{"2":{"39":1,"56":1,"57":1}}],["about",{"2":{"15":1,"62":1,"65":1}}],["abstract",{"2":{"25":1,"28":1}}],["abstractstring",{"2":{"0":9,"1":12,"2":5,"3":6,"5":4}}],["able",{"2":{"24":1,"62":1,"65":1}}],["american",{"2":{"14":1,"22":2}}],["america",{"2":{"12":5,"13":6,"14":13,"18":1,"22":48,"23":2,"43":5,"51":2,"54":2}}],["amazon",{"2":{"12":1,"13":1,"22":4,"43":1}}],["amz",{"2":{"12":1,"13":1,"22":4,"43":1}}],["amp",{"0":{"12":1,"17":1},"2":{"12":1,"17":2}}],["advanced",{"2":{"15":1}}],["adapted",{"0":{"17":1,"18":1,"19":1},"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["added",{"0":{"43":1},"2":{"43":2,"59":1}}],["addition",{"2":{"28":1,"43":1}}],["additional",{"2":{"20":1,"54":4}}],["adding",{"0":{"0":1,"42":1,"56":1},"2":{"41":1,"42":1,"45":1,"56":4}}],["addgeoregions",{"2":{"3":1,"56":1}}],["add",{"2":{"0":1,"3":1,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"30":3,"42":4,"45":2,"47":1,"48":1,"52":2,"53":2,"56":2}}],["available",{"2":{"3":1,"5":4,"7":1,"8":1,"20":1,"21":1,"26":3,"57":1}}],["along",{"2":{"65":1}}],["alternatively",{"2":{"43":1}}],["although",{"2":{"30":1}}],["also",{"2":{"20":1,"21":1,"25":1,"28":1,"35":1,"40":1,"42":1,"61":1,"62":1,"64":1,"65":1,"66":1}}],["al",{"0":{"13":1,"14":1,"18":1,"19":1},"2":{"13":1,"14":1,"18":2,"19":2}}],["alaska",{"2":{"12":1,"13":1,"22":4,"43":1}}],["ala",{"2":{"12":1,"13":1,"22":4,"43":1}}],["always",{"2":{"6":1,"21":3,"59":2}}],["allows",{"2":{"9":1,"38":1,"39":1,"40":1,"61":2,"64":1}}],["all",{"2":{"2":6,"3":3,"5":4,"7":2,"8":1,"12":2,"13":2,"14":2,"17":2,"18":2,"19":2,"20":1,"21":2,"25":1,"26":1,"28":1,"49":3,"51":1,"56":1,"57":2,"58":1,"59":1,"60":1}}],["already",{"0":{"36":1,"38":1},"2":{"1":3,"37":1,"38":1,"45":1,"47":1,"58":1}}],["arbitrary",{"2":{"63":2}}],["argument",{"2":{"24":1,"42":1}}],["arguments",{"2":{"0":12,"1":6,"2":19,"3":6,"4":1,"5":4,"20":1}}],["ars",{"2":{"14":1,"22":2}}],["aro",{"2":{"14":1,"22":2}}],["arabian",{"2":{"14":2,"22":4}}],["arp",{"2":{"14":1,"22":2}}],["arctic",{"2":{"13":1,"14":2,"22":6}}],["arc",{"2":{"13":1,"22":2}}],["ar6=true",{"2":{"14":1}}],["ar6=false",{"2":{"13":1}}],["ar6",{"0":{"14":1,"19":1},"2":{"5":4,"14":118,"19":5,"21":1,"22":232,"23":4,"48":1,"54":3,"57":1,"62":4,"65":4}}],["area",{"2":{"2":3,"67":1,"68":1}}],["are",{"0":{"33":1,"66":1},"1":{"34":1,"35":1,"67":1,"68":1},"2":{"2":5,"3":1,"6":2,"7":1,"12":2,"13":3,"14":2,"15":1,"16":1,"17":2,"18":3,"19":2,"22":1,"24":3,"26":3,"31":2,"33":1,"34":2,"35":3,"46":1,"54":1,"59":3,"62":3,"63":2,"64":1,"65":2,"66":1,"67":3}}],["against",{"2":{"2":2,"66":1,"67":1}}],["again",{"2":{"1":1}}],["appear",{"2":{"21":2}}],["append",{"2":{"1":1}}],["api",{"0":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1},"2":{"7":1,"8":1,"9":1,"15":2,"20":1,"22":4,"24":1,"34":2,"42":2,"43":1,"44":1,"45":1,"47":1,"48":1,"58":1,"59":1,"60":1,"62":1,"63":1,"65":1,"66":1}}],["assume",{"2":{"57":1}}],["associate",{"2":{"46":1}}],["associated",{"2":{"0":3,"45":3}}],["association",{"2":{"45":1}}],["ask",{"2":{"31":1}}],["aspect",{"2":{"24":2,"62":2,"65":2}}],["asia",{"2":{"12":5,"13":6,"14":5,"19":1,"22":32,"34":1,"36":1,"38":1,"55":1}}],["as",{"2":{"0":1,"2":13,"3":1,"6":1,"7":2,"8":1,"9":2,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"20":1,"30":2,"34":1,"35":2,"36":1,"42":2,"51":1,"52":1,"53":1,"54":2,"56":1,"57":1,"59":1,"61":1,"62":1,"63":2,"64":1,"65":1}}],["a",{"0":{"2":1,"23":1,"24":1,"25":1,"36":1,"39":1,"40":1,"45":1,"46":1,"47":1,"48":1,"49":1,"60":1,"61":1,"62":2,"63":2,"64":1,"65":2,"66":2},"1":{"24":1,"26":1,"27":1,"28":1,"29":1,"47":1,"48":1,"62":1,"63":1,"65":1,"66":1,"67":3,"68":3},"2":{"0":5,"1":11,"2":33,"4":4,"6":1,"8":1,"9":4,"15":4,"16":1,"20":3,"21":2,"23":1,"24":1,"25":13,"27":2,"28":8,"29":2,"30":1,"34":5,"35":3,"36":2,"37":2,"38":1,"40":1,"41":1,"42":2,"45":1,"46":4,"47":2,"48":2,"50":1,"51":2,"52":1,"53":1,"54":5,"55":2,"56":1,"57":5,"59":4,"61":3,"62":8,"63":4,"64":5,"65":8,"66":3,"68":2}}],["angle",{"2":{"28":2}}],["antarctica",{"2":{"13":1,"14":2,"22":6}}],["ant",{"2":{"13":1,"22":2}}],["another",{"2":{"2":1,"36":1,"39":1,"40":1,"45":5,"61":1,"63":1,"66":1}}],["anyway",{"2":{"62":1,"65":1}}],["anymore",{"2":{"46":1}}],["any",{"2":{"0":2,"3":2,"8":1,"31":1,"58":1,"59":1,"63":1,"67":1}}],["an",{"0":{"38":1,"39":1,"40":1},"2":{"0":5,"1":3,"2":8,"7":1,"9":1,"25":1,"31":1,"37":1,"38":1,"39":1,"40":1,"45":1,"48":1,"54":3,"61":1,"62":1,"63":1,"64":1,"65":1}}],["and",{"0":{"0":1,"32":1,"44":1,"51":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"52":1,"53":1},"2":{"1":1,"2":23,"4":1,"5":1,"6":2,"7":2,"8":5,"9":2,"14":1,"15":2,"20":3,"21":1,"22":5,"24":2,"25":1,"28":1,"30":1,"31":1,"34":5,"35":1,"36":1,"40":1,"41":1,"43":1,"45":1,"46":1,"47":2,"49":2,"51":1,"54":6,"56":1,"57":2,"58":1,"59":2,"60":1,"62":1,"63":4,"65":2,"67":5,"68":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/@localSearchIndexroot.DZIpXCFD.js b/dev/assets/chunks/@localSearchIndexroot.DZIpXCFD.js new file mode 100644 index 0000000..0ec05db --- /dev/null +++ b/dev/assets/chunks/@localSearchIndexroot.DZIpXCFD.js @@ -0,0 +1 @@ +const e='{"documentCount":69,"nextId":69,"documentIds":{"0":"/GeoRegions.jl/dev/api/addreadrm#API-for-Adding,-Reading-and-Removing-GeoRegions","1":"/GeoRegions.jl/dev/api/create#API-for-Creating-GeoRegions","2":"/GeoRegions.jl/dev/api/isinonequal#API-for-Is-it-in/on-a-GeoRegion?","3":"/GeoRegions.jl/dev/api/project#API-for-Project-Handling-in-GeoRegions.jl","4":"/GeoRegions.jl/dev/api/shape#API-for-Different-GeoRegion-Properties","5":"/GeoRegions.jl/dev/api/tables#API-for-Tables-in-GeoRegions.jl","6":"/GeoRegions.jl/dev/basics/create#Creating-Custom-GeoRegions","7":"/GeoRegions.jl/dev/basics/create#Defining-New-RectRegions","8":"/GeoRegions.jl/dev/basics/create#Defining-New-PolyRegions","9":"/GeoRegions.jl/dev/basics/create#Defining-New-TiltRegions","10":"/GeoRegions.jl/dev/basics/read/listall#Default-List-of-Predefined-GeoRegions","11":"/GeoRegions.jl/dev/basics/read/listall#GeoRegions.jl\'s-default-region-is-the-Globe","12":"/GeoRegions.jl/dev/basics/read/listall#Giorgi-and-Francisco-[2000]","13":"/GeoRegions.jl/dev/basics/read/listall#SREX-Regions-from-Seneviratne-et-al.-[2012]","14":"/GeoRegions.jl/dev/basics/read/listall#IPCC-AR6-Regions-from-Iturbide-et-al.,-[2020]","15":"/GeoRegions.jl/dev/basics/read/overview#Reading-Predefined-GeoRegions","16":"/GeoRegions.jl/dev/basics/read/predefined#Predefined-GeoRegions-in-GeoRegions.jl","17":"/GeoRegions.jl/dev/basics/read/predefined#Adapted-from-Giorgi-and-Francisco-[2000]","18":"/GeoRegions.jl/dev/basics/read/predefined#SREX-Regions-adapted-from-Seneviratne-et-al.-[2012]","19":"/GeoRegions.jl/dev/basics/read/predefined#AR6-Regions-adapted-from-Iturbide-et-al.,-[2020]","20":"/GeoRegions.jl/dev/basics/read/tables#Tabular-Listings-of-GeoRegions","21":"/GeoRegions.jl/dev/basics/read/tables#More-specific-lists-of-GeoRegions","22":"/GeoRegions.jl/dev/basics/read/tables#Use-Case-Examples","23":"/GeoRegions.jl/dev/basics/shape#The-Shape-of-a-GeoRegion","24":"/GeoRegions.jl/dev/basics/shape#Retrieving-the-coordinates-of-a-GeoRegion","25":"/GeoRegions.jl/dev/georegions#What-is-a-GeoRegion?","26":"/GeoRegions.jl/dev/georegions#Types-of-GeoRegions","27":"/GeoRegions.jl/dev/georegions#rectregions","28":"/GeoRegions.jl/dev/georegions#tiltregions","29":"/GeoRegions.jl/dev/georegions#polyregions","30":"/GeoRegions.jl/dev/#Installation-Instructions","31":"/GeoRegions.jl/dev/#Getting-help","32":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#Manipulation-of-User-Defined-GeoRegions.jl-for-your-Project","33":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#1.-Adding-custom-GeoRegions-to-your-Project","34":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#2.-Check-if-GeoRegions-have-been-added","35":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#3.-Reading-and-Retrieving-GeoRegions-for-your-Project","36":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#4.-Overwriting-Information-for-a-Previously-Defined-GeoRegion","37":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#5.-Removing-a-custom-GeoRegions-from-your-Project","38":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#5.1-Removing-a-GeoRegion-that-has-been-loaded","39":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#5.2-Removing-a-GeoRegion-based-on-its-ID","40":"/GeoRegions.jl/dev/tutorials/projects/addreadrm#6.-Removing-a-the-custom-GeoRegions-lists-from-your-Project","41":"/GeoRegions.jl/dev/tutorials/isequal#Equivalence-between-GeoRegions-and-their-Properties","42":"/GeoRegions.jl/dev/tutorials/isequal#1.-Are-two-GeoRegions-Equivalent","43":"/GeoRegions.jl/dev/tutorials/isequal#1.-Strict-Equivalence","44":"/GeoRegions.jl/dev/tutorials/isequal#1.2-Non-Strict-Equivalence","45":"/GeoRegions.jl/dev/tutorials/isequal#2.-Does-there-already-exist-a-GeoRegion?","46":"/GeoRegions.jl/dev/tutorials/isequal#3.-Property-Checks-for-GeoRegions","47":"/GeoRegions.jl/dev/tutorials/isequal#3.1-Checking-if-an-ID-already-exists","48":"/GeoRegions.jl/dev/tutorials/isequal#3.1-Checking-if-a-GeoRegion-has-an-equivalent-shape","49":"/GeoRegions.jl/dev/tutorials/isequal#3.2-Checking-if-a-shape-defined-by-(lon,lat)-is-defined-in-an-existing-GeoRegion","50":"/GeoRegions.jl/dev/tutorials/projects/files#Files-of-custom-GeoRegions","51":"/GeoRegions.jl/dev/tutorials/projects/files#RectRegion-and-TiltRegion-Files","52":"/GeoRegions.jl/dev/tutorials/projects/files#Example-in-rectlist.txt","53":"/GeoRegions.jl/dev/tutorials/projects/files#Example-in-tiltlist.txt","54":"/GeoRegions.jl/dev/tutorials/projects/files#PolyRegion-Files","55":"/GeoRegions.jl/dev/tutorials/projects/files#Listing-GeoRegions-inside-Custom-Files","56":"/GeoRegions.jl/dev/tutorials/projects/files#Adding-GeoRegions-inside-Custom-Files","57":"/GeoRegions.jl/dev/tutorials/projects/setup#GeoRegions.jl-for-your-Research-Project","58":"/GeoRegions.jl/dev/tutorials/projects/setup#1.-Setup-GeoRegions.jl-for-your-Project","59":"/GeoRegions.jl/dev/tutorials/projects/setup#2.-Listing-out-the-custom-GeoRegions-for-your-Project","60":"/GeoRegions.jl/dev/tutorials/projects/setup#3.-Removing-a-the-custom-GeoRegions-list-from-your-Project","61":"/GeoRegions.jl/dev/tutorials/using/isin#Is-it-in-a-GeoRegion?","62":"/GeoRegions.jl/dev/tutorials/using/isin#Is-a-Point-in-a-GeoRegion?","63":"/GeoRegions.jl/dev/tutorials/using/isin#Is-a-GeoRegion-inside-a-GeoRegion?","64":"/GeoRegions.jl/dev/tutorials/using/ison#Is-it-on-a-GeoRegion-Boundary?","65":"/GeoRegions.jl/dev/tutorials/using/ison#Is-a-Point-on-a-GeoRegion-Boundary?","66":"/GeoRegions.jl/dev/tutorials/using/ison#Is-a-GeoRegion-on-a-GeoRegion?-(i.e.,-Are-their-Shapes-the-Same?)","67":"/GeoRegions.jl/dev/tutorials/using/ison#1.-circshift()-the-points-defining-the-GeoRegion","68":"/GeoRegions.jl/dev/tutorials/using/ison#2.-Shifting-the-GeoRegion-by-360º"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[7,1,121],"1":[4,1,129],"2":[9,1,196],"3":[7,1,94],"4":[5,1,40],"5":[6,1,77],"6":[3,1,53],"7":[3,3,86],"8":[3,3,94],"9":[3,3,93],"10":[5,1,5],"11":[9,5,22],"12":[5,5,127],"13":[8,5,178],"14":[9,5,233],"15":[3,1,88],"16":[4,1,10],"17":[7,4,75],"18":[9,4,82],"19":[9,4,81],"20":[4,1,84],"21":[5,4,49],"22":[3,4,314],"23":[5,1,93],"24":[6,5,114],"25":[5,1,93],"26":[3,5,29],"27":[1,7,22],"28":[1,7,67],"29":[1,7,23],"30":[2,1,69],"31":[2,1,36],"32":[9,1,27],"33":[7,9,150],"34":[7,9,131],"35":[8,9,71],"36":[8,9,108],"37":[8,9,39],"38":[9,14,65],"39":[9,14,68],"40":[10,9,121],"41":[6,1,17],"42":[5,6,19],"43":[3,10,128],"44":[5,10,57],"45":[8,6,68],"46":[5,6,24],"47":[8,10,28],"48":[10,10,36],"49":[15,10,52],"50":[4,1,21],"51":[4,4,54],"52":[4,7,63],"53":[4,7,52],"54":[2,4,154],"55":[5,4,95],"56":[5,4,127],"57":[6,1,80],"58":[7,6,99],"59":[9,6,99],"60":[10,6,86],"61":[6,1,78],"62":[6,6,156],"63":[5,6,139],"64":[7,1,87],"65":[7,7,155],"66":[12,7,49],"67":[6,14,121],"68":[6,14,70]},"averageFieldLength":[5.956521739130435,5.115942028985507,85.08695652173911],"storedFields":{"0":{"title":"API for Adding, Reading and Removing GeoRegions","titles":[]},"1":{"title":"API for Creating GeoRegions","titles":[]},"2":{"title":"API for Is it in/on a GeoRegion?","titles":[]},"3":{"title":"API for Project-Handling in GeoRegions.jl","titles":[]},"4":{"title":"API for Different GeoRegion Properties","titles":[]},"5":{"title":"API for Tables in GeoRegions.jl","titles":[]},"6":{"title":"Creating Custom GeoRegions","titles":[]},"7":{"title":"Defining New RectRegions","titles":["Creating Custom GeoRegions"]},"8":{"title":"Defining New PolyRegions","titles":["Creating Custom GeoRegions"]},"9":{"title":"Defining New TiltRegions","titles":["Creating Custom GeoRegions"]},"10":{"title":"Default List of Predefined GeoRegions","titles":[]},"11":{"title":"GeoRegions.jl's default region is the Globe","titles":["Default List of Predefined GeoRegions"]},"12":{"title":"Giorgi & Francisco [2000]","titles":["Default List of Predefined GeoRegions"]},"13":{"title":"SREX Regions from Seneviratne et al. [2012]","titles":["Default List of Predefined GeoRegions"]},"14":{"title":"IPCC AR6 Regions from Iturbide et al., [2020]","titles":["Default List of Predefined GeoRegions"]},"15":{"title":"Reading Predefined GeoRegions","titles":[]},"16":{"title":"Predefined GeoRegions in GeoRegions.jl","titles":[]},"17":{"title":"Adapted from Giorgi & Francisco [2000]","titles":["Predefined GeoRegions in GeoRegions.jl"]},"18":{"title":"SREX Regions adapted from Seneviratne et al. [2012]","titles":["Predefined GeoRegions in GeoRegions.jl"]},"19":{"title":"AR6 Regions adapted from Iturbide et al., [2020]","titles":["Predefined GeoRegions in GeoRegions.jl"]},"20":{"title":"Tabular Listings of GeoRegions","titles":[]},"21":{"title":"More specific lists of GeoRegions","titles":["Tabular Listings of GeoRegions"]},"22":{"title":"Use Case Examples","titles":["Tabular Listings of GeoRegions"]},"23":{"title":"The Shape of a GeoRegion","titles":[]},"24":{"title":"Retrieving the coordinates of a GeoRegion","titles":["The Shape of a GeoRegion"]},"25":{"title":"What is a GeoRegion?","titles":[]},"26":{"title":"Types of GeoRegions","titles":["What is a GeoRegion?"]},"27":{"title":"RectRegions","titles":["What is a GeoRegion?","Types of GeoRegions"]},"28":{"title":"TiltRegions","titles":["What is a GeoRegion?","Types of GeoRegions"]},"29":{"title":"PolyRegions","titles":["What is a GeoRegion?","Types of GeoRegions"]},"30":{"title":"Installation Instructions","titles":[]},"31":{"title":"Getting help","titles":[]},"32":{"title":"Manipulation of User-Defined GeoRegions.jl for your Project","titles":[]},"33":{"title":"1. Adding custom GeoRegions to your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"34":{"title":"2. Check if GeoRegions have been added","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"35":{"title":"3. Reading and Retrieving GeoRegions for your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"36":{"title":"4. Overwriting Information for a Previously Defined GeoRegion","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"37":{"title":"5. Removing a custom GeoRegions from your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"38":{"title":"5.1 Removing a GeoRegion that has been loaded","titles":["Manipulation of User-Defined GeoRegions.jl for your Project","5. Removing a custom GeoRegions from your Project"]},"39":{"title":"5.2 Removing a GeoRegion based on its ID","titles":["Manipulation of User-Defined GeoRegions.jl for your Project","5. Removing a custom GeoRegions from your Project"]},"40":{"title":"6. Removing a the custom GeoRegions lists from your Project","titles":["Manipulation of User-Defined GeoRegions.jl for your Project"]},"41":{"title":"Equivalence between GeoRegions and their Properties","titles":[]},"42":{"title":"1. Are two GeoRegions Equivalent","titles":["Equivalence between GeoRegions and their Properties"]},"43":{"title":"1. Strict Equivalence","titles":["Equivalence between GeoRegions and their Properties","1. Are two GeoRegions Equivalent"]},"44":{"title":"1.2 Non-Strict Equivalence","titles":["Equivalence between GeoRegions and their Properties","1. Are two GeoRegions Equivalent"]},"45":{"title":"2. Does there already exist a GeoRegion?","titles":["Equivalence between GeoRegions and their Properties"]},"46":{"title":"3. Property Checks for GeoRegions","titles":["Equivalence between GeoRegions and their Properties"]},"47":{"title":"3.1 Checking if an ID already exists","titles":["Equivalence between GeoRegions and their Properties","3. Property Checks for GeoRegions"]},"48":{"title":"3.1 Checking if a GeoRegion has an equivalent shape","titles":["Equivalence between GeoRegions and their Properties","3. Property Checks for GeoRegions"]},"49":{"title":"3.2 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion","titles":["Equivalence between GeoRegions and their Properties","3. Property Checks for GeoRegions"]},"50":{"title":"Files of custom GeoRegions","titles":[]},"51":{"title":"RectRegion and TiltRegion Files","titles":["Files of custom GeoRegions"]},"52":{"title":"Example in rectlist.txt","titles":["Files of custom GeoRegions","RectRegion and TiltRegion Files"]},"53":{"title":"Example in tiltlist.txt","titles":["Files of custom GeoRegions","RectRegion and TiltRegion Files"]},"54":{"title":"PolyRegion Files","titles":["Files of custom GeoRegions"]},"55":{"title":"Listing GeoRegions inside Custom Files","titles":["Files of custom GeoRegions"]},"56":{"title":"Adding GeoRegions inside Custom Files","titles":["Files of custom GeoRegions"]},"57":{"title":"GeoRegions.jl for your Research Project","titles":[]},"58":{"title":"1. Setup GeoRegions.jl for your Project","titles":["GeoRegions.jl for your Research Project"]},"59":{"title":"2. Listing out the custom GeoRegions for your Project","titles":["GeoRegions.jl for your Research Project"]},"60":{"title":"3. Removing a the custom GeoRegions list from your Project","titles":["GeoRegions.jl for your Research Project"]},"61":{"title":"Is it in a GeoRegion?","titles":[]},"62":{"title":"Is a Point in a GeoRegion?","titles":["Is it in a GeoRegion?"]},"63":{"title":"Is a GeoRegion inside a GeoRegion?","titles":["Is it in a GeoRegion?"]},"64":{"title":"Is it on a GeoRegion Boundary?","titles":[]},"65":{"title":"Is a Point on a GeoRegion Boundary?","titles":["Is it on a GeoRegion Boundary?"]},"66":{"title":"Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)","titles":["Is it on a GeoRegion Boundary?"]},"67":{"title":"1. circshift() the points defining the GeoRegion","titles":["Is it on a GeoRegion Boundary?","Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)"]},"68":{"title":"2. Shifting the GeoRegion by 360º","titles":["Is it on a GeoRegion Boundary?","Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)"]}},"dirtCount":0,"index":[["know",{"2":{"64":1,"67":1}}],["keywords",{"2":{"20":1}}],["keyword",{"2":{"0":8,"1":6,"2":8,"3":3,"5":4,"24":1,"33":2,"57":1,"58":1,"59":1}}],["$",{"2":{"51":1,"54":1}}],["$path",{"2":{"33":3}}],["⋮",{"2":{"34":6}}],["~",{"2":{"22":3,"40":1,"56":1,"58":3,"60":1}}],["└",{"2":{"22":3,"40":1,"56":1,"58":3,"60":1}}],["`",{"2":{"22":3}}],["`setupgeoregions",{"2":{"22":3}}],["`on",{"2":{"2":2}}],["┌",{"2":{"22":3,"40":1,"56":1,"58":3,"60":1}}],["unless",{"2":{"59":1}}],["universally",{"2":{"57":1}}],["update",{"2":{"30":3}}],["ultimate",{"2":{"21":1}}],["us",{"2":{"9":1,"23":1,"34":1,"43":1,"47":1,"48":1,"49":1,"61":1,"62":2,"63":2,"64":1,"65":2,"66":1}}],["using",{"2":{"7":1,"8":2,"9":1,"15":1,"20":1,"23":2,"24":2,"25":2,"30":2,"31":1,"34":2,"50":1,"56":1,"57":2,"59":1,"61":2,"62":1,"64":2,"65":1}}],["useful",{"2":{"25":1,"64":1}}],["uses",{"2":{"15":1}}],["use",{"0":{"22":1},"2":{"1":3,"6":1,"20":1,"22":3,"31":1,"33":1,"36":1,"38":2,"39":1,"40":1,"42":1,"45":2,"47":1,"56":1,"58":2,"61":2,"64":2,"66":1,"67":1}}],["user",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"0":1,"1":3,"5":7,"20":5,"34":1,"35":1,"40":1,"56":1,"57":2,"58":2,"59":2}}],["used",{"2":{"0":6,"1":6,"2":2,"36":1,"43":1,"67":1}}],["zealand",{"2":{"14":1,"22":2}}],["98",{"2":{"63":1}}],["975",{"2":{"36":1}}],["99",{"2":{"34":1}}],["9",{"2":{"14":1,"22":2,"24":2}}],["93",{"2":{"14":3,"22":6}}],["95",{"2":{"13":1,"22":2,"63":1}}],["901",{"2":{"60":1}}],["90",{"2":{"7":2,"11":2,"12":3,"13":4,"14":10,"15":7,"22":30,"25":2,"34":2,"36":5,"54":4,"55":8,"56":4,"59":2,"63":6}}],["80",{"2":{"63":3}}],["887",{"2":{"58":2}}],["886",{"2":{"58":1}}],["875",{"2":{"56":1}}],["873",{"2":{"56":1}}],["870",{"2":{"56":1}}],["83",{"2":{"14":2,"22":4}}],["81",{"2":{"14":1,"22":2,"23":2}}],["82",{"2":{"13":1,"14":2,"22":6}}],["8",{"2":{"13":2,"14":8,"22":20,"24":2,"53":1,"54":1,"62":3,"63":1,"65":3,"67":4}}],["85",{"2":{"12":2,"13":4,"14":2,"18":4,"22":16,"34":1,"63":1}}],["76",{"2":{"14":1,"22":2}}],["77",{"2":{"14":1,"22":2,"23":1,"54":2}}],["70",{"2":{"13":1,"14":1,"22":4,"52":2,"54":4,"63":1}}],["7",{"2":{"13":3,"14":11,"22":28,"52":1,"53":1,"54":1,"62":4,"65":7,"67":3,"68":3}}],["79",{"2":{"13":1,"14":3,"22":8,"54":1}}],["72",{"2":{"13":2,"14":5,"22":14,"23":2,"54":2}}],["751",{"2":{"56":1}}],["75",{"2":{"12":4,"13":4,"14":5,"22":26,"34":2,"63":1}}],["≥v2",{"2":{"26":1}}],["≥v6",{"2":{"26":1}}],["≥",{"2":{"17":1,"18":1,"19":1}}],["≥2",{"2":{"13":1,"14":1,"18":1,"19":1}}],["≥1",{"2":{"12":1,"17":1}}],["≧",{"2":{"13":1,"14":1}}],["62",{"2":{"14":2,"22":4}}],["64",{"2":{"14":1,"22":2}}],["67",{"2":{"13":1,"22":2}}],["679491924311229",{"2":{"9":3,"40":3}}],["66",{"2":{"13":1,"14":1,"22":4,"54":2}}],["61",{"2":{"13":1,"14":1,"22":4}}],["68",{"2":{"13":1,"22":2,"54":1}}],["6",{"0":{"40":1},"2":{"13":4,"14":7,"18":3,"22":22,"23":3,"52":1,"53":1,"54":2,"62":3,"65":5,"67":3,"68":3}}],["65",{"2":{"12":2,"14":6,"22":16}}],["60",{"2":{"12":2,"13":7,"14":4,"22":26,"33":5,"34":3,"52":2,"54":3,"55":3,"56":3,"63":2}}],["632",{"2":{"56":1}}],["63",{"2":{"9":2,"40":2}}],["44",{"2":{"63":1}}],["46",{"2":{"14":3,"22":6}}],["42",{"2":{"14":1,"22":2}}],["48",{"2":{"13":1,"14":1,"22":4}}],["4",{"0":{"36":1},"2":{"13":7,"14":3,"22":20,"52":1,"53":1,"54":4,"55":1,"63":6}}],["450",{"2":{"43":4}}],["45",{"2":{"12":1,"13":2,"14":9,"19":3,"22":24,"34":1,"62":1,"63":4,"65":2}}],["433",{"2":{"36":1}}],["43",{"2":{"9":4,"40":4,"58":3,"63":1}}],["47",{"2":{"9":2,"14":1,"22":2,"40":2}}],["400",{"2":{"24":1}}],["401",{"2":{"24":2}}],["40",{"2":{"8":6,"12":4,"13":6,"14":8,"22":36,"33":5,"34":3,"49":1,"53":2,"63":2}}],["54",{"2":{"38":2,"39":2,"40":1}}],["53",{"2":{"14":3,"22":6,"33":1,"36":2}}],["58",{"2":{"14":1,"22":2,"23":1}}],["56",{"2":{"13":2,"14":6,"22":16}}],["525",{"2":{"43":3}}],["52",{"2":{"13":3,"22":6,"23":1}}],["55",{"2":{"12":2,"14":1,"22":6,"34":1,"56":7,"58":3,"60":1,"63":1}}],["5",{"0":{"37":1,"38":1,"39":1},"1":{"38":1,"39":1},"2":{"9":2,"12":1,"13":8,"14":12,"19":4,"22":42,"23":1,"40":2,"52":1,"53":3,"62":5,"63":4,"65":3}}],["50",{"2":{"7":4,"8":4,"9":2,"12":10,"13":12,"14":13,"18":4,"22":70,"23":4,"24":1,"33":1,"34":7,"35":3,"36":5,"40":2,"54":8,"62":3,"63":2,"65":3,"67":4}}],["22",{"2":{"33":1,"36":2,"38":2,"39":2,"40":1,"56":7,"58":3,"60":1}}],["227",{"2":{"22":1}}],["292",{"2":{"22":1}}],["268",{"2":{"14":1,"22":2}}],["26",{"2":{"14":1,"22":2}}],["276",{"2":{"14":1,"22":2}}],["27",{"2":{"14":4,"22":8}}],["275",{"2":{"12":3,"22":6,"34":3}}],["210",{"2":{"13":2,"22":4}}],["285",{"2":{"14":1,"22":2}}],["28",{"2":{"13":3,"18":3,"22":6}}],["280",{"2":{"12":2,"22":4,"34":2}}],["259",{"2":{"56":1}}],["25",{"2":{"12":2,"13":7,"14":6,"17":3,"19":1,"22":30,"34":2,"54":6,"55":4,"56":4,"63":1,"65":1}}],["255",{"2":{"12":4,"22":8,"34":4}}],["240",{"2":{"12":1,"22":2,"34":1}}],["230",{"2":{"12":1,"13":1,"22":4,"34":1}}],["23",{"2":{"9":1,"14":2,"22":4,"40":1}}],["2",{"0":{"34":1,"39":1,"44":1,"45":1,"49":1,"59":1,"68":1},"2":{"7":1,"8":1,"9":3,"13":2,"14":7,"15":1,"17":1,"18":1,"19":1,"22":14,"23":2,"24":2,"33":1,"35":1,"36":5,"40":3,"43":1,"52":1,"53":1,"54":1,"55":4,"56":1,"61":1,"62":3,"63":6,"64":1,"65":6,"67":3,"68":1}}],["2024",{"2":{"33":1,"36":2,"38":2,"39":2,"40":1,"56":7,"58":3,"60":1}}],["2020",{"0":{"14":1,"19":1},"2":{"14":1,"19":2,"54":1}}],["2012",{"0":{"13":1,"18":1},"2":{"13":1,"18":2}}],["2000",{"0":{"12":1,"17":1},"2":{"12":1,"17":2}}],["20",{"2":{"7":4,"8":9,"9":2,"12":9,"13":7,"14":8,"17":8,"22":48,"33":6,"34":8,"35":5,"36":8,"40":2,"43":4,"49":2,"52":2,"54":3,"55":4,"62":3,"63":9,"65":2,"67":1}}],["095",{"2":{"39":1}}],["069",{"2":{"39":1}}],["065",{"2":{"38":1}}],["062",{"2":{"38":1}}],["01t16",{"2":{"33":1,"36":2,"38":2,"39":2,"40":1,"56":7,"58":3,"60":1}}],["0",{"2":{"7":14,"8":14,"9":5,"11":5,"12":89,"13":117,"14":203,"15":18,"17":14,"18":11,"19":16,"22":808,"23":18,"25":1,"33":15,"34":66,"35":23,"36":29,"40":5,"43":14,"54":24,"55":64,"56":14,"59":5,"62":21,"63":7,"65":22,"67":22,"68":21}}],["310",{"2":{"68":3}}],["31",{"2":{"14":1,"22":2,"54":2}}],["38",{"2":{"14":1,"22":2}}],["326",{"2":{"68":3}}],["325",{"2":{"63":2}}],["32",{"2":{"14":1,"22":2,"63":1}}],["320",{"2":{"12":1,"22":2,"34":1,"63":1}}],["32050807568877",{"2":{"9":4,"40":4}}],["368",{"2":{"68":3}}],["36",{"2":{"14":5,"22":10}}],["360º",{"0":{"68":1},"2":{"43":1,"44":1,"62":1,"65":1,"68":1}}],["360",{"2":{"7":2,"11":1,"12":1,"13":1,"14":1,"15":3,"22":4,"25":1,"34":1,"55":6,"59":1,"62":1,"63":1,"65":1,"68":2}}],["335",{"2":{"65":1}}],["33",{"2":{"14":3,"22":6}}],["330",{"2":{"12":1,"22":2,"34":1,"63":2}}],["340",{"2":{"62":2,"68":1}}],["34",{"2":{"13":1,"14":2,"22":6,"62":3,"65":3,"67":3}}],["355",{"2":{"63":1}}],["35",{"2":{"12":1,"13":1,"22":4,"63":1}}],["350",{"2":{"12":1,"22":2,"34":1}}],["3",{"0":{"35":1,"46":1,"47":1,"48":1,"49":1,"60":1},"1":{"47":1,"48":1,"49":1},"2":{"12":1,"13":3,"14":5,"17":1,"18":1,"19":1,"22":12,"52":1,"53":1,"63":5}}],["37",{"2":{"9":2,"14":2,"19":2,"22":4,"40":2}}],["300",{"2":{"12":1,"22":2,"34":1,"63":2}}],["30127018922193",{"2":{"9":7,"40":7}}],["30",{"2":{"7":5,"8":11,"9":2,"12":8,"13":7,"14":6,"22":42,"34":4,"40":2,"49":2,"53":2,"55":7,"62":1,"63":5}}],["39",{"0":{"11":1},"2":{"0":1,"1":3,"5":4,"13":1,"22":2,"30":1,"35":2,"37":2,"40":1,"46":1,"56":1,"64":1}}],["≤v6",{"2":{"57":1}}],["≤",{"2":{"7":4}}],["188",{"2":{"33":1}}],["180",{"2":{"7":1,"12":2,"13":6,"14":9,"22":34,"34":1,"62":2,"63":2,"68":2}}],["132",{"2":{"14":2,"19":2,"22":4}}],["130",{"2":{"13":1,"14":3,"22":8,"23":1,"52":2,"55":3}}],["19",{"2":{"14":3,"19":4,"22":6}}],["192",{"2":{"14":1,"22":2}}],["143",{"2":{"23":1,"56":1}}],["14",{"2":{"14":3,"22":6,"33":4,"34":1}}],["145",{"2":{"12":1,"13":1,"14":2,"22":8}}],["115",{"2":{"63":1}}],["117",{"2":{"14":1,"19":1,"22":2}}],["118",{"2":{"13":1,"22":2}}],["11",{"2":{"13":5,"22":10,"54":2}}],["110",{"2":{"12":1,"13":2,"14":4,"22":14,"34":1,"63":4}}],["161",{"2":{"40":1,"56":1,"60":1}}],["167",{"2":{"22":1}}],["16",{"2":{"14":1,"22":2}}],["168",{"2":{"13":1,"14":1,"22":4,"23":3,"54":2}}],["165",{"2":{"12":1,"22":2}}],["151",{"2":{"40":1}}],["152",{"2":{"14":1,"19":2,"22":2}}],["15",{"2":{"12":5,"13":4,"14":4,"17":3,"22":26,"34":3,"43":3,"55":3,"56":3,"62":1,"63":3}}],["155",{"2":{"12":1,"13":5,"14":6,"22":24,"34":1}}],["120",{"2":{"63":3}}],["125",{"2":{"23":1}}],["129",{"2":{"23":1}}],["122",{"2":{"14":1,"22":2}}],["12",{"2":{"9":1,"14":4,"22":8,"40":1,"63":1}}],["108",{"2":{"19":1}}],["104",{"2":{"14":1,"22":2}}],["105",{"2":{"13":4,"14":4,"18":3,"22":16,"23":4,"54":3,"63":1}}],["10",{"2":{"7":5,"8":4,"9":2,"12":6,"13":7,"14":18,"22":62,"30":3,"33":4,"34":4,"35":6,"36":11,"38":2,"39":2,"40":3,"49":3,"53":2,"55":10,"56":7,"58":3,"60":1,"62":4,"63":6,"65":4,"67":4,"68":4}}],["100",{"2":{"2":3,"12":3,"13":3,"14":3,"19":4,"22":18,"33":1,"34":1,"35":3,"53":2,"63":3}}],["1",{"0":{"33":1,"38":1,"42":1,"43":1,"44":1,"47":1,"48":1,"58":1,"67":1},"1":{"43":1,"44":1},"2":{"4":1,"12":3,"13":2,"14":1,"17":2,"20":1,"22":6,"23":1,"24":4,"33":1,"52":1,"53":1,"54":1,"61":1,"62":2,"63":7,"64":1,"65":2,"67":2}}],["+360",{"2":{"43":1}}],["+2",{"2":{"24":2,"62":2,"65":2}}],["+",{"2":{"3":3,"24":2,"68":1}}],["questions",{"2":{"31":2}}],["question",{"2":{"2":2}}],["quot",{"2":{"2":4,"15":2,"20":4,"22":2,"33":4,"51":6,"54":2,"58":2}}],["≠",{"2":{"2":1}}],["getting",{"0":{"31":1}}],["get",{"2":{"30":1,"31":1,"58":1}}],["generally",{"2":{"25":1,"30":1}}],["geovec",{"2":{"55":1}}],["geo6",{"2":{"43":1,"44":1}}],["geo5",{"2":{"43":1,"44":1}}],["geo4",{"2":{"43":3,"44":1}}],["geo3",{"2":{"43":3,"68":2}}],["geographic",{"2":{"43":1,"61":1,"63":1}}],["geographical",{"2":{"2":2,"25":2}}],["geometryops",{"2":{"25":1,"61":1,"64":1}}],["geometry",{"2":{"25":1}}],["geometrybasics",{"2":{"25":2,"61":1,"64":1}}],["geoplottingdata",{"2":{"23":1,"61":1,"64":1}}],["geo2",{"2":{"2":9,"43":3,"67":5}}],["geo1",{"2":{"2":9,"43":1}}],["geodir",{"2":{"0":5,"51":1,"54":1}}],["geo",{"2":{"0":15,"1":6,"2":25,"4":2,"15":1,"24":2,"33":2,"36":3,"38":1,"43":11,"44":3,"45":8,"48":1,"55":2,"56":2,"62":5,"63":17,"65":5,"66":2,"67":5,"68":3}}],["georegion",{"0":{"2":1,"4":1,"23":1,"24":1,"25":1,"36":1,"38":1,"39":1,"45":1,"48":1,"49":1,"61":1,"62":1,"63":2,"64":1,"65":1,"66":2,"67":1,"68":1},"1":{"24":1,"26":1,"27":1,"28":1,"29":1,"62":1,"63":1,"65":1,"66":1,"67":3,"68":3},"2":{"0":21,"1":18,"2":41,"3":5,"4":5,"6":3,"7":1,"8":1,"15":7,"17":1,"18":1,"19":1,"21":3,"22":1,"23":3,"24":1,"25":11,"27":1,"28":2,"29":1,"33":4,"35":1,"36":9,"37":2,"38":5,"39":4,"40":1,"43":4,"45":2,"46":1,"48":1,"49":1,"51":2,"55":1,"56":8,"57":2,"60":1,"61":1,"62":7,"63":5,"64":3,"65":5,"66":2,"67":1}}],["georegionsecosystem",{"2":{"55":1}}],["georegions",{"0":{"0":1,"1":1,"3":1,"5":1,"6":1,"10":1,"11":1,"15":1,"16":2,"20":1,"21":1,"26":1,"32":1,"33":1,"34":1,"35":1,"37":1,"40":1,"41":1,"42":1,"46":1,"50":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"1":{"7":1,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"17":2,"18":2,"19":2,"21":1,"22":1,"27":1,"28":1,"29":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":2,"39":2,"40":1,"42":1,"43":2,"44":2,"45":1,"46":1,"47":2,"48":2,"49":2,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":1},"2":{"0":11,"1":9,"2":16,"3":14,"4":1,"5":8,"6":2,"7":1,"8":1,"9":1,"10":1,"12":3,"13":3,"14":3,"15":5,"16":2,"17":5,"18":5,"19":5,"20":8,"21":3,"22":17,"23":1,"25":3,"26":6,"27":1,"28":1,"29":1,"30":5,"31":1,"32":2,"33":4,"34":1,"35":2,"36":2,"38":2,"39":4,"40":10,"41":2,"42":1,"43":1,"44":2,"45":1,"50":2,"51":1,"52":1,"53":1,"54":5,"55":2,"56":17,"57":6,"58":30,"59":5,"60":9,"61":3,"62":2,"63":2,"64":3,"65":2,"66":1,"67":4,"68":2}}],["go",{"2":{"17":1,"18":1,"19":1,"23":1}}],["global",{"2":{"11":1,"12":1,"13":1,"14":1,"22":4,"25":2,"34":1,"59":1}}],["globe",{"0":{"11":1},"2":{"11":1,"12":1,"13":1,"14":1,"15":2,"22":4,"34":1,"59":1}}],["glb",{"2":{"7":3,"8":2,"9":3,"11":2,"12":23,"13":35,"14":60,"15":5,"17":1,"18":1,"19":1,"21":3,"22":233,"23":1,"25":2,"33":3,"34":17,"35":1,"36":3,"39":1,"40":2,"43":6,"45":1,"48":1,"52":2,"53":2,"54":4,"55":1,"59":2,"62":1,"63":5,"65":1}}],["green",{"2":{"63":2}}],["greenland",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1}}],["grl",{"2":{"12":1,"22":2,"34":1}}],["grid",{"2":{"8":1,"27":1,"28":1,"29":1,"68":2}}],["grants",{"2":{"8":1}}],["gt",{"2":{"7":2,"12":1,"58":1}}],["gf",{"2":{"5":1,"12":23,"17":5,"22":42,"34":13,"39":1,"43":7,"45":1,"47":1,"57":1}}],["gives",{"2":{"50":1}}],["given",{"2":{"4":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"20":1,"25":1,"62":1}}],["github",{"2":{"30":1}}],["githubusercontent",{"2":{"23":1,"55":1,"61":1,"64":1}}],["gic",{"2":{"14":1,"22":2}}],["giorgi=true",{"2":{"12":1}}],["giorgi",{"0":{"12":1,"17":1},"2":{"5":3,"12":22,"17":2,"21":1,"22":42,"34":13,"51":1}}],["gvec",{"2":{"3":2}}],["g",{"2":{"2":1}}],["just",{"2":{"33":1,"46":1,"60":1,"64":1,"67":1}}],["juliaslon",{"2":{"62":1,"65":1}}],["juliasetupgeoregions",{"2":{"3":1,"58":1}}],["juliaa",{"2":{"62":1,"65":1}}],["juliaaddgeoregions",{"2":{"3":1,"56":1}}],["juliaadd",{"2":{"0":1}}],["juliadownload",{"2":{"55":1}}],["juliadeletegeoregions",{"2":{"3":1,"40":1,"56":1,"60":1}}],["julialon",{"2":{"35":1,"67":1,"68":1}}],["juliaply",{"2":{"35":1,"36":1}}],["juliapolyregion",{"2":{"1":1,"8":1,"29":1,"54":1}}],["julia",{"2":{"30":5}}],["julianlon",{"2":{"24":1}}],["juliageo2",{"2":{"43":1}}],["juliageo",{"2":{"15":1,"23":1,"33":2,"43":2,"45":1,"48":1,"63":1,"65":1}}],["juliageoregion",{"2":{"0":1,"25":1,"56":1}}],["juliausing",{"2":{"10":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"32":1,"41":1,"50":1,"58":1,"61":1,"64":1}}],["julia>",{"2":{"7":1,"8":1,"9":1,"36":1}}],["juliajulia>",{"2":{"7":1,"8":1,"9":1,"30":1,"36":1,"38":1,"39":1,"40":1,"56":1}}],["juliacoordinates",{"2":{"4":1}}],["juliatablepolyregions",{"2":{"5":1,"13":1,"14":1}}],["juliatabletiltregions",{"2":{"5":1}}],["juliatablerectregions",{"2":{"5":1,"12":1,"21":1}}],["juliatablegeoregions",{"2":{"3":1,"5":1,"11":1,"20":1,"34":1,"59":2}}],["juliatiltregion",{"2":{"1":1,"9":1,"28":1,"40":1,"53":1}}],["julia==",{"2":{"2":1}}],["juliaisfile",{"2":{"58":1,"60":1}}],["juliaisgeoshape",{"2":{"2":2,"49":1}}],["juliaisgeo",{"2":{"2":1}}],["juliaisequal",{"2":{"2":1,"43":1,"44":1}}],["juliaisid",{"2":{"0":1,"2":1,"34":1,"47":1}}],["juliain",{"2":{"2":2,"62":2,"63":1}}],["juliareadgeoregions",{"2":{"3":1}}],["juliarectregion",{"2":{"1":1,"6":1,"7":1,"27":1,"33":1,"52":1}}],["juliarmid",{"2":{"0":1,"39":1}}],["juliarm",{"2":{"0":1,"38":1}}],["juliaoverwrite",{"2":{"0":1,"36":1}}],["jl",{"0":{"3":1,"5":1,"11":1,"16":1,"32":1,"57":1,"58":1},"1":{"17":1,"18":1,"19":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"58":1,"59":1,"60":1},"2":{"9":1,"15":2,"16":1,"17":1,"18":1,"19":1,"20":1,"22":10,"25":4,"26":2,"30":1,"31":1,"33":2,"36":2,"38":2,"39":3,"40":7,"45":1,"54":1,"56":13,"57":2,"58":24,"60":7,"61":4,"62":2,"64":3,"65":2}}],["joinpath",{"2":{"20":1,"32":1,"33":1,"51":1,"54":1,"58":3,"60":3}}],["join",{"2":{"1":2}}],["θ",{"2":{"1":2,"9":2,"28":2,"40":1,"53":1}}],["δy",{"2":{"1":2,"9":2,"28":2,"40":1,"53":1}}],["δx",{"2":{"1":2,"9":2,"28":2,"40":1,"53":1}}],["yes",{"2":{"34":1}}],["yet",{"2":{"15":1,"33":1}}],["your",{"0":{"32":1,"33":1,"35":1,"37":1,"40":1,"57":1,"58":1,"59":1,"60":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":2,"39":2,"40":1,"58":1,"59":1,"60":1},"2":{"55":1,"58":1,"60":1}}],["you",{"2":{"7":1,"8":1,"15":1,"20":1,"30":3,"31":2,"32":1,"33":4,"36":2,"37":2,"39":1,"40":2,"42":1,"54":1,"55":2,"59":1,"60":3,"61":1,"67":1}}],["y",{"2":{"1":2,"9":2,"28":2,"40":1,"53":1,"54":2}}],["x",{"2":{"1":2,"9":2,"28":2,"40":1,"53":1,"54":2}}],["x3c",{"2":{"1":3,"2":3,"3":1,"4":2,"27":1,"28":1,"29":1}}],["clear",{"2":{"60":1}}],["clat",{"2":{"23":1,"24":1,"61":1,"62":1,"63":1,"64":1,"65":1}}],["clockwise",{"2":{"28":2}}],["clon",{"2":{"23":1,"24":1,"61":1,"62":1,"63":1,"64":1,"65":1}}],["closed",{"2":{"8":1}}],["close",{"2":{"1":1,"24":2}}],["cst",{"2":{"23":2,"61":2,"64":2}}],["cgi",{"2":{"13":1,"22":2}}],["cgeo",{"2":{"2":6}}],["certain",{"2":{"37":1}}],["ceu",{"2":{"13":1,"22":2}}],["central",{"2":{"12":3,"13":4,"14":8,"18":1,"22":30,"34":2}}],["centre",{"2":{"1":2,"28":3}}],["cna",{"2":{"12":1,"13":1,"14":1,"18":3,"22":6,"34":1}}],["calculate",{"2":{"62":1}}],["calling",{"2":{"22":1,"54":1}}],["called",{"2":{"20":1}}],["call",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["cairomakie",{"2":{"23":1,"61":1,"64":1}}],["cause",{"2":{"57":1}}],["cau",{"2":{"14":1,"22":2}}],["caf",{"2":{"14":1,"22":2}}],["care",{"2":{"44":1}}],["caribbean",{"2":{"13":1,"14":1,"22":4,"55":1,"56":1}}],["car",{"2":{"13":1,"14":1,"22":4}}],["cases",{"2":{"67":1}}],["case",{"0":{"22":1},"2":{"45":1,"62":1,"63":1,"67":2,"68":1}}],["cas",{"2":{"12":1,"13":1,"22":4}}],["cam",{"2":{"12":1,"13":1,"22":4,"34":1}}],["cannot",{"2":{"36":2,"39":2,"40":1}}],["canada",{"2":{"13":2,"22":4,"54":1}}],["can",{"2":{"1":6,"2":2,"8":1,"15":1,"20":2,"24":1,"30":2,"33":3,"34":3,"35":1,"36":1,"40":1,"42":1,"43":1,"44":2,"45":1,"55":1,"56":1,"57":2,"59":1,"60":2,"62":1,"63":1,"65":1,"66":1}}],["c",{"2":{"6":1,"62":7,"65":5}}],["crb",{"2":{"55":2,"56":6}}],["crop=true",{"2":{"34":1}}],["crop",{"2":{"5":3}}],["created",{"2":{"33":1}}],["create",{"2":{"4":1,"6":1,"59":2}}],["creates",{"2":{"1":3}}],["creating",{"0":{"1":1,"6":1},"1":{"7":1,"8":1,"9":1}}],["circshifted",{"2":{"67":1}}],["circshift",{"0":{"67":1},"2":{"2":2,"67":3}}],["change",{"2":{"67":1}}],["characteristics",{"2":{"2":1}}],["choose",{"2":{"20":1}}],["child",{"2":{"2":2}}],["checking",{"0":{"47":1,"48":1,"49":1}}],["check",{"0":{"34":1},"2":{"2":3,"34":1,"38":1,"42":1,"46":2,"47":1,"48":1,"49":1,"61":2}}],["checks",{"0":{"46":1},"1":{"47":1,"48":1,"49":1},"2":{"0":1,"2":6,"25":1}}],["corroborate",{"2":{"62":1,"65":1}}],["correctly",{"2":{"24":1}}],["color=",{"2":{"24":1,"62":1,"63":6,"65":1}}],["come",{"2":{"57":1}}],["compare",{"2":{"67":1,"68":1}}],["compared",{"2":{"2":2,"44":1,"67":1}}],["comparing",{"2":{"66":1}}],["completely",{"2":{"60":1}}],["complicated",{"2":{"33":1,"66":1}}],["comments",{"2":{"31":1}}],["comments=true",{"2":{"23":1,"61":1,"64":1}}],["command",{"2":{"30":1}}],["common",{"2":{"28":1}}],["com",{"2":{"23":1,"55":1,"61":1,"64":1}}],["copy",{"2":{"22":3,"58":2}}],["copied",{"2":{"3":1}}],["coastline",{"2":{"23":1,"61":1,"64":1}}],["coast",{"2":{"13":1,"22":2,"23":5,"61":5,"64":5}}],["concern",{"2":{"62":1,"65":1}}],["conditions",{"2":{"43":1}}],["confirm",{"2":{"34":1}}],["considering",{"2":{"43":2}}],["consider",{"2":{"43":1,"63":1}}],["considered",{"2":{"25":1,"43":1}}],["constructed",{"2":{"41":1}}],["construct",{"2":{"7":1,"8":1,"9":1}}],["constraints",{"2":{"7":2}}],["contain",{"2":{"25":1,"28":1}}],["container",{"2":{"2":1}}],["containing",{"2":{"1":2,"2":1,"3":5,"28":1,"54":1}}],["coordinate",{"2":{"1":4,"24":2,"28":2}}],["coordinates",{"0":{"24":1},"2":{"1":3,"4":1,"24":4,"25":1,"28":3,"29":1,"35":1,"43":2,"62":6,"63":5,"65":2,"67":2,"68":1}}],["currently",{"2":{"7":1,"8":1}}],["current",{"2":{"0":1,"2":1,"3":3,"46":1,"47":1,"59":1,"60":1}}],["customrect",{"2":{"55":1}}],["customized",{"2":{"20":1}}],["custom=false",{"2":{"11":1,"12":1,"13":1,"14":1}}],["custom",{"0":{"6":1,"33":1,"37":1,"40":1,"50":1,"55":1,"56":1,"59":1,"60":1},"1":{"7":1,"8":1,"9":1,"38":1,"39":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"0":12,"1":6,"2":3,"3":5,"5":14,"15":1,"20":1,"21":2,"22":6,"33":3,"34":1,"40":3,"50":1,"55":2,"56":4,"58":1,"59":3,"60":2}}],["https",{"2":{"23":1,"55":1,"61":1,"64":1}}],["honestly",{"2":{"54":1}}],["however",{"2":{"24":1,"54":1,"57":1,"62":1,"65":1,"66":1}}],["how",{"2":{"20":1,"31":1,"45":1,"50":1}}],["hovmoller",{"2":{"9":1}}],["home",{"2":{"0":2,"1":3,"5":4,"22":6,"40":1,"56":1,"58":6,"60":1}}],["homedir",{"2":{"0":4,"1":3,"2":2,"5":8,"57":1}}],["heads",{"2":{"55":1}}],["headers",{"2":{"51":1}}],["header",{"2":{"8":1,"52":1,"53":1,"54":3}}],["heavy",{"2":{"33":1}}],["help",{"0":{"31":1}}],["height=750",{"2":{"24":1,"62":1,"63":1,"65":1}}],["here",{"2":{"7":1,"8":1,"9":1,"15":2,"17":1,"18":1,"19":1,"20":1,"22":4,"24":1,"33":2,"34":1,"35":1,"36":1,"38":1,"39":1,"43":2,"45":3,"47":1,"48":1,"49":1,"54":3,"55":1,"56":1,"58":1,"59":1,"60":1,"62":2,"63":1,"65":2,"66":1,"67":1}}],["has",{"0":{"38":1,"48":1},"2":{"7":1,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"33":1,"35":1,"36":4,"38":1,"40":1,"43":1,"44":1,"48":1,"49":1,"55":4,"56":1,"62":1,"65":1,"67":1,"68":1}}],["handling",{"0":{"3":1}}],["half",{"2":{"1":2,"28":2}}],["have",{"0":{"34":1},"2":{"0":1,"2":1,"3":1,"6":1,"24":1,"31":1,"33":1,"34":2,"35":1,"39":1,"40":1,"41":2,"43":1,"45":1,"54":2,"55":1,"57":2,"59":2,"67":1}}],["mkpath",{"2":{"32":1}}],["minimum",{"2":{"24":4,"62":4,"65":4}}],["missing",{"2":{"2":4}}],["mdg",{"2":{"14":1,"22":2}}],["matter",{"2":{"67":2}}],["match",{"2":{"1":1}}],["markersize=20",{"2":{"62":2,"65":3}}],["may",{"2":{"30":1}}],["make",{"2":{"30":1}}],["map",{"2":{"24":1,"63":1}}],["maps",{"2":{"24":1}}],["maximum",{"2":{"24":4,"62":4,"65":4}}],["main",{"2":{"23":1,"30":2,"55":1,"61":1,"64":1}}],["manual",{"2":{"52":2,"53":2}}],["manually",{"2":{"33":1,"50":1,"51":2,"54":2}}],["manipulation",{"0":{"32":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1}}],["manager",{"2":{"30":1}}],["manner",{"2":{"21":1}}],["many",{"2":{"13":1,"18":1,"24":1}}],["madagascar",{"2":{"14":1,"22":2}}],["means",{"2":{"57":1}}],["meant",{"2":{"57":1}}],["method",{"2":{"38":1,"39":1}}],["meta",{"2":{"1":3}}],["me",{"2":{"30":1,"31":1,"67":1}}],["mexico",{"2":{"13":1,"22":2}}],["mediterranean",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1}}],["med",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1}}],["modify",{"2":{"33":1}}],["modification",{"2":{"33":1}}],["modulelog",{"2":{"22":3}}],["monsoon",{"2":{"14":1,"22":2}}],["monitoring",{"2":{"0":4,"1":3,"2":5}}],["more",{"0":{"21":1},"2":{"9":1,"15":1,"20":1,"45":1,"66":1}}],["most",{"2":{"7":1,"8":1,"15":3,"33":1,"59":1}}],["must",{"2":{"0":2,"2":2,"8":2,"25":1,"43":2,"45":1,"54":3}}],["right",{"2":{"59":1}}],["rows",{"2":{"34":1}}],["ropes",{"2":{"32":1}}],["rotation",{"2":{"28":1}}],["rotated",{"2":{"9":1}}],["randomly",{"2":{"49":1}}],["raw",{"2":{"23":1,"55":1,"61":1,"64":1}}],["rar",{"2":{"14":1,"22":2}}],["rfe",{"2":{"14":1,"22":2}}],["runner",{"2":{"22":6,"40":1,"56":1,"58":6,"60":1}}],["running",{"2":{"2":2}}],["russia",{"2":{"14":2,"22":4}}],["rmid",{"2":{"0":1,"39":1}}],["rm",{"2":{"0":1,"38":1}}],["red",{"2":{"63":2}}],["reexported",{"2":{"61":1,"64":1}}],["require",{"2":{"57":1}}],["refs",{"2":{"55":1}}],["refer",{"2":{"20":1}}],["relevant",{"2":{"59":1}}],["release",{"2":{"30":2}}],["relatively",{"2":{"51":1}}],["reload",{"2":{"36":1}}],["replacing",{"2":{"60":1}}],["replace",{"2":{"36":1,"37":1,"51":1}}],["repository",{"2":{"30":1}}],["regy",{"2":{"54":5}}],["regx",{"2":{"54":5}}],["regid",{"2":{"54":6}}],["registry",{"2":{"30":1}}],["regions",{"0":{"13":1,"14":1,"18":1,"19":1},"2":{"25":1,"54":1,"57":1}}],["regiongrids",{"2":{"9":1}}],["region",{"0":{"11":1},"2":{"1":4,"7":5,"8":4,"9":7,"15":2,"17":2,"18":2,"19":2,"21":1,"23":2,"25":1,"27":1,"28":4,"29":1,"33":2,"35":2,"36":4,"40":2,"43":3,"55":8,"56":2,"61":2,"62":2,"63":7,"65":2,"67":3,"68":2}}],["regardless",{"2":{"6":1}}],["research",{"0":{"57":1},"1":{"58":1,"59":1,"60":1}}],["reset",{"2":{"3":1}}],["resize",{"2":{"24":1,"62":1,"63":1,"65":1}}],["resl",{"2":{"23":1,"61":1,"64":1}}],["respectively",{"2":{"8":1,"58":1}}],["respective",{"2":{"6":3,"9":1,"20":1,"33":1,"50":1,"51":1}}],["recommended",{"2":{"33":1}}],["recall",{"2":{"6":1}}],["rectlist",{"0":{"52":1},"2":{"22":1,"33":1,"34":1,"51":1,"52":1,"55":1,"58":4,"59":1,"60":2}}],["rectangle",{"2":{"7":3,"9":1}}],["rectangular",{"2":{"1":3,"9":1,"26":1,"27":1,"28":2}}],["rectilinear",{"2":{"1":2,"7":1,"8":1,"9":1,"13":1,"15":1,"17":1,"18":1,"25":1,"26":1,"27":1,"28":1,"29":1,"33":1,"40":1,"55":4,"56":1}}],["rectregions",{"0":{"7":1,"27":1},"2":{"5":4,"6":1,"43":1,"58":1}}],["rectregion",{"0":{"51":1},"1":{"52":1,"53":1},"2":{"1":2,"2":1,"6":1,"7":3,"8":1,"11":1,"12":23,"13":1,"14":1,"17":1,"22":46,"26":1,"27":1,"33":3,"34":16,"38":1,"39":1,"43":4,"44":1,"45":1,"51":1,"52":6,"56":1,"59":1,"63":1}}],["reason",{"2":{"37":1}}],["reads",{"2":{"54":1}}],["readdlm",{"2":{"23":1,"61":1,"64":1}}],["read",{"2":{"15":1,"55":1}}],["readgeoregions",{"2":{"3":1,"55":2}}],["reading",{"0":{"0":1,"15":1,"35":1},"2":{"15":1}}],["realize",{"2":{"57":1}}],["realized",{"2":{"37":1}}],["really",{"2":{"37":1}}],["real",{"2":{"1":8,"2":4,"4":2}}],["remove",{"2":{"38":1,"39":2,"40":2,"56":1}}],["removed",{"2":{"0":1,"39":1}}],["removes",{"2":{"0":2}}],["removing",{"0":{"0":1,"37":1,"38":1,"39":1,"40":1,"60":1},"1":{"38":1,"39":1},"2":{"32":1,"38":1,"39":1,"40":1,"56":1,"60":1}}],["retrieving",{"0":{"24":1,"35":1},"2":{"32":1,"35":1,"57":1}}],["retrieve",{"2":{"15":2,"24":1,"35":1,"40":1}}],["retrieved",{"2":{"0":6,"1":3,"2":4,"3":2,"5":4,"40":1}}],["return",{"2":{"2":2,"22":1,"43":1}}],["returnid",{"2":{"2":6}}],["returning",{"2":{"0":1,"2":1}}],["returns",{"2":{"0":2,"1":3,"2":16,"3":1,"4":1}}],["nfor",{"2":{"43":1}}],["nlon",{"2":{"24":1}}],["nlat",{"2":{"24":1}}],["n=50",{"2":{"24":1}}],["npo",{"2":{"14":1,"22":2}}],["nz",{"2":{"14":1,"22":2}}],["nsa",{"2":{"14":1,"22":2}}],["nws",{"2":{"14":1,"22":2}}],["nwn",{"2":{"14":1,"22":2,"23":3}}],["nca",{"2":{"14":1,"22":2}}],["ntp",{"2":{"13":1,"22":2}}],["natural",{"2":{"63":1}}],["natgeo",{"2":{"23":1,"61":1,"64":1}}],["nao",{"2":{"14":1,"22":2}}],["nau",{"2":{"13":1,"14":1,"22":4}}],["nas",{"2":{"12":1,"13":1,"22":4}}],["named",{"2":{"36":1}}],["names",{"2":{"2":2}}],["name",{"2":{"1":9,"2":2,"3":3,"6":5,"7":4,"8":3,"9":4,"11":1,"12":1,"13":1,"14":1,"15":2,"17":2,"18":2,"19":2,"22":4,"23":2,"25":2,"33":6,"34":1,"35":2,"36":4,"40":2,"43":8,"51":2,"53":1,"54":7,"55":8,"56":2,"59":1,"62":2,"65":2,"67":2,"68":2}}],["next",{"2":{"65":1}}],["necessary",{"2":{"30":1,"58":1}}],["neaf",{"2":{"14":1,"22":2}}],["nes",{"2":{"14":1,"22":2}}],["nen",{"2":{"14":1,"22":2}}],["neb",{"2":{"13":1,"22":2}}],["neu",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1}}],["needs",{"2":{"54":1}}],["need",{"2":{"2":3,"7":1,"36":1,"37":1}}],["newly",{"2":{"45":1}}],["newzealand",{"2":{"13":1,"22":2}}],["new",{"0":{"7":1,"8":1,"9":1},"2":{"0":1,"6":1,"14":1,"22":2,"30":1,"33":1,"37":1,"45":1,"60":1}}],["number",{"2":{"2":1,"4":1,"24":2}}],["n",{"2":{"1":1,"2":3,"4":2,"7":6,"8":1,"9":1,"11":1,"12":1,"13":2,"14":1,"15":1,"17":1,"18":1,"19":1,"22":6,"23":1,"24":2,"25":1,"27":1,"33":1,"34":1,"35":1,"36":2,"40":1,"43":1,"52":3,"54":1,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["non",{"0":{"44":1},"2":{"25":1}}],["now",{"2":{"23":1,"34":1,"35":1,"37":1,"38":2,"40":1,"41":1,"56":1,"59":1,"62":2,"63":2,"65":2,"67":1}}],["northwest",{"2":{"13":1,"14":2,"22":6,"23":2}}],["northeast",{"2":{"13":1,"14":2,"22":6}}],["northern",{"2":{"12":1,"14":7,"22":16,"34":1}}],["north",{"2":{"7":1,"12":4,"13":5,"14":5,"18":1,"22":28,"23":2,"25":1,"34":3,"54":2}}],["notebooks",{"2":{"55":1}}],["note",{"2":{"43":1,"52":1,"59":1,"62":1,"65":1}}],["nothing",{"2":{"0":4,"3":4,"5":4,"23":1,"43":1,"59":1,"61":1,"64":1}}],["not",{"2":{"0":7,"1":1,"2":8,"5":1,"22":3,"33":3,"38":2,"39":1,"43":3,"44":1,"55":1,"56":1,"58":1,"59":1,"62":1,"63":1,"65":1,"67":3}}],["no",{"2":{"0":1,"2":3,"22":2,"36":1,"59":1,"62":1,"65":1}}],["perimeter",{"2":{"65":2,"66":2}}],["perform",{"2":{"43":2,"61":1}}],["per",{"2":{"43":1}}],["permanently",{"2":{"40":1,"56":1,"60":1}}],["peninsular",{"2":{"14":1,"22":2}}],["pkg>",{"2":{"30":3}}],["ply",{"2":{"35":1,"38":1}}],["please",{"2":{"31":2,"36":1,"51":1,"54":1,"67":1}}],["plotted",{"2":{"24":1}}],["plotting",{"2":{"24":2}}],["plot",{"2":{"24":1,"63":1}}],["plon",{"2":{"2":2}}],["plateau",{"2":{"13":1,"14":1,"22":4}}],["plat",{"2":{"2":2}}],["pop",{"2":{"67":2}}],["possible",{"2":{"20":1,"21":1,"33":1}}],["postulate",{"2":{"2":2}}],["point2",{"2":{"2":2,"25":1,"61":2,"64":2}}],["point",{"0":{"62":1,"65":1},"2":{"2":10,"7":1,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"30":1,"33":1,"35":1,"36":2,"40":1,"43":1,"55":4,"56":1,"61":2,"62":14,"64":2,"65":15,"67":1,"68":1}}],["points",{"0":{"67":1},"2":{"1":3,"2":4,"4":2,"24":4,"61":1,"62":2,"64":1,"67":3}}],["polylist",{"2":{"22":1,"33":2,"34":1,"54":2,"55":1,"58":4,"59":1,"60":1}}],["polygons",{"2":{"25":1}}],["polygon",{"2":{"8":1,"24":2,"25":1}}],["polygonal",{"2":{"1":2,"8":3,"18":1,"19":1,"23":1,"26":1,"29":1,"35":1,"36":2,"43":1,"62":1,"65":1,"67":1,"68":1}}],["polyregions",{"0":{"8":1,"29":1},"2":{"5":5,"6":1,"54":2,"58":1}}],["polyregion",{"0":{"54":1},"2":{"1":2,"2":1,"6":2,"8":2,"13":34,"14":59,"18":1,"19":1,"22":182,"26":1,"29":1,"33":4,"34":2,"35":2,"36":4,"38":1,"39":1,"43":4,"44":1,"48":1,"54":8,"56":1,"63":4,"67":1,"68":1}}],["pid",{"2":{"1":6,"2":1,"6":4,"7":3,"8":2,"9":3,"15":1,"17":1,"18":1,"19":1,"23":1,"25":2,"33":5,"35":1,"36":2,"40":1,"43":2,"44":1,"45":1,"52":1,"53":1,"54":6,"55":4,"56":1,"62":1,"65":1,"67":1,"68":1}}],["pwd",{"2":{"0":1,"1":3,"2":1,"3":6,"32":2,"33":2,"34":3,"35":1,"36":3,"38":2,"39":2,"40":3,"58":3,"59":1,"60":5}}],["present",{"2":{"59":1}}],["pressing",{"2":{"30":1}}],["previous",{"2":{"57":1}}],["previously",{"0":{"36":1}}],["pretty",{"2":{"33":1}}],["pre",{"2":{"28":1}}],["prefix",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["predefined=false",{"2":{"11":1,"59":1}}],["predefined",{"0":{"10":1,"15":1,"16":1},"1":{"11":1,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1},"2":{"5":6,"15":1,"16":1,"17":1,"18":1,"19":1,"20":3,"22":2,"23":1,"39":2,"57":1,"59":1}}],["preexisting",{"2":{"0":2,"3":1,"36":1,"58":1}}],["print",{"2":{"2":1}}],["prove",{"2":{"64":1}}],["problems",{"2":{"57":1}}],["property",{"0":{"46":1},"1":{"47":1,"48":1,"49":1}}],["properties",{"0":{"4":1,"41":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"0":1,"7":1,"8":1,"9":1,"15":2,"17":1,"18":1,"19":1,"20":1,"23":1,"33":1,"35":1,"36":2,"40":1,"43":1,"55":4,"56":1,"62":1,"65":1,"67":1,"68":1}}],["prompt",{"2":{"30":1}}],["process",{"2":{"23":1}}],["projects",{"2":{"40":2,"45":1,"56":1,"57":1,"58":3,"60":1}}],["projections",{"2":{"24":1}}],["projection",{"2":{"24":2}}],["project",{"0":{"3":1,"32":1,"33":1,"35":1,"37":1,"40":1,"57":1,"58":1,"59":1,"60":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":2,"39":2,"40":1,"58":1,"59":1,"60":1},"2":{"2":3,"3":1,"20":2,"32":1,"36":2,"40":2,"45":1,"46":1,"47":1,"48":1,"49":1,"55":1,"56":1,"57":6,"58":3,"59":1,"60":2}}],["program",{"2":{"2":2}}],["page",{"2":{"50":1}}],["patch",{"2":{"30":1}}],["path=pwd",{"2":{"48":1,"49":2,"56":4,"58":2,"59":1}}],["path=joinpath",{"2":{"32":1,"33":2,"34":3,"35":1,"36":3,"38":2,"39":2,"40":3}}],["paths",{"2":{"2":1,"20":1}}],["path",{"2":{"0":27,"1":15,"2":26,"3":14,"5":12,"20":2,"33":9,"36":1,"57":3,"58":2,"59":2,"60":2}}],["parid",{"2":{"54":1}}],["particular",{"2":{"37":1,"57":1}}],["part",{"2":{"20":1,"57":1}}],["parent",{"2":{"1":3,"2":1,"6":1,"7":1,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"21":1,"22":4,"23":1,"25":2,"33":1,"34":1,"35":1,"36":2,"40":1,"43":1,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["pacific",{"2":{"13":3,"14":3,"22":12}}],["package",{"2":{"0":3,"30":1,"57":1,"61":2,"64":2}}],["paper",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["pass",{"2":{"2":1}}],["obviously",{"2":{"65":1}}],["obvious",{"2":{"62":1,"66":1}}],["obtain",{"2":{"9":1}}],["ogeo",{"2":{"45":2}}],["option",{"2":{"44":1}}],["open",{"2":{"31":1}}],["omitted",{"2":{"34":1}}],["other",{"2":{"21":1,"63":2,"64":1,"67":1}}],["otherwise",{"2":{"2":3}}],["ocean",{"2":{"13":1,"14":10,"22":22,"62":2,"65":1}}],["out",{"0":{"59":1},"2":{"7":1,"8":1,"31":1,"45":1}}],["over",{"2":{"58":2}}],["override",{"2":{"3":1}}],["overwritten",{"2":{"3":1,"58":1}}],["overwriting",{"0":{"36":1},"2":{"0":1,"58":3}}],["overwrite=true",{"2":{"10":1,"58":1}}],["overwrites",{"2":{"0":1}}],["overwrite",{"2":{"0":1,"3":6,"36":2,"58":2}}],["original",{"2":{"58":3}}],["ordered",{"2":{"52":1}}],["order",{"2":{"2":2,"6":1,"7":1,"24":1,"36":1,"51":1,"52":3,"53":1,"58":1,"67":2}}],["or",{"2":{"2":8,"20":1,"30":1,"31":1,"33":1,"37":1,"38":1,"39":3,"42":1,"43":1,"46":1,"51":1,"55":1,"56":1,"60":1,"61":1,"66":1}}],["once",{"2":{"36":1}}],["only",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"20":1,"22":1}}],["one",{"2":{"0":1}}],["on",{"0":{"2":1,"39":1,"64":1,"65":1,"66":1},"1":{"65":1,"66":1,"67":2,"68":2},"2":{"0":1,"2":2,"4":1,"7":2,"8":1,"15":1,"20":1,"23":1,"24":3,"25":1,"27":1,"28":1,"29":1,"35":2,"39":1,"43":1,"45":1,"54":1,"57":1,"63":1,"64":3,"65":6,"66":2,"67":5,"68":1}}],["often",{"2":{"61":1}}],["of",{"0":{"10":1,"20":1,"21":1,"23":1,"24":1,"26":1,"32":1,"50":1},"1":{"11":1,"12":1,"13":1,"14":1,"21":1,"22":1,"24":1,"27":1,"28":1,"29":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1},"2":{"0":12,"1":15,"2":24,"3":7,"4":7,"5":7,"6":5,"7":1,"8":5,"9":2,"13":1,"14":1,"15":5,"16":1,"17":1,"18":2,"19":1,"20":2,"21":3,"22":2,"23":2,"24":5,"25":8,"26":2,"28":6,"29":1,"30":2,"32":2,"33":2,"35":1,"36":2,"37":1,"41":2,"43":2,"44":2,"45":1,"49":1,"51":3,"52":2,"53":1,"54":1,"55":1,"57":4,"58":1,"59":3,"60":1,"62":7,"64":2,"65":5,"66":2,"67":4,"68":3}}],["like",{"2":{"54":1}}],["lifting",{"2":{"33":1}}],["line",{"2":{"54":8}}],["linewidth=5",{"2":{"24":1,"62":1,"63":5,"65":1}}],["linewidth=3",{"2":{"24":1,"62":1,"63":1,"65":1}}],["lines",{"2":{"24":2,"54":4,"62":2,"63":6,"65":2}}],["limits=",{"2":{"24":1,"62":1,"63":1,"65":1}}],["listing",{"0":{"55":1,"59":1},"2":{"21":1}}],["listings",{"0":{"20":1},"1":{"21":1,"22":1}}],["listed",{"2":{"3":1,"15":1,"34":1}}],["lists",{"0":{"21":1,"40":1},"2":{"0":5,"2":1,"20":1,"22":3,"33":4,"40":1,"56":1,"60":1}}],["list",{"0":{"10":1,"60":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"0":7,"1":6,"2":2,"3":3,"5":6,"17":1,"18":1,"19":1,"20":4,"21":1,"33":1,"36":1,"38":1,"39":1,"52":1,"53":1,"54":1,"55":1,"56":5,"59":1}}],["let",{"2":{"23":1,"33":1,"34":1,"35":2,"40":1,"43":1,"56":1,"62":2,"63":2,"65":2,"66":1,"67":1}}],["letter",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["length",{"2":{"8":2,"24":2}}],["lt",{"2":{"2":1,"7":1,"58":1}}],["layout",{"2":{"24":1,"62":1,"63":1,"65":1}}],["larger",{"2":{"20":1}}],["last",{"2":{"1":1,"54":1}}],["latest",{"2":{"30":3}}],["lat",{"0":{"49":1},"2":{"1":2,"2":3,"4":2,"8":4,"24":2,"28":1,"29":2,"35":1,"43":5,"48":2,"49":4,"67":9,"68":2}}],["latitudes",{"2":{"2":1}}],["latitude",{"2":{"1":3,"2":1,"4":2,"8":2,"24":1,"28":3,"54":5}}],["look",{"2":{"54":1,"67":1}}],["lost",{"2":{"40":1,"56":1,"60":1}}],["loaded",{"0":{"38":1},"2":{"38":1}}],["load",{"2":{"23":1,"43":1}}],["logs",{"2":{"2":1}}],["logging",{"2":{"0":4,"1":6,"2":5}}],["longer",{"2":{"36":1}}],["long",{"2":{"2":3,"44":1}}],["longitude",{"2":{"1":3,"2":2,"4":2,"8":2,"24":1,"28":3,"54":5,"62":1,"65":1}}],["lon",{"0":{"49":1},"2":{"1":2,"2":3,"4":2,"8":4,"24":2,"28":1,"29":2,"43":5,"48":2,"49":4,"67":8,"68":4}}],["local",{"2":{"0":3}}],["d",{"2":{"65":5}}],["data",{"2":{"61":1}}],["dtp",{"2":{"55":2,"56":1}}],["during",{"2":{"24":1}}],["diagrams",{"2":{"9":1}}],["displayed",{"2":{"5":2}}],["display",{"2":{"3":1,"5":10}}],["differentiate",{"2":{"26":1}}],["different",{"0":{"4":1},"2":{"2":2,"6":1,"21":1,"24":1,"26":1,"41":2,"43":8,"44":2,"57":2,"64":1,"67":1}}],["directly",{"2":{"33":1,"52":2,"53":1,"54":1,"56":2,"60":1}}],["direction",{"2":{"28":1}}],["directions",{"2":{"28":1}}],["directories",{"2":{"20":1}}],["directory",{"2":{"0":4,"1":3,"2":4,"3":5,"5":4,"33":3,"36":1,"57":2,"58":1,"59":1,"60":1}}],["dirname",{"2":{"0":2,"2":3}}],["done",{"2":{"54":1}}],["don",{"2":{"37":1,"46":1,"64":1}}],["doing",{"2":{"25":1}}],["download",{"2":{"23":1,"61":1,"64":1}}],["does",{"0":{"45":1},"2":{"22":3,"38":1,"67":1}}],["docs",{"2":{"40":1,"56":1,"58":3,"60":1}}],["docstring",{"2":{"2":4}}],["documentation",{"2":{"20":1}}],["domains",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1}}],["domain",{"2":{"8":1,"25":1}}],["do",{"2":{"1":1,"5":1,"7":1,"33":4,"37":1,"38":1,"39":1,"44":1,"52":1,"53":1,"60":1}}],["determining",{"2":{"64":1}}],["determined",{"2":{"2":3}}],["determine",{"2":{"2":2,"45":1,"61":1,"63":1,"64":1,"66":1}}],["detect",{"2":{"62":1,"65":1}}],["denote",{"2":{"61":1,"64":1}}],["denoted",{"2":{"26":3}}],["dealing",{"2":{"61":1}}],["deep",{"2":{"55":1}}],["description",{"2":{"52":1}}],["deleted",{"2":{"40":1}}],["delete",{"2":{"37":1,"60":1}}],["deletegeoregions",{"2":{"3":1,"40":1,"60":2}}],["delimitedfiles",{"2":{"23":1,"50":1,"61":1,"64":1}}],["depot",{"2":{"20":1,"33":1}}],["depending",{"2":{"2":2}}],["degrees",{"2":{"1":1,"28":2}}],["define",{"2":{"2":2,"7":1,"24":1,"43":3,"51":1,"52":1,"53":1,"54":1,"62":1,"66":1,"67":2,"68":1}}],["defined",{"0":{"32":1,"36":1,"49":2},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"0":1,"2":11,"3":2,"5":3,"12":3,"13":3,"14":3,"17":3,"18":3,"19":3,"20":4,"24":1,"27":1,"28":1,"29":1,"33":1,"34":1,"35":1,"36":1,"40":1,"45":2,"49":2,"50":1,"54":3,"55":1,"56":2,"57":2,"58":2,"59":2,"62":1,"63":2,"65":1}}],["defining",{"0":{"7":1,"8":1,"9":1,"67":1},"2":{"1":1,"25":2,"51":1,"54":2,"67":1}}],["default",{"0":{"10":1,"11":1},"1":{"11":1,"12":1,"13":1,"14":1},"2":{"0":4,"1":3,"2":10,"3":1,"5":6,"15":1,"20":1,"24":1,"25":2,"33":2,"57":1,"60":2}}],["defaults",{"2":{"0":6,"1":3,"2":4,"3":3,"5":4}}],["smaller",{"2":{"63":1}}],["such",{"2":{"45":1,"56":1,"62":1,"65":1,"67":1}}],["suppose",{"2":{"41":1,"55":1}}],["supertype",{"2":{"25":1}}],["suggestions",{"2":{"31":1}}],["subregion",{"2":{"25":1}}],["subtypes",{"2":{"21":1}}],["subset",{"2":{"2":1,"21":1,"25":1}}],["shared",{"2":{"57":1}}],["shapes",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"64":1,"67":1,"68":1}}],["shape",{"0":{"23":1,"48":1,"49":1},"1":{"24":1},"2":{"1":1,"2":12,"4":4,"7":2,"8":3,"9":2,"15":2,"17":2,"18":2,"19":2,"23":3,"24":3,"25":2,"33":2,"35":3,"36":4,"40":2,"43":5,"44":3,"45":1,"46":1,"48":1,"49":1,"55":8,"56":2,"62":2,"65":2,"66":1,"67":3,"68":2}}],["shifting",{"0":{"68":1}}],["shift",{"2":{"44":1,"68":1}}],["shifted",{"2":{"43":1,"62":1,"65":1}}],["shown",{"2":{"59":1}}],["show",{"2":{"32":1}}],["should",{"2":{"25":1,"33":1,"54":4,"57":1,"67":1}}],["slat",{"2":{"24":4,"62":6,"63":10,"65":6}}],["slon",{"2":{"24":4,"62":5,"63":10,"65":5}}],["soneto",{"2":{"65":1}}],["so",{"2":{"22":1,"24":1,"33":1,"35":1,"44":1,"57":1,"59":1,"67":2,"68":1}}],["something",{"2":{"54":1,"64":1,"66":1}}],["sometimes",{"2":{"45":1,"46":2,"64":2}}],["some",{"2":{"21":1,"34":1,"37":1,"54":1}}],["soon",{"2":{"30":1}}],["soo",{"2":{"14":1,"22":2}}],["southwest",{"2":{"14":1,"22":2}}],["southeastern",{"2":{"13":1,"22":2}}],["southeast",{"2":{"12":1,"13":1,"14":2,"22":8,"43":1,"45":1,"55":1}}],["southern",{"2":{"12":2,"13":2,"14":8,"22":24,"34":1,"51":2}}],["south",{"2":{"7":1,"12":2,"13":5,"14":10,"22":34,"25":1,"34":1,"51":2}}],["source",{"2":{"0":6,"1":3,"2":8,"3":5,"4":1,"5":4,"25":1,"27":1,"28":1,"29":1}}],["simply",{"2":{"62":1,"65":1}}],["simpler",{"2":{"66":1}}],["simple",{"2":{"51":2}}],["similar",{"2":{"57":1}}],["simultaneously",{"2":{"33":1}}],["since",{"2":{"30":1,"63":1}}],["sio",{"2":{"14":1,"22":2}}],["siberia",{"2":{"14":2,"22":4}}],["sides",{"2":{"24":1}}],["side",{"2":{"4":1,"24":2}}],["sws",{"2":{"14":1,"22":2}}],["scatter",{"2":{"62":2,"65":3}}],["sca",{"2":{"14":1,"22":2}}],["screen",{"2":{"2":1}}],["src",{"2":{"22":3,"40":1,"56":1,"58":6,"60":1}}],["srx",{"2":{"13":35,"18":5,"22":66,"39":1,"54":2}}],["srex=false",{"2":{"14":1}}],["srex=true",{"2":{"13":1}}],["srex",{"0":{"13":1,"18":1},"2":{"5":4,"13":33,"21":1,"22":66,"57":1}}],["ssa",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1}}],["select",{"2":{"65":1}}],["separated",{"2":{"54":1}}],["setting",{"2":{"20":1}}],["set",{"2":{"16":1,"36":1,"49":1,"59":1}}],["sets",{"2":{"15":1}}],["setup",{"0":{"58":1},"2":{"3":1,"20":1,"23":1}}],["setupgeoregions",{"2":{"3":1,"10":1,"32":1,"58":2}}],["several",{"2":{"15":1,"26":1,"41":1}}],["ses",{"2":{"14":1,"22":2}}],["seneviratne",{"0":{"13":1,"18":1},"2":{"13":1,"18":2}}],["seaf",{"2":{"14":1,"22":2}}],["sea",{"2":{"12":1,"13":1,"14":2,"22":8,"43":8,"45":5,"47":2}}],["section",{"2":{"15":1,"23":1}}],["sections",{"2":{"6":1}}],["second",{"2":{"2":2,"39":1,"49":1}}],["seen",{"2":{"6":1}}],["see",{"2":{"2":1,"7":1,"8":1,"9":1,"15":2,"17":1,"18":1,"19":1,"22":4,"24":1,"25":2,"33":2,"34":3,"35":2,"36":2,"38":2,"39":1,"40":1,"43":2,"44":1,"45":3,"47":1,"48":1,"49":1,"51":1,"54":1,"55":1,"56":1,"58":1,"59":1,"60":2,"62":4,"63":3,"65":4,"66":1,"67":1,"68":1}}],["segments",{"2":{"2":1,"4":1,"24":2}}],["spaces",{"2":{"51":1,"54":1}}],["spans",{"2":{"15":1}}],["spo",{"2":{"14":1,"22":2}}],["specify",{"2":{"7":1,"8":1,"24":2,"33":2,"59":1}}],["specifying",{"2":{"3":1}}],["specifically",{"2":{"46":1,"57":1,"58":1}}],["specification",{"2":{"8":1,"9":1,"57":2}}],["specific",{"0":{"21":1},"2":{"6":1,"20":1}}],["specifies",{"2":{"3":1}}],["specified",{"2":{"0":3,"1":3,"3":1,"25":1,"33":1,"59":1}}],["split",{"2":{"2":1}}],["stored",{"2":{"58":1}}],["store",{"2":{"58":1}}],["stops",{"2":{"2":2}}],["start",{"2":{"67":3}}],["starting",{"2":{"67":1}}],["started",{"2":{"58":1}}],["state",{"2":{"8":1}}],["still",{"2":{"57":1}}],["stp",{"2":{"13":1,"22":2}}],["straightforward",{"2":{"7":1}}],["strict=false",{"2":{"44":3}}],["strict",{"0":{"43":1,"44":1},"2":{"2":4,"43":1,"44":1}}],["string",{"2":{"1":3,"3":1,"15":1,"25":3,"39":1}}],["struct",{"2":{"2":1}}],["st",{"2":{"1":6}}],["say",{"2":{"60":1}}],["satisfied",{"2":{"43":1}}],["saving",{"2":{"20":1}}],["save=true",{"2":{"33":1,"54":1}}],["save",{"2":{"1":9,"33":8,"34":2,"35":1,"36":4,"40":2,"43":1}}],["saved",{"2":{"0":2,"20":1,"33":3,"35":1,"36":1,"40":1,"56":1,"57":1,"59":1,"60":1}}],["saves",{"2":{"0":1}}],["sao",{"2":{"14":1,"22":2}}],["sau",{"2":{"13":1,"14":1,"22":4}}],["sas",{"2":{"12":1,"13":1,"14":1,"22":6}}],["sahara",{"2":{"12":1,"13":1,"14":1,"22":6}}],["sah",{"2":{"12":1,"13":1,"14":1,"22":6}}],["saf",{"2":{"12":1,"13":1,"22":4}}],["sam",{"2":{"14":1,"22":2}}],["sample",{"2":{"7":1,"8":1,"9":1}}],["same",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"0":1,"2":19,"3":1,"6":1,"8":2,"36":1,"43":6,"44":3,"45":1,"52":1,"53":1,"54":1,"66":1,"67":2,"68":1}}],["s",{"0":{"11":1},"2":{"0":1,"1":4,"5":4,"7":6,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"25":1,"27":1,"33":1,"34":1,"35":3,"36":2,"40":2,"43":1,"52":3,"55":4,"56":2,"59":1,"62":1,"65":1,"67":1,"68":1}}],["written",{"2":{"51":1}}],["writes",{"2":{"33":3}}],["would",{"2":{"49":1,"51":1,"54":1,"64":1}}],["wong",{"2":{"23":1,"61":1,"64":1}}],["workspace",{"2":{"33":1,"38":1}}],["works",{"2":{"24":1,"57":1}}],["work",{"2":{"22":3,"40":2,"56":2,"58":9,"60":2}}],["working",{"2":{"3":3,"30":1}}],["wca",{"2":{"14":1,"22":2}}],["wce",{"2":{"14":1,"22":2}}],["wsea",{"2":{"55":2,"56":1}}],["wsb",{"2":{"14":1,"22":2}}],["wsaf",{"2":{"14":1,"22":2}}],["wsa",{"2":{"13":1,"22":2}}],["way",{"2":{"58":1,"61":1,"64":1}}],["ways",{"2":{"37":1,"41":1,"54":1}}],["waiting",{"2":{"30":1}}],["want",{"2":{"30":1,"37":1,"42":1,"45":1,"46":2,"60":1,"64":1}}],["wan",{"2":{"14":1,"22":2}}],["was",{"2":{"13":1,"22":2}}],["waf",{"2":{"12":1,"13":1,"14":1,"17":3,"22":6,"34":1}}],["warning",{"2":{"22":3,"40":1,"56":1,"58":3,"59":1,"60":1}}],["warnings",{"2":{"5":1}}],["warn=false",{"2":{"22":1}}],["warn",{"2":{"5":2,"59":1}}],["wna",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1}}],["wholly",{"2":{"63":1}}],["whole",{"2":{"15":1}}],["while",{"2":{"33":1}}],["which",{"2":{"2":2,"15":1,"20":1,"25":2,"33":2,"49":1,"52":1,"53":1,"54":1,"58":1,"61":1,"62":1,"64":1,"65":1,"66":1}}],["whether",{"2":{"64":1}}],["when",{"2":{"25":2,"33":1,"52":1,"61":1}}],["where",{"2":{"0":6,"1":6,"2":5,"3":3,"5":4,"24":1,"28":1,"44":1,"67":1}}],["what",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1},"2":{"62":1,"65":1}}],["were",{"2":{"57":1}}],["western",{"2":{"12":2,"14":5,"17":1,"22":14,"34":2,"55":1}}],["west",{"2":{"7":1,"13":4,"14":2,"22":12,"25":1}}],["we",{"2":{"2":2,"6":1,"8":1,"23":2,"24":5,"26":1,"32":1,"33":2,"34":4,"35":2,"36":3,"37":1,"38":3,"39":1,"40":2,"41":2,"42":1,"43":4,"44":2,"45":4,"46":2,"52":1,"53":1,"54":5,"56":3,"57":2,"59":3,"60":1,"61":2,"62":4,"63":2,"64":2,"65":4,"66":2,"67":4,"68":3}}],["w",{"2":{"1":1,"7":7,"8":1,"9":1,"11":1,"12":1,"13":2,"14":1,"15":1,"17":1,"18":1,"19":1,"22":6,"23":1,"25":1,"27":1,"33":1,"34":1,"35":1,"36":2,"40":1,"43":1,"52":3,"54":1,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["wish",{"2":{"33":1,"54":1,"61":1}}],["wio",{"2":{"13":1,"22":2}}],["width=750",{"2":{"24":1,"62":1,"63":1,"65":1}}],["width",{"2":{"1":2,"28":3}}],["will",{"2":{"0":12,"1":9,"2":8,"3":3,"5":7,"20":1,"21":3,"22":1,"28":1,"32":1,"33":1,"40":2,"43":1,"56":1,"57":2,"58":4,"59":1,"60":1,"67":1}}],["without",{"2":{"30":1}}],["within",{"2":{"2":4,"61":1,"62":3,"63":1,"65":1}}],["with",{"2":{"0":7,"2":9,"3":1,"7":2,"8":2,"9":2,"21":1,"36":7,"37":2,"39":1,"43":2,"51":1,"58":3,"60":1,"61":2,"62":1,"63":1,"65":2,"67":1}}],["vcat",{"2":{"67":2}}],["v7",{"2":{"57":1}}],["via",{"2":{"55":1}}],["v2",{"2":{"18":1,"19":1}}],["v1",{"2":{"17":1,"30":3}}],["ve",{"2":{"37":1}}],["verify",{"2":{"63":1}}],["very",{"2":{"54":2,"62":1,"65":1}}],["vertices",{"2":{"24":1,"29":1}}],["vertical",{"2":{"5":1}}],["versions",{"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"30":1}}],["version",{"2":{"2":2,"26":1,"30":3,"57":1}}],["verbose",{"2":{"0":12,"1":9,"2":18,"3":1}}],["vectors",{"2":{"2":1,"4":1,"8":4,"49":1}}],["vector",{"2":{"1":5,"2":4,"3":2,"4":4,"25":2,"28":1,"54":10,"55":1}}],["various",{"2":{"41":1}}],["variety",{"2":{"21":1}}],["variable",{"2":{"0":3,"33":1,"57":1}}],["values",{"2":{"2":2,"67":1}}],["valid",{"2":{"0":4,"2":2,"25":1,"38":1,"39":1,"54":1,"56":1}}],["tmp1",{"2":{"48":2}}],["ts4",{"2":{"63":5}}],["ts3",{"2":{"63":4}}],["ts2",{"2":{"63":5}}],["ts1",{"2":{"63":5}}],["tst",{"2":{"40":4,"48":1,"52":2,"53":2}}],["tsr",{"2":{"33":3,"34":2,"39":4}}],["tsp",{"2":{"33":2,"34":2,"35":3,"36":10,"38":4}}],["tutorials",{"2":{"40":1,"56":1,"58":3,"60":1}}],["tutorial",{"2":{"32":1}}],["t",{"2":{"30":1,"37":1,"46":1,"64":1}}],["taken",{"2":{"48":1,"49":1}}],["talks",{"2":{"15":1}}],["tablepolyregions",{"2":{"5":1,"21":2,"22":1}}],["tabletiltregions",{"2":{"5":1,"21":2,"22":2}}],["tablerectregions",{"2":{"5":1,"21":1,"22":1}}],["table",{"2":{"5":1,"21":1,"59":2}}],["tables",{"0":{"5":1},"2":{"22":3}}],["tablegeoregions",{"2":{"3":1,"5":1,"20":4,"22":1,"34":1,"59":1}}],["tabular",{"0":{"20":1},"1":{"21":1,"22":1},"2":{"3":1,"5":4}}],["tibetian",{"2":{"14":1,"22":2}}],["tibetan",{"2":{"13":1,"22":2}}],["tibet",{"2":{"12":1,"22":2}}],["tib",{"2":{"12":1,"13":1,"14":1,"22":6}}],["tiltlist",{"0":{"53":1},"2":{"22":1,"33":1,"51":1,"53":1,"55":1,"58":4,"59":1,"60":1}}],["tiltgrid",{"2":{"9":1}}],["tilt",{"2":{"1":1,"9":3,"28":3,"40":1}}],["tilting",{"2":{"1":2,"28":2}}],["tilted",{"2":{"1":2,"9":2,"26":1,"28":1,"40":1}}],["tiltregions",{"0":{"9":1,"28":1},"2":{"5":2,"6":1,"22":2,"28":1,"58":1}}],["tiltregion",{"0":{"51":1},"1":{"52":1,"53":1},"2":{"1":2,"6":2,"9":4,"26":1,"28":1,"33":1,"38":1,"39":1,"40":2,"51":1,"53":5,"56":1}}],["txt",{"0":{"52":1,"53":1},"2":{"11":1,"12":22,"13":34,"14":59,"22":231,"23":1,"33":4,"34":16,"51":3,"52":1,"53":1,"54":3,"55":4,"58":12,"59":4,"60":4,"61":1,"64":1}}],["ttr",{"2":{"9":4}}],["tpr",{"2":{"8":4}}],["text",{"2":{"51":1}}],["terms",{"2":{"8":1,"66":1}}],["tests",{"2":{"43":2}}],["testing",{"2":{"41":1}}],["test",{"2":{"7":3,"8":2,"9":3,"32":2,"33":5,"34":5,"35":2,"36":6,"38":2,"39":2,"40":7,"52":2,"53":2,"55":2,"56":3,"62":1,"63":4,"65":1,"67":1,"68":1}}],["templates",{"2":{"22":3}}],["template",{"2":{"3":2}}],["trivial",{"2":{"62":1}}],["tricky",{"2":{"54":1}}],["tropics",{"2":{"55":2}}],["tropical",{"2":{"13":2,"22":4}}],["trp",{"2":{"55":5,"56":2}}],["try",{"2":{"35":1,"66":1}}],["trying",{"2":{"31":1}}],["trr",{"2":{"7":4}}],["true",{"2":{"0":3,"1":6,"2":28,"3":2,"5":19,"20":3,"21":5,"33":4,"34":2,"43":6,"44":5,"45":4,"47":2,"48":1,"49":2,"58":4,"62":2,"63":2}}],["two",{"0":{"42":1},"1":{"43":1,"44":1},"2":{"2":2,"8":1,"37":1,"41":1,"42":1,"64":1,"66":1,"67":1,"68":1}}],["types",{"0":{"26":1},"1":{"27":1,"28":1,"29":1},"2":{"6":2,"7":1,"8":1,"25":3,"26":1,"28":1,"44":1}}],["type",{"2":{"2":4,"6":1,"11":1,"12":2,"13":2,"14":2,"15":1,"17":1,"18":1,"19":1,"22":4,"25":4,"26":3,"28":6,"34":1,"43":3,"44":1,"59":1,"61":2,"64":2}}],["tf",{"2":{"0":3,"2":17}}],["touch",{"2":{"31":1}}],["to",{"0":{"33":1},"2":{"0":13,"1":7,"2":12,"3":5,"5":4,"6":1,"7":2,"9":1,"12":2,"13":2,"14":2,"15":1,"17":3,"18":3,"19":3,"20":6,"21":1,"22":6,"24":5,"25":1,"28":2,"30":5,"31":4,"33":10,"34":1,"36":3,"37":2,"38":4,"39":3,"40":1,"42":1,"43":4,"44":1,"45":4,"46":2,"47":1,"48":1,"49":2,"50":1,"51":1,"52":1,"53":1,"54":2,"56":6,"57":2,"58":4,"59":3,"60":1,"61":5,"62":5,"63":2,"64":5,"65":4,"66":1,"67":2}}],["thus",{"2":{"54":1}}],["tho",{"2":{"44":1}}],["though",{"2":{"13":1,"18":1,"44":1,"59":1}}],["those",{"2":{"3":1,"59":1}}],["through",{"2":{"23":1}}],["throw=false",{"2":{"40":1}}],["throws",{"2":{"0":1,"2":5}}],["throw",{"2":{"0":2,"2":12}}],["thrown",{"2":{"0":4,"1":3,"2":3}}],["three",{"2":{"6":2,"7":1,"8":1}}],["that",{"0":{"38":1},"2":{"0":4,"1":3,"2":4,"3":1,"6":1,"7":1,"9":2,"15":1,"24":2,"33":1,"34":2,"35":1,"36":1,"37":1,"38":2,"39":1,"42":1,"43":3,"44":1,"45":2,"49":1,"52":1,"55":1,"57":4,"58":1,"59":1,"62":6,"63":2,"65":6,"67":2,"68":2}}],["this",{"2":{"0":1,"3":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"23":1,"24":1,"30":1,"32":1,"33":1,"35":1,"36":4,"38":2,"39":2,"45":1,"50":1,"54":3,"55":1,"56":2,"57":2,"58":1,"61":2,"62":3,"63":2,"64":2,"65":2,"67":2,"68":1}}],["them",{"2":{"13":1,"18":1,"20":1,"60":1,"63":1}}],["these",{"2":{"6":1,"35":1,"40":1,"43":1,"56":1,"58":1,"60":1}}],["their",{"0":{"41":1,"66":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"67":1,"68":1},"2":{"6":1,"20":2,"34":1,"40":1,"50":1}}],["they",{"2":{"2":5,"34":1,"40":1,"43":1,"58":1}}],["therefore",{"2":{"24":2,"36":1,"52":1,"53":1,"57":1,"67":1}}],["there",{"0":{"45":1},"2":{"0":1,"2":7,"6":1,"15":1,"16":1,"22":1,"24":2,"37":1,"45":2,"54":2,"59":1}}],["then",{"2":{"0":4,"1":3,"2":9,"3":1,"54":1,"60":1}}],["the",{"0":{"11":1,"23":1,"24":1,"40":1,"59":1,"60":1,"66":1,"67":2,"68":1},"1":{"24":1,"67":1,"68":1},"2":{"0":49,"1":43,"2":72,"3":24,"4":7,"5":14,"6":6,"7":10,"8":11,"9":6,"12":3,"13":3,"14":3,"15":14,"17":6,"18":6,"19":6,"20":2,"21":5,"22":8,"23":5,"24":16,"25":14,"26":3,"28":13,"29":1,"30":9,"32":2,"33":17,"34":4,"35":6,"36":15,"37":1,"38":7,"39":5,"40":7,"42":1,"43":18,"44":7,"45":6,"46":1,"47":2,"48":3,"49":5,"51":7,"52":6,"53":3,"54":13,"55":10,"56":17,"57":6,"58":5,"59":6,"60":4,"61":4,"62":18,"63":5,"64":5,"65":15,"66":5,"67":17,"68":7}}],["bit",{"2":{"66":1}}],["big",{"2":{"63":10}}],["blue",{"2":{"62":1,"63":1,"65":1}}],["black",{"2":{"24":1,"62":1,"63":1,"65":1}}],["brief",{"2":{"50":1}}],["branch",{"2":{"30":1}}],["brazil",{"2":{"13":1,"22":2}}],["but",{"2":{"49":1,"52":1,"62":1,"63":1,"65":1}}],["build",{"2":{"40":1,"56":1,"58":3,"60":1}}],["bugs",{"2":{"30":1}}],["b",{"2":{"6":1,"62":5,"63":4,"65":6}}],["bay",{"2":{"14":1,"22":2}}],["basis",{"2":{"54":1,"57":1}}],["basic",{"2":{"15":2,"20":1}}],["basically",{"2":{"9":1}}],["basin",{"2":{"12":2,"22":4,"34":2}}],["based",{"0":{"39":1},"2":{"39":1}}],["base",{"2":{"0":1,"2":4}}],["back",{"2":{"3":1}}],["border",{"2":{"65":1}}],["box",{"2":{"62":1,"65":1}}],["both",{"2":{"20":1,"28":1,"67":1}}],["bob",{"2":{"14":1,"22":2}}],["boundary",{"0":{"64":1,"65":1},"1":{"65":1,"66":1,"67":1,"68":1},"2":{"64":2}}],["boundaries",{"2":{"7":1,"25":1,"27":1}}],["bounding",{"2":{"62":1,"65":1}}],["bounds",{"2":{"7":3,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"33":1,"34":1,"35":1,"36":2,"40":1,"43":1,"52":1,"55":4,"56":1,"59":1,"62":5,"65":3,"67":1,"68":1}}],["bound",{"2":{"1":2,"25":1,"43":2,"45":1,"52":1}}],["boolean",{"2":{"0":2,"2":9}}],["bool",{"2":{"0":6,"1":7,"2":25,"3":3,"5":9}}],["by",{"0":{"49":1,"68":1},"2":{"0":2,"1":3,"2":11,"3":3,"20":2,"24":2,"25":4,"26":3,"27":1,"28":1,"29":1,"30":1,"33":1,"43":1,"44":1,"49":1,"54":3,"57":1,"61":1,"62":2,"63":1,"64":1,"65":2,"68":1}}],["best",{"2":{"54":1,"58":1}}],["besides",{"2":{"21":1}}],["been",{"0":{"34":1,"38":1},"2":{"34":1,"36":2,"38":1,"39":1,"59":1}}],["between",{"0":{"41":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"26":1,"54":3}}],["because",{"2":{"21":1,"43":1,"45":1,"59":1,"66":1,"67":1}}],["bengal",{"2":{"14":1,"22":2}}],["below",{"2":{"6":1,"24":1,"54":1,"62":2,"63":1,"65":1}}],["before",{"2":{"1":2,"28":2}}],["being",{"2":{"0":3,"2":1,"44":1,"54":2,"67":1}}],["be",{"2":{"0":16,"1":15,"2":15,"3":3,"5":6,"8":2,"20":1,"21":1,"25":3,"30":1,"33":1,"34":1,"36":1,"39":1,"40":2,"43":4,"44":1,"45":1,"49":1,"51":1,"54":1,"56":1,"57":3,"58":1,"59":1,"60":1,"63":1}}],["edge",{"2":{"67":1}}],["eye",{"2":{"62":1,"63":1,"65":1}}],["element",{"2":{"55":1,"65":1}}],["end",{"2":{"67":2}}],["ending",{"2":{"67":2}}],["entail",{"2":{"57":1}}],["ensure",{"2":{"24":1}}],["ena",{"2":{"12":1,"13":1,"14":1,"22":6,"34":1,"54":2}}],["empty",{"2":{"22":3,"54":9}}],["eio",{"2":{"14":1,"22":2}}],["either",{"2":{"2":2}}],["equivalence",{"0":{"41":1,"43":1,"44":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1},"2":{"41":1,"43":2}}],["equivalent",{"0":{"42":1,"48":1},"1":{"43":1,"44":1},"2":{"2":1,"42":1,"43":1,"44":2,"48":1,"49":1,"64":1}}],["equirectangular",{"2":{"24":1}}],["equatorial",{"2":{"14":3,"22":6,"62":2,"65":1}}],["epo",{"2":{"14":1,"22":2}}],["eca",{"2":{"14":1,"22":2}}],["essd",{"2":{"54":1}}],["essential",{"2":{"54":1}}],["essence",{"2":{"25":1}}],["especially",{"2":{"33":1}}],["esb",{"2":{"14":1,"22":2}}],["esaf",{"2":{"14":1,"22":2}}],["eeu",{"2":{"14":1,"22":2}}],["even",{"2":{"13":1,"18":1,"43":1,"44":2,"59":1}}],["etc",{"2":{"31":1}}],["etp",{"2":{"13":1,"22":2}}],["et",{"0":{"13":1,"14":1,"18":1,"19":1},"2":{"13":1,"14":1,"18":2,"19":2,"54":1}}],["europe",{"2":{"12":1,"13":3,"14":3,"22":14,"34":1}}],["eao",{"2":{"14":1,"22":2,"62":4,"65":4}}],["ean",{"2":{"14":1,"22":2}}],["eau",{"2":{"14":1,"22":2}}],["eaf",{"2":{"12":1,"13":1,"22":4,"34":1}}],["easy",{"2":{"61":1,"62":1,"64":1,"65":1}}],["eas",{"2":{"12":1,"13":1,"14":1,"19":3,"22":6}}],["easily",{"2":{"9":1,"61":1}}],["eastern",{"2":{"12":2,"13":1,"14":6,"22":18,"34":2,"54":2}}],["east",{"2":{"7":1,"12":1,"13":3,"14":5,"19":1,"22":18,"25":1}}],["ease",{"2":{"0":4,"1":3,"2":5}}],["each",{"2":{"2":1,"4":1,"6":1,"24":1,"54":1,"64":1,"67":1}}],["e",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"0":3,"1":1,"2":4,"7":7,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"17":1,"18":1,"19":1,"22":4,"23":1,"25":1,"27":1,"33":1,"34":1,"35":1,"36":2,"40":1,"43":2,"44":1,"52":3,"55":4,"56":1,"59":1,"62":1,"65":1,"67":1,"68":1}}],["error",{"2":{"0":5,"1":3,"2":8,"36":1,"38":1,"39":1,"56":1}}],["explicitly",{"2":{"57":1}}],["exampleon",{"2":{"65":2,"66":1,"67":1,"68":1}}],["examplelon",{"2":{"24":1}}],["examples",{"0":{"22":1},"2":{"51":1}}],["example",{"0":{"52":1,"53":1},"2":{"7":1,"8":1,"9":1,"15":1,"23":1,"24":1,"33":1,"43":1,"48":1,"49":1,"51":1,"52":1,"53":1,"54":2,"59":1,"62":1,"65":1,"66":1}}],["exact",{"2":{"0":1}}],["exactly",{"2":{"0":1,"2":5,"43":1}}],["extension",{"2":{"63":1}}],["extent",{"2":{"5":1}}],["extracting",{"2":{"23":1}}],["extract",{"2":{"3":1,"43":1}}],["extracted",{"2":{"1":3}}],["extracts",{"2":{"0":1}}],["existing",{"0":{"49":1}}],["exist",{"0":{"45":1},"2":{"3":1,"5":1,"22":3,"45":1,"54":3,"58":1,"59":1}}],["exists",{"0":{"47":1},"2":{"0":2,"2":4,"38":1,"45":1,"46":2,"60":1}}],["except",{"2":{"2":4}}],["importing",{"2":{"56":1}}],["important",{"2":{"15":1,"54":1,"64":1}}],["iceland",{"2":{"13":1,"14":1,"22":4}}],["ipcc",{"0":{"14":1},"2":{"5":1}}],["ippc",{"2":{"5":1}}],["iturbide",{"0":{"14":1,"19":1},"2":{"14":1,"19":2,"54":1}}],["itself",{"2":{"25":1,"66":1}}],["its",{"0":{"39":1},"2":{"9":1,"15":1,"27":1,"28":1,"29":1,"39":1,"43":1}}],["it",{"0":{"2":1,"61":1,"64":1},"1":{"62":1,"63":1,"65":1,"66":1,"67":1,"68":1},"2":{"2":2,"8":1,"20":2,"21":2,"31":1,"33":4,"37":2,"38":1,"52":1,"54":2,"62":5,"64":1,"65":4,"67":1,"68":1}}],["indeed",{"2":{"63":1}}],["indices",{"2":{"65":1}}],["individual",{"2":{"54":1}}],["indian",{"2":{"13":1,"14":2,"22":6}}],["inside",{"0":{"55":1,"56":1,"63":1},"2":{"55":2,"56":1,"61":1,"62":1,"64":1}}],["installed",{"2":{"30":1}}],["installation",{"0":{"30":1}}],["instructions",{"0":{"30":1}}],["instead",{"2":{"0":1,"2":1,"33":1,"67":1,"68":1}}],["inputing",{"2":{"52":1}}],["inputs",{"2":{"6":2}}],["info",{"2":{"33":1,"36":1,"38":1,"39":1,"56":5}}],["information",{"0":{"36":1},"2":{"0":5,"1":6,"3":5,"15":1,"23":1,"32":1,"33":2,"35":2,"36":2,"37":2,"40":2,"45":1,"56":1,"60":1,"64":1}}],["introduction",{"2":{"50":1}}],["interested",{"2":{"31":1}}],["interest",{"2":{"9":1,"25":1}}],["int",{"2":{"2":2,"4":1}}],["into",{"2":{"0":2,"1":3,"2":1,"3":1,"20":1,"33":1,"36":2,"38":1,"40":1,"50":1,"52":1,"55":1,"56":2,"60":1,"67":1}}],["in",{"0":{"2":1,"3":1,"5":1,"16":1,"49":1,"52":1,"53":1,"61":1,"62":1},"1":{"17":1,"18":1,"19":1,"62":1,"63":1},"2":{"0":8,"1":12,"2":16,"3":5,"5":4,"6":2,"7":1,"8":2,"9":1,"12":3,"13":3,"14":3,"15":1,"16":1,"17":3,"18":3,"19":3,"20":1,"21":2,"22":4,"23":1,"24":2,"25":1,"26":4,"28":7,"30":1,"31":2,"32":1,"33":3,"36":2,"39":1,"43":2,"45":2,"46":1,"47":1,"48":1,"49":1,"50":1,"51":3,"52":6,"53":3,"54":6,"57":2,"58":5,"62":7,"63":5,"64":1,"65":2,"66":1,"67":3,"68":1}}],["i",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"0":3,"2":3,"30":2,"43":1,"44":1,"67":1}}],["isingeoregion",{"2":{"61":1}}],["isid",{"2":{"0":1,"2":1,"34":2,"38":1,"39":1,"40":1,"47":2}}],["isfile",{"2":{"58":2,"60":2}}],["issue",{"2":{"31":1}}],["isn",{"2":{"30":1}}],["islands",{"2":{"13":1,"22":2,"55":1,"56":1}}],["isgeoshape",{"2":{"2":2,"48":2,"49":2}}],["isgeo",{"2":{"2":1,"45":4}}],["isequal",{"2":{"2":1,"42":1,"43":4,"44":3,"45":1}}],["is",{"0":{"2":1,"11":1,"25":1,"49":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1},"1":{"26":1,"27":1,"28":1,"29":1,"62":1,"63":1,"65":1,"66":1,"67":2,"68":2},"2":{"0":10,"1":6,"2":22,"5":6,"7":2,"9":3,"15":4,"20":2,"21":2,"24":3,"25":3,"33":7,"38":2,"39":2,"43":2,"44":4,"45":2,"47":1,"49":2,"51":1,"52":4,"53":2,"54":6,"55":1,"56":1,"57":1,"58":1,"59":2,"60":2,"61":3,"62":11,"63":3,"64":5,"65":9,"66":2,"67":1,"68":1}}],["if",{"0":{"34":1,"47":1,"48":1,"49":1},"2":{"0":7,"1":9,"2":27,"3":3,"5":10,"24":1,"30":1,"31":2,"33":2,"34":2,"35":1,"38":1,"40":2,"42":1,"43":1,"44":1,"45":2,"46":2,"47":1,"48":1,"49":1,"57":1,"58":1,"59":1,"60":1,"61":2,"62":3,"63":1,"64":3,"65":2,"66":2,"67":1}}],["ids",{"2":{"3":1,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"34":1}}],["identified",{"2":{"25":2}}],["identifiers",{"2":{"57":1}}],["identifier",{"2":{"0":1,"2":1,"25":2,"36":1,"38":1,"39":2,"56":1}}],["identify",{"2":{"0":3,"1":3,"2":1}}],["id",{"0":{"39":1,"47":1},"2":{"0":25,"1":15,"2":13,"6":6,"7":5,"8":4,"9":5,"11":1,"12":1,"13":1,"14":1,"15":7,"17":3,"18":3,"19":3,"22":4,"23":3,"25":3,"33":7,"34":1,"35":3,"36":12,"37":1,"39":1,"40":3,"43":10,"44":2,"45":1,"46":1,"47":1,"52":1,"53":1,"54":6,"55":12,"56":3,"57":1,"59":1,"62":3,"65":3,"67":3,"68":3}}],[">",{"2":{"0":6,"1":3,"2":8,"3":5,"4":1,"5":4}}],["feel",{"2":{"31":2}}],["features",{"2":{"30":1}}],["full",{"2":{"15":1,"17":1,"18":1,"19":1,"20":1,"25":1}}],["function",{"2":{"15":2,"20":1,"24":1,"34":1,"38":1,"39":1,"43":1,"45":1,"47":1,"48":1,"49":1,"52":1,"56":1,"61":1,"62":1,"65":1,"66":1,"67":1}}],["functionality",{"2":{"15":2,"20":1}}],["functions",{"2":{"6":2,"42":1}}],["factor",{"2":{"43":2}}],["far",{"2":{"14":1,"22":2}}],["false",{"2":{"0":9,"1":9,"2":27,"3":3,"5":5,"20":3,"21":5,"40":1,"43":9,"44":2,"49":2,"59":1,"60":3,"62":1,"63":2}}],["frame",{"2":{"62":1,"65":1}}],["francisco",{"0":{"12":1,"17":1},"2":{"12":1,"17":2}}],["free",{"2":{"31":2}}],["from",{"0":{"13":1,"14":1,"17":1,"18":1,"19":1,"37":1,"40":1,"60":1},"1":{"38":1,"39":1},"2":{"0":9,"1":6,"2":4,"3":4,"5":4,"12":1,"13":1,"14":1,"17":2,"18":2,"19":2,"40":2,"48":1,"49":1,"54":1,"56":2,"60":1,"61":1,"64":1,"65":1}}],["float",{"2":{"25":1,"28":6}}],["float64",{"2":{"1":3,"7":1,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"33":1,"35":1,"36":2,"40":1,"43":1,"55":4,"56":1,"62":1,"65":2,"67":1,"68":1}}],["flexibility",{"2":{"8":1}}],["fname",{"2":{"3":11}}],["follow",{"2":{"51":1}}],["follows",{"2":{"33":1,"56":1,"59":1}}],["following",{"2":{"7":2,"8":1,"9":1,"15":1,"17":1,"18":1,"19":1,"23":1,"25":1,"28":1,"33":1,"35":1,"36":2,"40":1,"43":3,"54":6,"55":4,"56":1,"58":1,"62":1,"65":1,"67":1,"68":1}}],["folder",{"2":{"3":1}}],["forms",{"2":{"41":1}}],["format",{"2":{"3":1,"5":4}}],["for",{"0":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"32":1,"35":1,"36":1,"46":1,"57":1,"58":1,"59":1},"1":{"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"47":1,"48":1,"49":1,"58":1,"59":1,"60":1},"2":{"0":4,"1":6,"2":8,"3":1,"4":3,"8":2,"9":1,"15":3,"20":4,"23":1,"25":3,"30":1,"32":1,"33":2,"36":1,"37":1,"40":1,"43":1,"45":2,"47":1,"51":2,"52":1,"53":1,"54":1,"57":4,"59":2,"60":1,"66":1}}],["fill",{"2":{"54":3}}],["filed",{"2":{"52":1,"53":1}}],["file",{"2":{"3":8,"11":1,"12":1,"13":1,"14":1,"22":7,"34":1,"51":1,"52":1,"54":3,"55":2,"56":1,"58":3,"59":1}}],["files",{"0":{"50":1,"51":1,"54":1,"55":1,"56":1},"1":{"51":1,"52":2,"53":2,"54":1,"55":1,"56":1},"2":{"3":4,"5":1,"20":1,"33":1,"34":1,"40":2,"50":1,"51":2,"55":1,"56":3,"58":6,"59":1,"60":3}}],["filesystem",{"2":{"0":1}}],["fix",{"2":{"30":1}}],["find",{"2":{"30":1,"67":1}}],["figure",{"2":{"24":1,"31":1,"45":1,"62":1,"63":1,"65":1}}],["fig",{"2":{"24":4,"62":4,"63":4,"65":4}}],["field",{"2":{"2":2,"28":1}}],["fields",{"2":{"2":3,"25":1,"28":1,"43":2,"44":1}}],["first",{"2":{"1":2,"2":2,"6":1,"38":1,"43":1,"49":1,"59":2}}],["ft",{"2":{"1":6}}],["==",{"2":{"2":1,"42":1,"43":6}}],["=",{"2":{"0":11,"1":16,"2":23,"3":7,"4":1,"5":13,"15":3,"20":2,"21":5,"23":4,"24":7,"33":11,"35":2,"36":4,"43":9,"44":1,"45":3,"48":1,"55":1,"58":2,"59":2,"61":3,"62":8,"63":12,"64":3,"65":9,"67":7,"68":3}}],["at",{"2":{"62":3,"67":2}}],["atlantic",{"2":{"14":3,"22":6,"62":2,"65":1}}],["after",{"2":{"54":1}}],["africa",{"2":{"12":3,"13":3,"14":6,"17":1,"22":24,"34":2}}],["automatically",{"2":{"33":1}}],["australia",{"2":{"12":1,"13":2,"14":4,"22":14,"34":1}}],["aus",{"2":{"12":1,"22":2,"34":1}}],["accessed",{"2":{"30":1}}],["axis",{"2":{"24":1,"62":1,"63":1,"65":1}}],["ax",{"2":{"24":3,"62":5,"63":7,"65":6}}],["above",{"2":{"48":1,"49":1,"56":1,"57":1}}],["abovementioned",{"2":{"35":1}}],["about",{"2":{"15":1,"62":1,"65":1}}],["abstract",{"2":{"25":1,"28":1}}],["abstractstring",{"2":{"0":9,"1":12,"2":5,"3":6,"5":4}}],["able",{"2":{"24":1,"62":1,"65":1}}],["american",{"2":{"14":1,"22":2}}],["america",{"2":{"12":5,"13":6,"14":13,"18":1,"22":48,"23":2,"34":5,"51":2,"54":2}}],["amazon",{"2":{"12":1,"13":1,"22":4,"34":1,"54":1}}],["amz",{"2":{"12":1,"13":1,"22":4,"34":1,"54":1}}],["amp",{"0":{"12":1,"17":1},"2":{"12":1,"17":2}}],["advanced",{"2":{"15":1}}],["adapted",{"0":{"17":1,"18":1,"19":1},"2":{"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"54":1}}],["added",{"0":{"34":1},"2":{"34":2,"59":1}}],["addition",{"2":{"28":1,"34":1}}],["additional",{"2":{"20":1,"54":4}}],["adding",{"0":{"0":1,"33":1,"56":1},"2":{"32":1,"33":1,"36":1,"56":4}}],["addgeoregions",{"2":{"3":1,"56":1}}],["add",{"2":{"0":1,"3":1,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"30":3,"33":4,"36":2,"38":1,"39":1,"52":2,"53":2,"56":2}}],["available",{"2":{"3":1,"5":4,"7":1,"8":1,"20":1,"21":1,"26":3,"57":1}}],["along",{"2":{"65":1}}],["alternatively",{"2":{"34":1}}],["although",{"2":{"30":1}}],["also",{"2":{"20":1,"21":1,"25":1,"28":1,"33":1,"44":1,"49":1,"61":1,"62":1,"64":1,"65":1,"66":1}}],["al",{"0":{"13":1,"14":1,"18":1,"19":1},"2":{"13":1,"14":1,"18":2,"19":2,"54":1}}],["alaska",{"2":{"12":1,"13":1,"22":4,"34":1,"54":1}}],["ala",{"2":{"12":1,"13":1,"22":4,"34":1,"54":1}}],["always",{"2":{"6":1,"21":3,"59":2}}],["allows",{"2":{"9":1,"47":1,"48":1,"49":1,"61":2,"64":1}}],["all",{"2":{"2":6,"3":3,"5":4,"7":2,"8":1,"12":2,"13":2,"14":2,"17":2,"18":2,"19":2,"20":1,"21":2,"25":1,"26":1,"28":1,"40":3,"51":1,"56":1,"57":2,"58":1,"59":1,"60":1}}],["already",{"0":{"45":1,"47":1},"2":{"1":3,"36":1,"38":1,"46":1,"47":1,"58":1}}],["arbitrary",{"2":{"63":2}}],["argument",{"2":{"24":1,"33":1}}],["arguments",{"2":{"0":12,"1":6,"2":15,"3":6,"4":1,"5":4,"20":1}}],["ars",{"2":{"14":1,"22":2}}],["aro",{"2":{"14":1,"22":2}}],["arabian",{"2":{"14":2,"22":4}}],["arp",{"2":{"14":1,"22":2}}],["arctic",{"2":{"13":1,"14":2,"22":6}}],["arc",{"2":{"13":1,"22":2}}],["ar6=true",{"2":{"14":1}}],["ar6=false",{"2":{"13":1}}],["ar6",{"0":{"14":1,"19":1},"2":{"5":4,"14":118,"19":5,"21":1,"22":232,"23":4,"39":1,"47":1,"54":4,"57":1,"62":4,"65":4}}],["area",{"2":{"2":3,"67":1,"68":1}}],["are",{"0":{"42":1,"66":1},"1":{"43":1,"44":1,"67":1,"68":1},"2":{"2":4,"3":1,"6":2,"7":1,"12":2,"13":3,"14":2,"15":1,"16":1,"17":2,"18":3,"19":2,"22":1,"24":3,"26":3,"31":2,"37":1,"42":1,"43":2,"44":3,"54":1,"59":3,"62":3,"63":2,"64":1,"65":2,"66":1,"67":3}}],["against",{"2":{"2":2,"66":1,"67":1}}],["again",{"2":{"1":1}}],["appear",{"2":{"21":2}}],["append",{"2":{"1":1}}],["api",{"0":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1},"2":{"7":1,"8":1,"9":1,"15":2,"20":1,"22":4,"24":1,"33":2,"34":1,"35":1,"36":1,"38":1,"39":1,"43":2,"45":1,"47":1,"48":1,"49":1,"55":1,"56":1,"58":1,"59":1,"60":1,"62":1,"63":1,"65":1,"66":1}}],["assume",{"2":{"57":1}}],["associate",{"2":{"37":1}}],["associated",{"2":{"0":3,"36":3}}],["association",{"2":{"36":1}}],["ask",{"2":{"31":1}}],["aspect",{"2":{"24":2,"62":2,"65":2}}],["asia",{"2":{"12":5,"13":6,"14":5,"19":1,"22":32,"43":1,"45":1,"55":1}}],["as",{"2":{"0":1,"2":12,"3":1,"6":1,"7":2,"8":1,"9":2,"12":1,"13":1,"14":1,"17":1,"18":1,"19":1,"20":1,"30":2,"33":2,"43":1,"44":2,"45":1,"51":1,"52":1,"53":1,"54":2,"56":1,"57":1,"59":1,"61":1,"62":1,"63":2,"64":1,"65":1}}],["a",{"0":{"2":1,"23":1,"24":1,"25":1,"36":1,"37":1,"38":1,"39":1,"40":1,"45":1,"48":1,"49":1,"60":1,"61":1,"62":2,"63":2,"64":1,"65":2,"66":2},"1":{"24":1,"26":1,"27":1,"28":1,"29":1,"38":1,"39":1,"62":1,"63":1,"65":1,"66":1,"67":3,"68":3},"2":{"0":5,"1":11,"2":27,"4":4,"6":1,"8":1,"9":4,"15":4,"16":1,"20":3,"21":2,"23":1,"24":1,"25":13,"27":2,"28":8,"29":2,"30":1,"32":1,"33":2,"36":1,"37":4,"38":2,"39":2,"43":5,"44":3,"45":2,"46":2,"47":1,"49":1,"50":1,"51":2,"52":1,"53":1,"54":6,"55":2,"56":1,"57":5,"59":4,"61":3,"62":8,"63":4,"64":5,"65":8,"66":3,"68":2}}],["angle",{"2":{"28":2}}],["antarctica",{"2":{"13":1,"14":2,"22":6}}],["ant",{"2":{"13":1,"22":2}}],["another",{"2":{"2":1,"36":5,"45":1,"48":1,"49":1,"61":1,"63":1,"66":1}}],["anyway",{"2":{"62":1,"65":1}}],["anymore",{"2":{"37":1}}],["any",{"2":{"0":2,"3":2,"8":1,"31":1,"58":1,"59":1,"63":1,"67":1}}],["an",{"0":{"47":1,"48":1,"49":1},"2":{"0":5,"1":3,"2":6,"7":1,"9":1,"25":1,"31":1,"36":1,"39":1,"46":1,"47":1,"48":1,"49":1,"54":3,"61":1,"62":1,"63":1,"64":1,"65":1}}],["and",{"0":{"0":1,"35":1,"41":1,"51":1},"1":{"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"52":1,"53":1},"2":{"1":1,"2":17,"4":1,"5":1,"6":2,"7":2,"8":5,"9":2,"14":1,"15":2,"20":3,"21":1,"22":5,"24":2,"25":1,"28":1,"30":1,"31":1,"32":1,"34":1,"36":1,"37":1,"38":2,"40":2,"43":5,"44":1,"45":1,"49":1,"51":1,"54":6,"56":1,"57":2,"58":1,"59":2,"60":1,"62":1,"63":4,"65":2,"67":5,"68":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/VPLocalSearchBox.HTQ2YAZV.js b/dev/assets/chunks/VPLocalSearchBox.B_WjacLW.js similarity index 99% rename from dev/assets/chunks/VPLocalSearchBox.HTQ2YAZV.js rename to dev/assets/chunks/VPLocalSearchBox.B_WjacLW.js index 74a727d..b953a24 100644 --- a/dev/assets/chunks/VPLocalSearchBox.HTQ2YAZV.js +++ b/dev/assets/chunks/VPLocalSearchBox.B_WjacLW.js @@ -1,4 +1,4 @@ -var Nt=Object.defineProperty;var Ft=(a,e,t)=>e in a?Nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Re=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ot,p as se,h as pe,aj as Xe,ak as Rt,al as Ct,q as je,am as Mt,d as At,D as ye,an as et,ao as Lt,ap as Dt,s as zt,aq as Pt,v as Ce,P as ue,O as we,ar as jt,as as Vt,W as $t,R as Bt,$ as Wt,o as q,b as Kt,j as S,a0 as Jt,k as D,at as Ut,au as qt,av as Gt,c as Y,n as tt,e as xe,C as st,F as nt,a as de,t as he,aw as Ht,ax as it,ay as Qt,a8 as Yt,ae as Zt,az as Xt,_ as es}from"./framework.CEeYBNx8.js";import{u as ts,d as ss}from"./theme.6nTMTlEW.js";const ns={root:()=>Ot(()=>import("./@localSearchIndexroot.BixCjSid.js"),[])};/*! +var Nt=Object.defineProperty;var Ft=(a,e,t)=>e in a?Nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Re=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ot,p as se,h as pe,aj as Xe,ak as Rt,al as Ct,q as je,am as Mt,d as At,D as ye,an as et,ao as Lt,ap as Dt,s as zt,aq as Pt,v as Ce,P as ue,O as we,ar as jt,as as Vt,W as $t,R as Bt,$ as Wt,o as q,b as Kt,j as S,a0 as Jt,k as D,at as Ut,au as qt,av as Gt,c as Y,n as tt,e as xe,C as st,F as nt,a as de,t as he,aw as Ht,ax as it,ay as Qt,a8 as Yt,ae as Zt,az as Xt,_ as es}from"./framework.CEeYBNx8.js";import{u as ts,d as ss}from"./theme.BetGdEN7.js";const ns={root:()=>Ot(()=>import("./@localSearchIndexroot.DZIpXCFD.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var vt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ie=vt.join(","),mt=typeof Element>"u",ie=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ke=!mt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Ne=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},is=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},gt=function(e,t,s){if(Ne(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ie));return t&&ie.call(e,Ie)&&n.unshift(e),n=n.filter(s),n},bt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Ne(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ie.call(i,Ie);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var v=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),p=!Ne(v,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(v&&p){var b=a(v===!0?i.children:v.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},yt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ne=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||is(e))&&!yt(e)?0:e.tabIndex},rs=function(e,t){var s=ne(e);return s<0&&t&&!yt(e)?0:s},as=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},os=function(e){return wt(e)&&e.type==="hidden"},ls=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},cs=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ie.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var l=e.parentElement,c=ke(e);if(l&&!l.shadowRoot&&n(l)===!0)return rt(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(fs(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return rt(e);return!1},vs=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},gs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=rs(o,i),c=i?a(n.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):s.push({documentOrder:r,tabIndex:l,item:n,isScope:i,content:c})}),s.sort(as).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},bs=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Ve.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ms}):s=gt(e,t.includeContainer,Ve.bind(null,t)),gs(s)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Fe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=gt(e,t.includeContainer,Fe.bind(null,t)),s},re=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ie.call(e,Ie)===!1?!1:Ve(t,e)},ws=vt.concat("iframe").join(","),Me=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ie.call(e,ws)===!1?!1:Fe(t,e)};/*! diff --git a/dev/assets/chunks/theme.6nTMTlEW.js b/dev/assets/chunks/theme.BetGdEN7.js similarity index 99% rename from dev/assets/chunks/theme.6nTMTlEW.js rename to dev/assets/chunks/theme.BetGdEN7.js index 8592b59..bcb883b 100644 --- a/dev/assets/chunks/theme.6nTMTlEW.js +++ b/dev/assets/chunks/theme.BetGdEN7.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.HTQ2YAZV.js","assets/chunks/framework.CEeYBNx8.js"])))=>i.map(i=>d[i]); -import{d as h,o as a,c as l,r as u,n as I,a as O,t as T,b as $,w as f,e as m,T as ve,_ as g,u as Ue,i as Re,f as ze,g as pe,h as y,j as v,k as i,l as G,m as ie,p as N,q as D,s as Z,v as j,x as fe,y as me,z as je,A as Ge,B as K,F as M,C as A,D as Se,E as x,G as k,H as F,I as Ve,J as ee,K as z,L as q,M as Ke,N as Le,O as le,P as Te,Q as Ne,R as te,S as We,U as qe,V as Je,W as we,X as he,Y as Ye,Z as Xe,$ as Qe,a0 as Ze,a1 as Ie,a2 as xe,a3 as et}from"./framework.CEeYBNx8.js";const tt=h({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),l("span",{class:I(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[O(T(e.text),1)])],2))}}),nt={key:0,class:"VPBackdrop"},st=h({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),$(ve,{name:"fade"},{default:f(()=>[e.show?(a(),l("div",nt)):m("",!0)]),_:1}))}}),ot=g(st,[["__scopeId","data-v-b06cdb19"]]),L=Ue;function at(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(Re(o)||o.startsWith("#")||!s.startsWith("http")||!ze(e))return o;const{site:r}=L(),c=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return pe(c)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:r}=L(),c=y(()=>{var d,_;return{label:(d=e.value.locales[t.value])==null?void 0:d.label,link:((_=e.value.locales[t.value])==null?void 0:_.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([d,_])=>c.value.label===_.label?[]:{text:_.label,link:rt(_.link||(d==="root"?"/":`/${d}/`),s.value.i18nRouting!==!1&&o,n.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:c}}function rt(o,e,t,n){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut={class:"quote"},dt={class:"action"},vt=["href","aria-label"],pt=h({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=Y();return(n,s)=>{var r,c,p,d,_;return a(),l("div",it,[v("p",lt,T(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),v("h1",ct,T(((c=i(e).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),s[0]||(s[0]=v("div",{class:"divider"},null,-1)),v("blockquote",ut,T(((p=i(e).notFound)==null?void 0:p.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",dt,[v("a",{class:"link",href:i(pe)(i(t).link),"aria-label":((d=i(e).notFound)==null?void 0:d.linkLabel)??"go to home"},T(((_=i(e).notFound)==null?void 0:_.linkText)??"Take me home"),9,vt)])])}}}),ft=g(pt,[["__scopeId","data-v-951cab6c"]]);function Me(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((s,r)=>r.split("/").length-s.split("/").length).find(s=>e.startsWith(ce(s))),n=t?o[t]:[];return Array.isArray(n)?X(n):X(n.items,n.base)}function mt(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function ht(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):G(o,e.link)?!0:e.items?ue(o,e.items):!1}function X(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=X(n.items,s)),n})}function U(){const{frontmatter:o,page:e,theme:t}=L(),n=ie("(min-width: 960px)"),s=N(!1),r=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Me(C,w):[]}),c=N(r.value);D(r,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(c.value=r.value)});const p=y(()=>o.value.sidebar!==!1&&c.value.length>0&&o.value.layout!=="home"),d=y(()=>_?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),_=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=y(()=>p.value&&n.value),b=y(()=>p.value?mt(c.value):[]);function P(){s.value=!0}function S(){s.value=!1}function E(){s.value?S():P()}return{isOpen:s,sidebar:c,sidebarGroups:b,hasSidebar:p,hasAside:_,leftAside:d,isSidebarEnabled:V,open:P,close:S,toggle:E}}function _t(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",n)}),fe(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e,hash:t}=L(),n=N(!1),s=y(()=>o.value.collapsed!=null),r=y(()=>!!o.value.link),c=N(!1),p=()=>{c.value=G(e.value.relativePath,o.value.link)};D([e,o,t],p),j(p);const d=y(()=>c.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),_=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{n.value=!!(s.value&&o.value.collapsed)}),me(()=>{(c.value||d.value)&&(n.value=!1)});function V(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:r,isActiveLink:c,hasActiveLink:d,hasChildren:_,toggle:V}}function kt(){const{hasSidebar:o}=U(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Ee(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:gt(t),link:"#"+t.id,level:n}});return $t(e,o)}function gt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function $t(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(c=>c.level>=n&&c.level<=s),de.length=0;for(const{element:c,link:p}of o)de.push({element:c,link:p});const r=[];e:for(let c=0;c=0;d--){const _=o[d];if(_.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),je(()=>{c(location.hash)}),fe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const p=window.scrollY,d=window.innerHeight,_=document.body.offsetHeight,V=Math.abs(p+d-_)<1,b=de.map(({element:S,link:E})=>({link:E,top:Pt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,E)=>S.top-E.top);if(!b.length){c(null);return}if(p<1){c(null);return}if(V){c(b[b.length-1].link);return}let P=null;for(const{link:S,top:E}of b){if(E>p+Ge()+4)break;P=S}c(P)}function c(p){s&&s.classList.remove("active"),p==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const d=s;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Pt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const St=["href","title"],Vt=h({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=K("VPDocOutlineItem",!0);return a(),l("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(M,null,A(t.headers,({children:r,link:c,title:p})=>(a(),l("li",null,[v("a",{class:"outline-link",href:c,onClick:e,title:p},T(p),9,St),r!=null&&r.length?(a(),$(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),Ce=g(Vt,[["__scopeId","data-v-3f927ebe"]]),Lt={class:"content"},Tt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Nt=h({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),n=Se([]);x(()=>{n.value=be(e.value.outline??t.value.outline)});const s=N(),r=N();return yt(s,r),(c,p)=>(a(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[v("div",Lt,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",Tt,T(i(Ee)(i(t))),1),k(Ce,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),wt=g(Nt,[["__scopeId","data-v-b38bf2ff"]]),It={class:"VPDocAsideCarbonAds"},Mt=h({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(a(),l("div",It,[k(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Et={class:"VPDocAside"},Ct=h({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,n)=>(a(),l("div",Et,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),k(wt),u(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=v("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),$(Mt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),At=g(Ct,[["__scopeId","data-v-6d7b3c46"]]);function Bt(){const{theme:o,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Ht(){const{page:o,theme:e,frontmatter:t}=L();return y(()=>{var _,V,b,P,S,E,C,w;const n=Me(e.value.sidebar,o.value.relativePath),s=ht(n),r=Ot(s,B=>B.link.replace(/[?#].*$/,"")),c=r.findIndex(B=>G(o.value.relativePath,B.link)),p=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,d=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:p?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=r[c-1])==null?void 0:b.docFooterText)??((P=r[c-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=r[c-1])==null?void 0:S.link)},next:d?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((E=r[c+1])==null?void 0:E.docFooterText)??((C=r[c+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=r[c+1])==null?void 0:w.link)}}})}function Ot(o,e){const t=new Set;return o.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const H=h({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),n=y(()=>e.href&&Ve.test(e.href)||e.target==="_blank");return(s,r)=>(a(),$(F(t.value),{class:I(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?i(_e)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:f(()=>[u(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Dt={class:"VPLastUpdated"},Ft=["datetime"],Ut=h({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=L(),s=y(()=>new Date(t.value.lastUpdated)),r=y(()=>s.value.toISOString()),c=N("");return j(()=>{Z(()=>{var p,d,_;c.value=new Intl.DateTimeFormat((d=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&d.forceLocale?n.value:void 0,((_=e.value.lastUpdated)==null?void 0:_.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(p,d)=>{var _;return a(),l("p",Dt,[O(T(((_=i(e).lastUpdated)==null?void 0:_.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:r.value},T(c.value),9,Ft)])}}}),Rt=g(Ut,[["__scopeId","data-v-475f71b8"]]),zt={key:0,class:"VPDocFooter"},jt={key:0,class:"edit-info"},Gt={key:0,class:"edit-link"},Kt={key:1,class:"last-updated"},Wt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},qt={class:"pager"},Jt=["innerHTML"],Yt=["innerHTML"],Xt={class:"pager"},Qt=["innerHTML"],Zt=["innerHTML"],xt=h({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=L(),s=Bt(),r=Ht(),c=y(()=>e.value.editLink&&n.value.editLink!==!1),p=y(()=>t.value.lastUpdated),d=y(()=>c.value||p.value||r.value.prev||r.value.next);return(_,V)=>{var b,P,S,E;return d.value?(a(),l("footer",zt,[u(_.$slots,"doc-footer-before",{},void 0,!0),c.value||p.value?(a(),l("div",jt,[c.value?(a(),l("div",Gt,[k(H,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:f(()=>[V[0]||(V[0]=v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),O(" "+T(i(s).text),1)]),_:1},8,["href"])])):m("",!0),p.value?(a(),l("div",Kt,[k(Rt)])):m("",!0)])):m("",!0),(b=i(r).prev)!=null&&b.link||(P=i(r).next)!=null&&P.link?(a(),l("nav",Wt,[V[1]||(V[1]=v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),v("div",qt,[(S=i(r).prev)!=null&&S.link?(a(),$(H,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,Jt),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,Yt)]}),_:1},8,["href"])):m("",!0)]),v("div",Xt,[(E=i(r).next)!=null&&E.link?(a(),$(H,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,Qt),v("span",{class:"title",innerHTML:i(r).next.text},null,8,Zt)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),en=g(xt,[["__scopeId","data-v-4f9813fa"]]),tn={class:"container"},nn={class:"aside-container"},sn={class:"aside-content"},on={class:"content"},an={class:"content-container"},rn={class:"main"},ln=h({__name:"VPDoc",setup(o){const{theme:e}=L(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:r}=U(),c=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,d)=>{const _=K("Content");return a(),l("div",{class:I(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[u(p.$slots,"doc-top",{},void 0,!0),v("div",tn,[i(s)?(a(),l("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[d[0]||(d[0]=v("div",{class:"aside-curtain"},null,-1)),v("div",nn,[v("div",sn,[k(At,null,{"aside-top":f(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),v("div",on,[v("div",an,[u(p.$slots,"doc-before",{},void 0,!0),v("main",rn,[k(_,{class:I(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(en,null,{"doc-footer-before":f(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),cn=g(ln,[["__scopeId","data-v-83890dd9"]]),un=h({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Ve.test(e.href)),n=y(()=>e.tag||e.href?"a":"button");return(s,r)=>(a(),$(F(n.value),{class:I(["VPButton",[s.size,s.theme]]),href:s.href?i(_e)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[O(T(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),dn=g(un,[["__scopeId","data-v-14206e74"]]),vn=["src","alt"],pn=h({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=K("VPImage",!0);return e.image?(a(),l(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",z({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,vn)):(a(),l(M,{key:1},[k(n,z({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(n,z({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),Q=g(pn,[["__scopeId","data-v-35a7d0b8"]]),fn={class:"container"},mn={class:"main"},hn={key:0,class:"name"},_n=["innerHTML"],bn=["innerHTML"],kn=["innerHTML"],gn={key:0,class:"actions"},$n={key:0,class:"image"},yn={class:"image-container"},Pn=h({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,n)=>(a(),l("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[v("div",fn,[v("div",mn,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",hn,[v("span",{innerHTML:t.name,class:"clip"},null,8,_n)])):m("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,bn)):m("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,kn)):m("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",gn,[(a(!0),l(M,null,A(t.actions,s=>(a(),l("div",{key:s.link,class:"action"},[k(dn,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),l("div",$n,[v("div",yn,[n[0]||(n[0]=v("div",{class:"image-bg"},null,-1)),u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),Sn=g(Pn,[["__scopeId","data-v-955009fc"]]),Vn=h({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,n)=>i(e).hero?(a(),$(Sn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Ln={class:"box"},Tn={key:0,class:"icon"},Nn=["innerHTML"],wn=["innerHTML"],In=["innerHTML"],Mn={key:4,class:"link-text"},En={class:"link-text-value"},Cn=h({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),$(H,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[v("article",Ln,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",Tn,[k(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Nn)):m("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,wn),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,In)):m("",!0),e.linkText?(a(),l("div",Mn,[v("p",En,[O(T(e.linkText)+" ",1),t[0]||(t[0]=v("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),An=g(Cn,[["__scopeId","data-v-f5e9645b"]]),Bn={key:0,class:"VPFeatures"},Hn={class:"container"},On={class:"items"},Dn=h({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(a(),l("div",Bn,[v("div",Hn,[v("div",On,[(a(!0),l(M,null,A(n.features,r=>(a(),l("div",{key:r.title,class:I(["item",[t.value]])},[k(An,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Fn=g(Dn,[["__scopeId","data-v-d0a190d7"]]),Un=h({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,n)=>i(e).features?(a(),$(Fn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Rn=h({__name:"VPHomeContent",setup(o){const{width:e}=Ke({initialWidth:0,includeScrollbar:!1});return(t,n)=>(a(),l("div",{class:"vp-doc container",style:Le(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),zn=g(Rn,[["__scopeId","data-v-7a48a447"]]),jn={class:"VPHome"},Gn=h({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,n)=>{const s=K("Content");return a(),l("div",jn,[u(t.$slots,"home-hero-before",{},void 0,!0),k(Vn,null,{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),k(Un),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),$(zn,{key:0},{default:f(()=>[k(s)]),_:1})):(a(),$(s,{key:1}))])}}}),Kn=g(Gn,[["__scopeId","data-v-cbb6ec48"]]),Wn={},qn={class:"VPPage"};function Jn(o,e){const t=K("Content");return a(),l("div",qn,[u(o.$slots,"page-top"),k(t),u(o.$slots,"page-bottom")])}const Yn=g(Wn,[["render",Jn]]),Xn=h({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:n}=U();return(s,r)=>(a(),l("div",{class:I(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(s.$slots,"not-found",{key:0},()=>[k(ft)],!0):i(t).layout==="page"?(a(),$(Yn,{key:1},{"page-top":f(()=>[u(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),$(Kn,{key:2},{"home-hero-before":f(()=>[u(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),$(F(i(t).layout),{key:3})):(a(),$(cn,{key:4},{"doc-top":f(()=>[u(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[u(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[u(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[u(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[u(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Qn=g(Xn,[["__scopeId","data-v-91765379"]]),Zn={class:"container"},xn=["innerHTML"],es=["innerHTML"],ts=h({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=U();return(s,r)=>i(e).footer&&i(t).footer!==!1?(a(),l("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(n)}])},[v("div",Zn,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,xn)):m("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,es)):m("",!0)])],2)):m("",!0)}}),ns=g(ts,[["__scopeId","data-v-c970a860"]]);function ss(){const{theme:o,frontmatter:e}=L(),t=Se([]),n=y(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const os={class:"menu-text"},as={class:"header"},rs={class:"outline"},is=h({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),n=N(!1),s=N(0),r=N(),c=N();function p(b){var P;(P=r.value)!=null&&P.contains(b.target)||(n.value=!1)}D(n,b=>{if(b){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),le("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function d(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function _(b){b.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Te(()=>{n.value=!1}))}function V(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[b.headers.length>0?(a(),l("button",{key:0,onClick:d,class:I({open:n.value})},[v("span",os,T(i(Ee)(i(t))),1),P[0]||(P[0]=v("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),l("button",{key:1,onClick:V},T(i(t).returnToTopLabel||"Return to top"),1)),k(ve,{name:"flyout"},{default:f(()=>[n.value?(a(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:_},[v("div",as,[v("a",{class:"top-link",href:"#",onClick:V},T(i(t).returnToTopLabel||"Return to top"),1)]),v("div",rs,[k(Ce,{headers:b.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),ls=g(is,[["__scopeId","data-v-bc9dc845"]]),cs={class:"container"},us=["aria-expanded"],ds={class:"menu-text"},vs=h({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=U(),{headers:s}=ss(),{y:r}=Ne(),c=N(0);j(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=be(t.value.outline??e.value.outline)});const p=y(()=>s.value.length===0),d=y(()=>p.value&&!n.value),_=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:p.value,fixed:d.value}));return(V,b)=>i(t).layout!=="home"&&(!d.value||i(r)>=c.value)?(a(),l("div",{key:0,class:I(_.value)},[v("div",cs,[i(n)?(a(),l("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=v("span",{class:"vpi-align-left menu-icon"},null,-1)),v("span",ds,T(i(e).sidebarMenuLabel||"Menu"),1)],8,us)):m("",!0),k(ls,{headers:i(s),navHeight:c.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),ps=g(vs,[["__scopeId","data-v-070ab83d"]]);function fs(){const o=N(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ee();return D(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const ms={},hs={class:"VPSwitch",type:"button",role:"switch"},_s={class:"check"},bs={key:0,class:"icon"};function ks(o,e){return a(),l("button",hs,[v("span",_s,[o.$slots.default?(a(),l("span",bs,[u(o.$slots,"default",{},void 0,!0)])):m("",!0)])])}const gs=g(ms,[["render",ks],["__scopeId","data-v-4a1c76db"]]),$s=h({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),n=q("toggle-appearance",()=>{e.value=!e.value}),s=N("");return me(()=>{s.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,c)=>(a(),$(gs,{title:s.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:f(()=>c[0]||(c[0]=[v("span",{class:"vpi-sun sun"},null,-1),v("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=g($s,[["__scopeId","data-v-e40a8bb6"]]),ys={key:0,class:"VPNavBarAppearance"},Ps=h({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),l("div",ys,[k(ke)])):m("",!0)}}),Ss=g(Ps,[["__scopeId","data-v-af096f4a"]]),ge=N();let Ae=!1,re=0;function Vs(o){const e=N(!1);if(te){!Ae&&Ls(),re++;const t=D(ge,n=>{var s,r,c;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(c=o.onBlur)==null||c.call(o))});fe(()=>{t(),re--,re||Ts()})}return We(e)}function Ls(){document.addEventListener("focusin",Be),Ae=!0,ge.value=document.activeElement}function Ts(){document.removeEventListener("focusin",Be)}function Be(){ge.value=document.activeElement}const Ns={class:"VPMenuLink"},ws=h({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(a(),l("div",Ns,[k(H,{class:I({active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[O(T(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=g(ws,[["__scopeId","data-v-8b74d055"]]),Is={class:"VPMenuGroup"},Ms={key:0,class:"title"},Es=h({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),l("div",Is,[e.text?(a(),l("p",Ms,T(e.text),1)):m("",!0),(a(!0),l(M,null,A(e.items,n=>(a(),l(M,null,["link"in n?(a(),$(ne,{key:0,item:n},null,8,["item"])):m("",!0)],64))),256))]))}}),Cs=g(Es,[["__scopeId","data-v-48c802d0"]]),As={class:"VPMenu"},Bs={key:0,class:"items"},Hs=h({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),l("div",As,[e.items?(a(),l("div",Bs,[(a(!0),l(M,null,A(e.items,n=>(a(),l(M,{key:JSON.stringify(n)},["link"in n?(a(),$(ne,{key:0,item:n},null,8,["item"])):"component"in n?(a(),$(F(n.component),z({key:1,ref_for:!0},n.props),null,16)):(a(),$(Cs,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),Os=g(Hs,[["__scopeId","data-v-7dd3104a"]]),Ds=["aria-expanded","aria-label"],Fs={key:0,class:"text"},Us=["innerHTML"],Rs={key:1,class:"vpi-more-horizontal icon"},zs={class:"menu"},js=h({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=N(!1),t=N();Vs({el:t,onBlur:n});function n(){e.value=!1}return(s,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",Fs,[s.icon?(a(),l("span",{key:0,class:I([s.icon,"option-icon"])},null,2)):m("",!0),s.button?(a(),l("span",{key:1,innerHTML:s.button},null,8,Us)):m("",!0),r[3]||(r[3]=v("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),l("span",Rs))],8,Ds),v("div",zs,[k(Os,{items:s.items},{default:f(()=>[u(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=g(js,[["__scopeId","data-v-e5380155"]]),Gs=["href","aria-label","innerHTML"],Ks=h({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(a(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Gs))}}),Ws=g(Ks,[["__scopeId","data-v-717b8b75"]]),qs={class:"VPSocialLinks"},Js=h({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),l("div",qs,[(a(!0),l(M,null,A(e.links,({link:n,icon:s,ariaLabel:r})=>(a(),$(Ws,{key:n,icon:s,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),se=g(Js,[["__scopeId","data-v-ee7a9424"]]),Ys={key:0,class:"group translations"},Xs={class:"trans-title"},Qs={key:1,class:"group"},Zs={class:"item appearance"},xs={class:"label"},eo={class:"appearance-action"},to={key:2,class:"group"},no={class:"item social-links"},so=h({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:n,currentLang:s}=Y({correspondingLink:!0}),r=y(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(c,p)=>r.value?(a(),$($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(n).length&&i(s).label?(a(),l("div",Ys,[v("p",Xs,T(i(s).label),1),(a(!0),l(M,null,A(i(n),d=>(a(),$(ne,{key:d.link,item:d},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),l("div",Qs,[v("div",Zs,[v("p",xs,T(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",eo,[k(ke)])])])):m("",!0),i(t).socialLinks?(a(),l("div",to,[v("div",no,[k(se,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),oo=g(so,[["__scopeId","data-v-925effce"]]),ao=["aria-expanded"],ro=h({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),l("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)]),10,ao))}}),io=g(ro,[["__scopeId","data-v-5dea55bf"]]),lo=["innerHTML"],co=h({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(a(),$(H,{class:I({VPNavBarMenuLink:!0,active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,lo)]),_:1},8,["class","href","noIcon","target","rel"]))}}),uo=g(co,[["__scopeId","data-v-ed5ac1f6"]]),vo=h({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),n=r=>"component"in r?!1:"link"in r?G(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),s=y(()=>n(e.item));return(r,c)=>(a(),$($e,{class:I({VPNavBarMenuGroup:!0,active:i(G)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||s.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),po={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},fo=h({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,n)=>i(e).nav?(a(),l("nav",po,[n[0]||(n[0]=v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),l(M,null,A(i(e).nav,s=>(a(),l(M,{key:JSON.stringify(s)},["link"in s?(a(),$(uo,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(F(s.component),z({key:1,ref_for:!0},s.props),null,16)):(a(),$(vo,{key:2,item:s},null,8,["item"]))],64))),128))])):m("",!0)}}),mo=g(fo,[["__scopeId","data-v-e6d46098"]]);function ho(o){const{localeIndex:e,theme:t}=L();function n(s){var E,C,w;const r=s.split("."),c=(E=t.value.search)==null?void 0:E.options,p=c&&typeof c=="object",d=p&&((w=(C=c.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,_=p&&c.translations||null;let V=d,b=_,P=o;const S=r.pop();for(const B of r){let R=null;const W=P==null?void 0:P[B];W&&(R=P=W);const oe=b==null?void 0:b[B];oe&&(R=b=oe);const ae=V==null?void 0:V[B];ae&&(R=V=ae),W||(P=R),oe||(b=R),ae||(V=R)}return(V==null?void 0:V[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return n}const _o=["aria-label"],bo={class:"DocSearch-Button-Container"},ko={class:"DocSearch-Button-Placeholder"},ye=h({__name:"VPNavBarSearchButton",setup(o){const t=ho({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",bo,[s[0]||(s[0]=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),v("span",ko,T(i(t)("button.buttonText")),1)]),s[1]||(s[1]=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,_o))}}),go={class:"VPNavBarSearch"},$o={id:"local-search"},yo={key:1,id:"docsearch"},Po=h({__name:"VPNavBarSearch",setup(o){const e=qe(()=>Je(()=>import("./VPLocalSearchBox.HTQ2YAZV.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=L(),s=N(!1),r=N(!1);j(()=>{});function c(){s.value||(s.value=!0,setTimeout(p,16))}function p(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||p()},16)}function d(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const _=N(!1);le("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),_.value=!0)}),le("/",b=>{d(b)||(b.preventDefault(),_.value=!0)});const V="local";return(b,P)=>{var S;return a(),l("div",go,[i(V)==="local"?(a(),l(M,{key:0},[_.value?(a(),$(i(e),{key:0,onClose:P[0]||(P[0]=E=>_.value=!1)})):m("",!0),v("div",$o,[k(ye,{onClick:P[1]||(P[1]=E=>_.value=!0)})])],64)):i(V)==="algolia"?(a(),l(M,{key:1},[s.value?(a(),$(i(t),{key:0,algolia:((S=i(n).search)==null?void 0:S.options)??i(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=E=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(a(),l("div",yo,[k(ye,{onClick:c})]))],64)):m("",!0)])}}}),So=h({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>i(e).socialLinks?(a(),$(se,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Vo=g(So,[["__scopeId","data-v-164c457f"]]),Lo=["href","rel","target"],To={key:1},No={key:2},wo=h({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:n}=U(),{currentLang:s}=Y(),r=y(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),c=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),p=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,_)=>(a(),l("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(n)}])},[v("a",{class:"title",href:r.value??i(_e)(i(s).link),rel:c.value,target:p.value},[u(d.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),$(Q,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):m("",!0),i(t).siteTitle?(a(),l("span",To,T(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),l("span",No,T(i(e).title),1)):m("",!0),u(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Lo)],2))}}),Io=g(wo,[["__scopeId","data-v-28a961f9"]]),Mo={class:"items"},Eo={class:"title"},Co=h({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:n}=Y({correspondingLink:!0});return(s,r)=>i(t).length&&i(n).label?(a(),$($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[v("div",Mo,[v("p",Eo,T(i(n).label),1),(a(!0),l(M,null,A(i(t),c=>(a(),$(ne,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Ao=g(Co,[["__scopeId","data-v-c80d9ad0"]]),Bo={class:"wrapper"},Ho={class:"container"},Oo={class:"title"},Do={class:"content"},Fo={class:"content-body"},Uo=h({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Ne(),{hasSidebar:n}=U(),{frontmatter:s}=L(),r=N({});return me(()=>{r.value={"has-sidebar":n.value,home:s.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(c,p)=>(a(),l("div",{class:I(["VPNavBar",r.value])},[v("div",Bo,[v("div",Ho,[v("div",Oo,[k(Io,null,{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",Do,[v("div",Fo,[u(c.$slots,"nav-bar-content-before",{},void 0,!0),k(Po,{class:"search"}),k(mo,{class:"menu"}),k(Ao,{class:"translations"}),k(Ss,{class:"appearance"}),k(Vo,{class:"social-links"}),k(oo,{class:"extra"}),u(c.$slots,"nav-bar-content-after",{},void 0,!0),k(io,{class:"hamburger",active:c.isScreenOpen,onClick:p[0]||(p[0]=d=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),p[1]||(p[1]=v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1))],2))}}),Ro=g(Uo,[["__scopeId","data-v-822684d1"]]),zo={key:0,class:"VPNavScreenAppearance"},jo={class:"text"},Go=h({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),l("div",zo,[v("p",jo,T(i(t).darkModeSwitchLabel||"Appearance"),1),k(ke)])):m("",!0)}}),Ko=g(Go,[["__scopeId","data-v-ffb44008"]]),Wo=h({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,n)=>(a(),$(H,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),qo=g(Wo,[["__scopeId","data-v-27d04aeb"]]),Jo=h({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,n)=>(a(),$(H,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:f(()=>[O(T(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),He=g(Jo,[["__scopeId","data-v-7179dbb7"]]),Yo={class:"VPNavScreenMenuGroupSection"},Xo={key:0,class:"title"},Qo=h({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),l("div",Yo,[e.text?(a(),l("p",Xo,T(e.text),1)):m("",!0),(a(!0),l(M,null,A(e.items,n=>(a(),$(He,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Zo=g(Qo,[["__scopeId","data-v-4b8941ac"]]),xo=["aria-controls","aria-expanded"],ea=["innerHTML"],ta=["id"],na={key:0,class:"item"},sa={key:1,class:"item"},oa={key:2,class:"group"},aa=h({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=N(!1),n=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(r,c)=>(a(),l("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[v("span",{class:"button-text",innerHTML:r.text},null,8,ea),c[0]||(c[0]=v("span",{class:"vpi-plus button-icon"},null,-1))],8,xo),v("div",{id:n.value,class:"items"},[(a(!0),l(M,null,A(r.items,p=>(a(),l(M,{key:JSON.stringify(p)},["link"in p?(a(),l("div",na,[k(He,{item:p},null,8,["item"])])):"component"in p?(a(),l("div",sa,[(a(),$(F(p.component),z({ref_for:!0},p.props,{"screen-menu":""}),null,16))])):(a(),l("div",oa,[k(Zo,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,ta)],2))}}),ra=g(aa,[["__scopeId","data-v-875057a5"]]),ia={key:0,class:"VPNavScreenMenu"},la=h({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,n)=>i(e).nav?(a(),l("nav",ia,[(a(!0),l(M,null,A(i(e).nav,s=>(a(),l(M,{key:JSON.stringify(s)},["link"in s?(a(),$(qo,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(F(s.component),z({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(a(),$(ra,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),ca=h({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>i(e).socialLinks?(a(),$(se,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),ua={class:"list"},da=h({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),n=N(!1);function s(){n.value=!n.value}return(r,c)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:I(["VPNavScreenTranslations",{open:n.value}])},[v("button",{class:"title",onClick:s},[c[0]||(c[0]=v("span",{class:"vpi-languages icon lang"},null,-1)),O(" "+T(i(t).label)+" ",1),c[1]||(c[1]=v("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),v("ul",ua,[(a(!0),l(M,null,A(i(e),p=>(a(),l("li",{key:p.link,class:"item"},[k(H,{class:"link",href:p.link},{default:f(()=>[O(T(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),va=g(da,[["__scopeId","data-v-362991c2"]]),pa={class:"container"},fa=h({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=N(null),t=we(te?document.body:null);return(n,s)=>(a(),$(ve,{name:"fade",onEnter:s[0]||(s[0]=r=>t.value=!0),onAfterLeave:s[1]||(s[1]=r=>t.value=!1)},{default:f(()=>[n.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",pa,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),k(la,{class:"menu"}),k(va,{class:"translations"}),k(Ko,{class:"appearance"}),k(ca,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),ma=g(fa,[["__scopeId","data-v-833aabba"]]),ha={key:0,class:"VPNav"},_a=h({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=fs(),{frontmatter:s}=L(),r=y(()=>s.value.navbar!==!1);return he("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,p)=>r.value?(a(),l("header",ha,[k(Ro,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(ma,{open:i(e)},{"nav-screen-content-before":f(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),ba=g(_a,[["__scopeId","data-v-f1e365da"]]),ka=["role","tabindex"],ga={key:1,class:"items"},$a=h({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:p,toggle:d}=bt(y(()=>e.item)),_=y(()=>p.value?"section":"div"),V=y(()=>s.value?"a":"div"),b=y(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>s.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":r.value},{"has-active":c.value}]);function E(w){"key"in w&&w.key!=="Enter"||!e.item.link&&d()}function C(){e.item.link&&d()}return(w,B)=>{const R=K("VPSidebarItem",!0);return a(),$(F(_.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),l("div",z({key:0,class:"item",role:P.value},Ye(w.item.items?{click:E,keydown:E}:{},!0),{tabindex:w.item.items&&0}),[B[1]||(B[1]=v("div",{class:"indicator"},null,-1)),w.item.link?(a(),$(H,{key:0,tag:V.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(F(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(F(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[v("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):m("",!0)],16,ka)):m("",!0),w.item.items&&w.item.items.length?(a(),l("div",ga,[w.depth<5?(a(!0),l(M,{key:0},A(w.item.items,W=>(a(),$(R,{key:W.text,item:W,depth:w.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),ya=g($a,[["__scopeId","data-v-196b2e5f"]]),Pa=h({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=N(!0);let t=null;return j(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Qe(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,s)=>(a(!0),l(M,null,A(n.items,r=>(a(),l("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[k(ya,{item:r,depth:0},null,8,["item"])],2))),128))}}),Sa=g(Pa,[["__scopeId","data-v-9e426adc"]]),Va={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},La=h({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),n=o,s=N(null),r=we(te?document.body:null);D([n,s],()=>{var p;n.open?(r.value=!0,(p=s.value)==null||p.focus()):r.value=!1},{immediate:!0,flush:"post"});const c=N(0);return D(e,()=>{c.value+=1},{deep:!0}),(p,d)=>i(t)?(a(),l("aside",{key:0,class:I(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:s,onClick:d[0]||(d[0]=Ze(()=>{},["stop"]))},[d[2]||(d[2]=v("div",{class:"curtain"},null,-1)),v("nav",Va,[d[1]||(d[1]=v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(Sa,{items:i(e),key:c.value},null,8,["items"])),u(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Ta=g(La,[["__scopeId","data-v-18756405"]]),Na=h({__name:"VPSkipLink",setup(o){const e=ee(),t=N();D(()=>e.path,()=>t.value.focus());function n({target:s}){const r=document.getElementById(decodeURIComponent(s.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),l(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),wa=g(Na,[["__scopeId","data-v-c3508ec8"]]),Ia=h({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=U(),s=ee();D(()=>s.path,n),_t(e,n);const{frontmatter:r}=L(),c=Ie(),p=y(()=>!!c["home-hero-image"]);return he("hero-image-slot-exists",p),(d,_)=>{const V=K("Content");return i(r).layout!==!1?(a(),l("div",{key:0,class:I(["Layout",i(r).pageClass])},[u(d.$slots,"layout-top",{},void 0,!0),k(wa),k(ot,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),k(ba,null,{"nav-bar-title-before":f(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ps,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),k(Ta,{open:i(e)},{"sidebar-nav-before":f(()=>[u(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[u(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(Qn,null,{"page-top":f(()=>[u(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[u(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[u(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[u(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(ns),u(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(V,{key:1}))}}}),Ma=g(Ia,[["__scopeId","data-v-a9a9e638"]]),Ea={},Ca={class:"VPTeamPage"};function Aa(o,e){return a(),l("div",Ca,[u(o.$slots,"default")])}const Lr=g(Ea,[["render",Aa],["__scopeId","data-v-c2f8e101"]]),Ba={},Ha={class:"VPTeamPageTitle"},Oa={key:0,class:"title"},Da={key:1,class:"lead"};function Fa(o,e){return a(),l("div",Ha,[o.$slots.title?(a(),l("h1",Oa,[u(o.$slots,"title",{},void 0,!0)])):m("",!0),o.$slots.lead?(a(),l("p",Da,[u(o.$slots,"lead",{},void 0,!0)])):m("",!0)])}const Tr=g(Ba,[["render",Fa],["__scopeId","data-v-e277e15c"]]),Ua={},Ra={class:"VPTeamPageSection"},za={class:"title"},ja={key:0,class:"title-text"},Ga={key:0,class:"lead"},Ka={key:1,class:"members"};function Wa(o,e){return a(),l("section",Ra,[v("div",za,[e[0]||(e[0]=v("div",{class:"title-line"},null,-1)),o.$slots.title?(a(),l("h2",ja,[u(o.$slots,"title",{},void 0,!0)])):m("",!0)]),o.$slots.lead?(a(),l("p",Ga,[u(o.$slots,"lead",{},void 0,!0)])):m("",!0),o.$slots.members?(a(),l("div",Ka,[u(o.$slots,"members",{},void 0,!0)])):m("",!0)])}const Nr=g(Ua,[["render",Wa],["__scopeId","data-v-d43bc49d"]]),qa={class:"profile"},Ja={class:"avatar"},Ya=["src","alt"],Xa={class:"data"},Qa={class:"name"},Za={key:0,class:"affiliation"},xa={key:0,class:"title"},er={key:1,class:"at"},tr=["innerHTML"],nr={key:2,class:"links"},sr={key:0,class:"sp"},or=h({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(o){return(e,t)=>(a(),l("article",{class:I(["VPTeamMembersItem",[e.size]])},[v("div",qa,[v("figure",Ja,[v("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,Ya)]),v("div",Xa,[v("h1",Qa,T(e.member.name),1),e.member.title||e.member.org?(a(),l("p",Za,[e.member.title?(a(),l("span",xa,T(e.member.title),1)):m("",!0),e.member.title&&e.member.org?(a(),l("span",er," @ ")):m("",!0),e.member.org?(a(),$(H,{key:2,class:I(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:f(()=>[O(T(e.member.org),1)]),_:1},8,["class","href"])):m("",!0)])):m("",!0),e.member.desc?(a(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,tr)):m("",!0),e.member.links?(a(),l("div",nr,[k(se,{links:e.member.links},null,8,["links"])])):m("",!0)])]),e.member.sponsor?(a(),l("div",sr,[k(H,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:f(()=>[t[0]||(t[0]=v("span",{class:"vpi-heart sp-icon"},null,-1)),O(" "+T(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):m("",!0)],2))}}),ar=g(or,[["__scopeId","data-v-f9987cb6"]]),rr={class:"container"},ir=h({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(o){const e=o,t=y(()=>[e.size,`count-${e.members.length}`]);return(n,s)=>(a(),l("div",{class:I(["VPTeamMembers",t.value])},[v("div",rr,[(a(!0),l(M,null,A(n.members,r=>(a(),l("div",{key:r.name,class:"item"},[k(ar,{size:n.size,member:r},null,8,["size","member"])]))),128))])],2))}}),wr=g(ir,[["__scopeId","data-v-fba19bad"]]),lr={Layout:Ma,enhanceApp:({app:o})=>{o.component("Badge",tt)}},cr=o=>{if(typeof document>"u")return{stabilizeScrollPosition:s=>async(...r)=>s(...r)};const e=document.documentElement;return{stabilizeScrollPosition:n=>async(...s)=>{const r=n(...s),c=o.value;if(!c)return r;const p=c.offsetTop-e.scrollTop;return await Te(),e.scrollTop=c.offsetTop-p,r}}},Oe="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,De="vitepress:tabsSharedState",ur=()=>{const o=J==null?void 0:J.getItem(De);if(o)try{return JSON.parse(o)}catch{}return{}},dr=o=>{J&&J.setItem(De,JSON.stringify(o))},vr=o=>{const e=xe({});D(()=>e.content,(t,n)=>{t&&n&&dr(t)},{deep:!0}),o.provide(Oe,e)},pr=(o,e)=>{const t=q(Oe);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");j(()=>{t.content||(t.content=ur())});const n=N(),s=y({get(){var d;const c=e.value,p=o.value;if(c){const _=(d=t.content)==null?void 0:d[c];if(_&&p.includes(_))return _}else{const _=n.value;if(_)return _}return p[0]},set(c){const p=e.value;p?t.content&&(t.content[p]=c):n.value=c}});return{selected:s,select:c=>{s.value=c}}};let Pe=0;const fr=()=>(Pe++,""+Pe);function mr(){const o=Ie();return y(()=>{var n;const t=(n=o.default)==null?void 0:n.call(o);return t?t.filter(s=>typeof s.type=="object"&&"__name"in s.type&&s.type.__name==="PluginTabsTab"&&s.props).map(s=>{var r;return(r=s.props)==null?void 0:r.label}):[]})}const Fe="vitepress:tabSingleState",hr=o=>{he(Fe,o)},_r=()=>{const o=q(Fe);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},br={class:"plugin-tabs"},kr=["id","aria-selected","aria-controls","tabindex","onClick"],gr=h({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=mr(),{selected:n,select:s}=pr(t,et(e,"sharedStateKey")),r=N(),{stabilizeScrollPosition:c}=cr(r),p=c(s),d=N([]),_=b=>{var E;const P=t.value.indexOf(n.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),l("div",br,[v("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:_},[(a(!0),l(M,null,A(i(t),S=>(a(),l("button",{id:`tab-${S}-${i(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(n),"aria-controls":`panel-${S}-${i(V)}`,tabindex:S===i(n)?0:-1,onClick:()=>i(p)(S)},T(S),9,kr))),128))],544),u(b.$slots,"default")]))}}),$r=["id","aria-labelledby"],yr=h({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=_r();return(n,s)=>i(t)===n.label?(a(),l("div",{key:0,id:`panel-${n.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${n.label}-${i(e)}`},[u(n.$slots,"default",{},void 0,!0)],8,$r)):m("",!0)}}),Pr=g(yr,[["__scopeId","data-v-9b0d03d2"]]),Sr=o=>{vr(o),o.component("PluginTabs",gr),o.component("PluginTabsTab",Pr)},Ir={extends:lr,async enhanceApp({app:o,router:e,siteData:t}){if(Sr(o),typeof window<"u"){let n=function(){if(!(window.DOCUMENTER_NEWEST===void 0||window.DOCUMENTER_CURRENT_VERSION===void 0||window.DOCUMENTER_STABLE===void 0)&&window.DOCUMENTER_NEWEST===window.DOCUMENTER_CURRENT_VERSION){const s=window.location.href.replace(window.DOCUMENTER_CURRENT_VERSION,window.DOCUMENTER_STABLE);window.history.replaceState({additionalInformation:"URL rewritten to stable"},"DimensionalData",s);return}};D(()=>e.route.data.relativePath,n,{immediate:!0}),document.addEventListener("DOMContentLoaded",n)}}};export{Ir as R,Tr as V,Nr as a,wr as b,Lr as c,ho as d,L as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.B_WjacLW.js","assets/chunks/framework.CEeYBNx8.js"])))=>i.map(i=>d[i]); +import{d as h,o as a,c as l,r as u,n as I,a as O,t as T,b as $,w as f,e as m,T as ve,_ as g,u as Ue,i as Re,f as ze,g as pe,h as y,j as v,k as i,l as G,m as ie,p as N,q as D,s as Z,v as j,x as fe,y as me,z as je,A as Ge,B as K,F as M,C as A,D as Se,E as x,G as k,H as F,I as Ve,J as ee,K as z,L as q,M as Ke,N as Le,O as le,P as Te,Q as Ne,R as te,S as We,U as qe,V as Je,W as we,X as he,Y as Ye,Z as Xe,$ as Qe,a0 as Ze,a1 as Ie,a2 as xe,a3 as et}from"./framework.CEeYBNx8.js";const tt=h({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),l("span",{class:I(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[O(T(e.text),1)])],2))}}),nt={key:0,class:"VPBackdrop"},st=h({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),$(ve,{name:"fade"},{default:f(()=>[e.show?(a(),l("div",nt)):m("",!0)]),_:1}))}}),ot=g(st,[["__scopeId","data-v-b06cdb19"]]),L=Ue;function at(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(Re(o)||o.startsWith("#")||!s.startsWith("http")||!ze(e))return o;const{site:r}=L(),c=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return pe(c)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:r}=L(),c=y(()=>{var d,_;return{label:(d=e.value.locales[t.value])==null?void 0:d.label,link:((_=e.value.locales[t.value])==null?void 0:_.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([d,_])=>c.value.label===_.label?[]:{text:_.label,link:rt(_.link||(d==="root"?"/":`/${d}/`),s.value.i18nRouting!==!1&&o,n.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:c}}function rt(o,e,t,n){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut={class:"quote"},dt={class:"action"},vt=["href","aria-label"],pt=h({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=Y();return(n,s)=>{var r,c,p,d,_;return a(),l("div",it,[v("p",lt,T(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),v("h1",ct,T(((c=i(e).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),s[0]||(s[0]=v("div",{class:"divider"},null,-1)),v("blockquote",ut,T(((p=i(e).notFound)==null?void 0:p.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",dt,[v("a",{class:"link",href:i(pe)(i(t).link),"aria-label":((d=i(e).notFound)==null?void 0:d.linkLabel)??"go to home"},T(((_=i(e).notFound)==null?void 0:_.linkText)??"Take me home"),9,vt)])])}}}),ft=g(pt,[["__scopeId","data-v-951cab6c"]]);function Me(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((s,r)=>r.split("/").length-s.split("/").length).find(s=>e.startsWith(ce(s))),n=t?o[t]:[];return Array.isArray(n)?X(n):X(n.items,n.base)}function mt(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function ht(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):G(o,e.link)?!0:e.items?ue(o,e.items):!1}function X(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=X(n.items,s)),n})}function U(){const{frontmatter:o,page:e,theme:t}=L(),n=ie("(min-width: 960px)"),s=N(!1),r=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Me(C,w):[]}),c=N(r.value);D(r,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(c.value=r.value)});const p=y(()=>o.value.sidebar!==!1&&c.value.length>0&&o.value.layout!=="home"),d=y(()=>_?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),_=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=y(()=>p.value&&n.value),b=y(()=>p.value?mt(c.value):[]);function P(){s.value=!0}function S(){s.value=!1}function E(){s.value?S():P()}return{isOpen:s,sidebar:c,sidebarGroups:b,hasSidebar:p,hasAside:_,leftAside:d,isSidebarEnabled:V,open:P,close:S,toggle:E}}function _t(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",n)}),fe(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function bt(o){const{page:e,hash:t}=L(),n=N(!1),s=y(()=>o.value.collapsed!=null),r=y(()=>!!o.value.link),c=N(!1),p=()=>{c.value=G(e.value.relativePath,o.value.link)};D([e,o,t],p),j(p);const d=y(()=>c.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),_=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{n.value=!!(s.value&&o.value.collapsed)}),me(()=>{(c.value||d.value)&&(n.value=!1)});function V(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:r,isActiveLink:c,hasActiveLink:d,hasChildren:_,toggle:V}}function kt(){const{hasSidebar:o}=U(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Ee(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:gt(t),link:"#"+t.id,level:n}});return $t(e,o)}function gt(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function $t(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(c=>c.level>=n&&c.level<=s),de.length=0;for(const{element:c,link:p}of o)de.push({element:c,link:p});const r=[];e:for(let c=0;c=0;d--){const _=o[d];if(_.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),je(()=>{c(location.hash)}),fe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const p=window.scrollY,d=window.innerHeight,_=document.body.offsetHeight,V=Math.abs(p+d-_)<1,b=de.map(({element:S,link:E})=>({link:E,top:Pt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,E)=>S.top-E.top);if(!b.length){c(null);return}if(p<1){c(null);return}if(V){c(b[b.length-1].link);return}let P=null;for(const{link:S,top:E}of b){if(E>p+Ge()+4)break;P=S}c(P)}function c(p){s&&s.classList.remove("active"),p==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const d=s;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Pt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const St=["href","title"],Vt=h({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=K("VPDocOutlineItem",!0);return a(),l("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(M,null,A(t.headers,({children:r,link:c,title:p})=>(a(),l("li",null,[v("a",{class:"outline-link",href:c,onClick:e,title:p},T(p),9,St),r!=null&&r.length?(a(),$(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),Ce=g(Vt,[["__scopeId","data-v-3f927ebe"]]),Lt={class:"content"},Tt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Nt=h({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),n=Se([]);x(()=>{n.value=be(e.value.outline??t.value.outline)});const s=N(),r=N();return yt(s,r),(c,p)=>(a(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[v("div",Lt,[v("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),v("div",Tt,T(i(Ee)(i(t))),1),k(Ce,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),wt=g(Nt,[["__scopeId","data-v-b38bf2ff"]]),It={class:"VPDocAsideCarbonAds"},Mt=h({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(a(),l("div",It,[k(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Et={class:"VPDocAside"},Ct=h({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,n)=>(a(),l("div",Et,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),k(wt),u(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=v("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),$(Mt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),At=g(Ct,[["__scopeId","data-v-6d7b3c46"]]);function Bt(){const{theme:o,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Ht(){const{page:o,theme:e,frontmatter:t}=L();return y(()=>{var _,V,b,P,S,E,C,w;const n=Me(e.value.sidebar,o.value.relativePath),s=ht(n),r=Ot(s,B=>B.link.replace(/[?#].*$/,"")),c=r.findIndex(B=>G(o.value.relativePath,B.link)),p=((_=e.value.docFooter)==null?void 0:_.prev)===!1&&!t.value.prev||t.value.prev===!1,d=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:p?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=r[c-1])==null?void 0:b.docFooterText)??((P=r[c-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=r[c-1])==null?void 0:S.link)},next:d?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((E=r[c+1])==null?void 0:E.docFooterText)??((C=r[c+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=r[c+1])==null?void 0:w.link)}}})}function Ot(o,e){const t=new Set;return o.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const H=h({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),n=y(()=>e.href&&Ve.test(e.href)||e.target==="_blank");return(s,r)=>(a(),$(F(t.value),{class:I(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?i(_e)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:f(()=>[u(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Dt={class:"VPLastUpdated"},Ft=["datetime"],Ut=h({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=L(),s=y(()=>new Date(t.value.lastUpdated)),r=y(()=>s.value.toISOString()),c=N("");return j(()=>{Z(()=>{var p,d,_;c.value=new Intl.DateTimeFormat((d=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&d.forceLocale?n.value:void 0,((_=e.value.lastUpdated)==null?void 0:_.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(p,d)=>{var _;return a(),l("p",Dt,[O(T(((_=i(e).lastUpdated)==null?void 0:_.text)||i(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:r.value},T(c.value),9,Ft)])}}}),Rt=g(Ut,[["__scopeId","data-v-475f71b8"]]),zt={key:0,class:"VPDocFooter"},jt={key:0,class:"edit-info"},Gt={key:0,class:"edit-link"},Kt={key:1,class:"last-updated"},Wt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},qt={class:"pager"},Jt=["innerHTML"],Yt=["innerHTML"],Xt={class:"pager"},Qt=["innerHTML"],Zt=["innerHTML"],xt=h({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=L(),s=Bt(),r=Ht(),c=y(()=>e.value.editLink&&n.value.editLink!==!1),p=y(()=>t.value.lastUpdated),d=y(()=>c.value||p.value||r.value.prev||r.value.next);return(_,V)=>{var b,P,S,E;return d.value?(a(),l("footer",zt,[u(_.$slots,"doc-footer-before",{},void 0,!0),c.value||p.value?(a(),l("div",jt,[c.value?(a(),l("div",Gt,[k(H,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:f(()=>[V[0]||(V[0]=v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),O(" "+T(i(s).text),1)]),_:1},8,["href"])])):m("",!0),p.value?(a(),l("div",Kt,[k(Rt)])):m("",!0)])):m("",!0),(b=i(r).prev)!=null&&b.link||(P=i(r).next)!=null&&P.link?(a(),l("nav",Wt,[V[1]||(V[1]=v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),v("div",qt,[(S=i(r).prev)!=null&&S.link?(a(),$(H,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,Jt),v("span",{class:"title",innerHTML:i(r).prev.text},null,8,Yt)]}),_:1},8,["href"])):m("",!0)]),v("div",Xt,[(E=i(r).next)!=null&&E.link?(a(),$(H,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,Qt),v("span",{class:"title",innerHTML:i(r).next.text},null,8,Zt)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),en=g(xt,[["__scopeId","data-v-4f9813fa"]]),tn={class:"container"},nn={class:"aside-container"},sn={class:"aside-content"},on={class:"content"},an={class:"content-container"},rn={class:"main"},ln=h({__name:"VPDoc",setup(o){const{theme:e}=L(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:r}=U(),c=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,d)=>{const _=K("Content");return a(),l("div",{class:I(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[u(p.$slots,"doc-top",{},void 0,!0),v("div",tn,[i(s)?(a(),l("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[d[0]||(d[0]=v("div",{class:"aside-curtain"},null,-1)),v("div",nn,[v("div",sn,[k(At,null,{"aside-top":f(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),v("div",on,[v("div",an,[u(p.$slots,"doc-before",{},void 0,!0),v("main",rn,[k(_,{class:I(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(en,null,{"doc-footer-before":f(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),cn=g(ln,[["__scopeId","data-v-83890dd9"]]),un=h({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Ve.test(e.href)),n=y(()=>e.tag||e.href?"a":"button");return(s,r)=>(a(),$(F(n.value),{class:I(["VPButton",[s.size,s.theme]]),href:s.href?i(_e)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[O(T(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),dn=g(un,[["__scopeId","data-v-14206e74"]]),vn=["src","alt"],pn=h({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=K("VPImage",!0);return e.image?(a(),l(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",z({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,vn)):(a(),l(M,{key:1},[k(n,z({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(n,z({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),Q=g(pn,[["__scopeId","data-v-35a7d0b8"]]),fn={class:"container"},mn={class:"main"},hn={key:0,class:"name"},_n=["innerHTML"],bn=["innerHTML"],kn=["innerHTML"],gn={key:0,class:"actions"},$n={key:0,class:"image"},yn={class:"image-container"},Pn=h({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,n)=>(a(),l("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[v("div",fn,[v("div",mn,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",hn,[v("span",{innerHTML:t.name,class:"clip"},null,8,_n)])):m("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,bn)):m("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,kn)):m("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",gn,[(a(!0),l(M,null,A(t.actions,s=>(a(),l("div",{key:s.link,class:"action"},[k(dn,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),l("div",$n,[v("div",yn,[n[0]||(n[0]=v("div",{class:"image-bg"},null,-1)),u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),Sn=g(Pn,[["__scopeId","data-v-955009fc"]]),Vn=h({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,n)=>i(e).hero?(a(),$(Sn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Ln={class:"box"},Tn={key:0,class:"icon"},Nn=["innerHTML"],wn=["innerHTML"],In=["innerHTML"],Mn={key:4,class:"link-text"},En={class:"link-text-value"},Cn=h({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),$(H,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[v("article",Ln,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",Tn,[k(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Nn)):m("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,wn),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,In)):m("",!0),e.linkText?(a(),l("div",Mn,[v("p",En,[O(T(e.linkText)+" ",1),t[0]||(t[0]=v("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),An=g(Cn,[["__scopeId","data-v-f5e9645b"]]),Bn={key:0,class:"VPFeatures"},Hn={class:"container"},On={class:"items"},Dn=h({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(a(),l("div",Bn,[v("div",Hn,[v("div",On,[(a(!0),l(M,null,A(n.features,r=>(a(),l("div",{key:r.title,class:I(["item",[t.value]])},[k(An,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Fn=g(Dn,[["__scopeId","data-v-d0a190d7"]]),Un=h({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,n)=>i(e).features?(a(),$(Fn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Rn=h({__name:"VPHomeContent",setup(o){const{width:e}=Ke({initialWidth:0,includeScrollbar:!1});return(t,n)=>(a(),l("div",{class:"vp-doc container",style:Le(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),zn=g(Rn,[["__scopeId","data-v-7a48a447"]]),jn={class:"VPHome"},Gn=h({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,n)=>{const s=K("Content");return a(),l("div",jn,[u(t.$slots,"home-hero-before",{},void 0,!0),k(Vn,null,{"home-hero-info-before":f(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),k(Un),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),$(zn,{key:0},{default:f(()=>[k(s)]),_:1})):(a(),$(s,{key:1}))])}}}),Kn=g(Gn,[["__scopeId","data-v-cbb6ec48"]]),Wn={},qn={class:"VPPage"};function Jn(o,e){const t=K("Content");return a(),l("div",qn,[u(o.$slots,"page-top"),k(t),u(o.$slots,"page-bottom")])}const Yn=g(Wn,[["render",Jn]]),Xn=h({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:n}=U();return(s,r)=>(a(),l("div",{class:I(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(s.$slots,"not-found",{key:0},()=>[k(ft)],!0):i(t).layout==="page"?(a(),$(Yn,{key:1},{"page-top":f(()=>[u(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),$(Kn,{key:2},{"home-hero-before":f(()=>[u(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),$(F(i(t).layout),{key:3})):(a(),$(cn,{key:4},{"doc-top":f(()=>[u(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[u(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[u(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[u(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[u(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Qn=g(Xn,[["__scopeId","data-v-91765379"]]),Zn={class:"container"},xn=["innerHTML"],es=["innerHTML"],ts=h({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=U();return(s,r)=>i(e).footer&&i(t).footer!==!1?(a(),l("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(n)}])},[v("div",Zn,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,xn)):m("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,es)):m("",!0)])],2)):m("",!0)}}),ns=g(ts,[["__scopeId","data-v-c970a860"]]);function ss(){const{theme:o,frontmatter:e}=L(),t=Se([]),n=y(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const os={class:"menu-text"},as={class:"header"},rs={class:"outline"},is=h({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),n=N(!1),s=N(0),r=N(),c=N();function p(b){var P;(P=r.value)!=null&&P.contains(b.target)||(n.value=!1)}D(n,b=>{if(b){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),le("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function d(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function _(b){b.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Te(()=>{n.value=!1}))}function V(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Le({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[b.headers.length>0?(a(),l("button",{key:0,onClick:d,class:I({open:n.value})},[v("span",os,T(i(Ee)(i(t))),1),P[0]||(P[0]=v("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),l("button",{key:1,onClick:V},T(i(t).returnToTopLabel||"Return to top"),1)),k(ve,{name:"flyout"},{default:f(()=>[n.value?(a(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:_},[v("div",as,[v("a",{class:"top-link",href:"#",onClick:V},T(i(t).returnToTopLabel||"Return to top"),1)]),v("div",rs,[k(Ce,{headers:b.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),ls=g(is,[["__scopeId","data-v-bc9dc845"]]),cs={class:"container"},us=["aria-expanded"],ds={class:"menu-text"},vs=h({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=U(),{headers:s}=ss(),{y:r}=Ne(),c=N(0);j(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=be(t.value.outline??e.value.outline)});const p=y(()=>s.value.length===0),d=y(()=>p.value&&!n.value),_=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:p.value,fixed:d.value}));return(V,b)=>i(t).layout!=="home"&&(!d.value||i(r)>=c.value)?(a(),l("div",{key:0,class:I(_.value)},[v("div",cs,[i(n)?(a(),l("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=v("span",{class:"vpi-align-left menu-icon"},null,-1)),v("span",ds,T(i(e).sidebarMenuLabel||"Menu"),1)],8,us)):m("",!0),k(ls,{headers:i(s),navHeight:c.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),ps=g(vs,[["__scopeId","data-v-070ab83d"]]);function fs(){const o=N(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ee();return D(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const ms={},hs={class:"VPSwitch",type:"button",role:"switch"},_s={class:"check"},bs={key:0,class:"icon"};function ks(o,e){return a(),l("button",hs,[v("span",_s,[o.$slots.default?(a(),l("span",bs,[u(o.$slots,"default",{},void 0,!0)])):m("",!0)])])}const gs=g(ms,[["render",ks],["__scopeId","data-v-4a1c76db"]]),$s=h({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),n=q("toggle-appearance",()=>{e.value=!e.value}),s=N("");return me(()=>{s.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,c)=>(a(),$(gs,{title:s.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:f(()=>c[0]||(c[0]=[v("span",{class:"vpi-sun sun"},null,-1),v("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=g($s,[["__scopeId","data-v-e40a8bb6"]]),ys={key:0,class:"VPNavBarAppearance"},Ps=h({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),l("div",ys,[k(ke)])):m("",!0)}}),Ss=g(Ps,[["__scopeId","data-v-af096f4a"]]),ge=N();let Ae=!1,re=0;function Vs(o){const e=N(!1);if(te){!Ae&&Ls(),re++;const t=D(ge,n=>{var s,r,c;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(c=o.onBlur)==null||c.call(o))});fe(()=>{t(),re--,re||Ts()})}return We(e)}function Ls(){document.addEventListener("focusin",Be),Ae=!0,ge.value=document.activeElement}function Ts(){document.removeEventListener("focusin",Be)}function Be(){ge.value=document.activeElement}const Ns={class:"VPMenuLink"},ws=h({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(a(),l("div",Ns,[k(H,{class:I({active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[O(T(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=g(ws,[["__scopeId","data-v-8b74d055"]]),Is={class:"VPMenuGroup"},Ms={key:0,class:"title"},Es=h({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),l("div",Is,[e.text?(a(),l("p",Ms,T(e.text),1)):m("",!0),(a(!0),l(M,null,A(e.items,n=>(a(),l(M,null,["link"in n?(a(),$(ne,{key:0,item:n},null,8,["item"])):m("",!0)],64))),256))]))}}),Cs=g(Es,[["__scopeId","data-v-48c802d0"]]),As={class:"VPMenu"},Bs={key:0,class:"items"},Hs=h({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),l("div",As,[e.items?(a(),l("div",Bs,[(a(!0),l(M,null,A(e.items,n=>(a(),l(M,{key:JSON.stringify(n)},["link"in n?(a(),$(ne,{key:0,item:n},null,8,["item"])):"component"in n?(a(),$(F(n.component),z({key:1,ref_for:!0},n.props),null,16)):(a(),$(Cs,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),Os=g(Hs,[["__scopeId","data-v-7dd3104a"]]),Ds=["aria-expanded","aria-label"],Fs={key:0,class:"text"},Us=["innerHTML"],Rs={key:1,class:"vpi-more-horizontal icon"},zs={class:"menu"},js=h({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=N(!1),t=N();Vs({el:t,onBlur:n});function n(){e.value=!1}return(s,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[s.button||s.icon?(a(),l("span",Fs,[s.icon?(a(),l("span",{key:0,class:I([s.icon,"option-icon"])},null,2)):m("",!0),s.button?(a(),l("span",{key:1,innerHTML:s.button},null,8,Us)):m("",!0),r[3]||(r[3]=v("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),l("span",Rs))],8,Ds),v("div",zs,[k(Os,{items:s.items},{default:f(()=>[u(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=g(js,[["__scopeId","data-v-e5380155"]]),Gs=["href","aria-label","innerHTML"],Ks=h({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(a(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Gs))}}),Ws=g(Ks,[["__scopeId","data-v-717b8b75"]]),qs={class:"VPSocialLinks"},Js=h({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),l("div",qs,[(a(!0),l(M,null,A(e.links,({link:n,icon:s,ariaLabel:r})=>(a(),$(Ws,{key:n,icon:s,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),se=g(Js,[["__scopeId","data-v-ee7a9424"]]),Ys={key:0,class:"group translations"},Xs={class:"trans-title"},Qs={key:1,class:"group"},Zs={class:"item appearance"},xs={class:"label"},eo={class:"appearance-action"},to={key:2,class:"group"},no={class:"item social-links"},so=h({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:n,currentLang:s}=Y({correspondingLink:!0}),r=y(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(c,p)=>r.value?(a(),$($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(n).length&&i(s).label?(a(),l("div",Ys,[v("p",Xs,T(i(s).label),1),(a(!0),l(M,null,A(i(n),d=>(a(),$(ne,{key:d.link,item:d},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),l("div",Qs,[v("div",Zs,[v("p",xs,T(i(t).darkModeSwitchLabel||"Appearance"),1),v("div",eo,[k(ke)])])])):m("",!0),i(t).socialLinks?(a(),l("div",to,[v("div",no,[k(se,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),oo=g(so,[["__scopeId","data-v-925effce"]]),ao=["aria-expanded"],ro=h({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),l("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)]),10,ao))}}),io=g(ro,[["__scopeId","data-v-5dea55bf"]]),lo=["innerHTML"],co=h({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(a(),$(H,{class:I({VPNavBarMenuLink:!0,active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[v("span",{innerHTML:t.item.text},null,8,lo)]),_:1},8,["class","href","noIcon","target","rel"]))}}),uo=g(co,[["__scopeId","data-v-ed5ac1f6"]]),vo=h({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),n=r=>"component"in r?!1:"link"in r?G(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),s=y(()=>n(e.item));return(r,c)=>(a(),$($e,{class:I({VPNavBarMenuGroup:!0,active:i(G)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||s.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),po={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},fo=h({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,n)=>i(e).nav?(a(),l("nav",po,[n[0]||(n[0]=v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),l(M,null,A(i(e).nav,s=>(a(),l(M,{key:JSON.stringify(s)},["link"in s?(a(),$(uo,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(F(s.component),z({key:1,ref_for:!0},s.props),null,16)):(a(),$(vo,{key:2,item:s},null,8,["item"]))],64))),128))])):m("",!0)}}),mo=g(fo,[["__scopeId","data-v-e6d46098"]]);function ho(o){const{localeIndex:e,theme:t}=L();function n(s){var E,C,w;const r=s.split("."),c=(E=t.value.search)==null?void 0:E.options,p=c&&typeof c=="object",d=p&&((w=(C=c.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,_=p&&c.translations||null;let V=d,b=_,P=o;const S=r.pop();for(const B of r){let R=null;const W=P==null?void 0:P[B];W&&(R=P=W);const oe=b==null?void 0:b[B];oe&&(R=b=oe);const ae=V==null?void 0:V[B];ae&&(R=V=ae),W||(P=R),oe||(b=R),ae||(V=R)}return(V==null?void 0:V[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return n}const _o=["aria-label"],bo={class:"DocSearch-Button-Container"},ko={class:"DocSearch-Button-Placeholder"},ye=h({__name:"VPNavBarSearchButton",setup(o){const t=ho({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[v("span",bo,[s[0]||(s[0]=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),v("span",ko,T(i(t)("button.buttonText")),1)]),s[1]||(s[1]=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,_o))}}),go={class:"VPNavBarSearch"},$o={id:"local-search"},yo={key:1,id:"docsearch"},Po=h({__name:"VPNavBarSearch",setup(o){const e=qe(()=>Je(()=>import("./VPLocalSearchBox.B_WjacLW.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=L(),s=N(!1),r=N(!1);j(()=>{});function c(){s.value||(s.value=!0,setTimeout(p,16))}function p(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||p()},16)}function d(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const _=N(!1);le("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),_.value=!0)}),le("/",b=>{d(b)||(b.preventDefault(),_.value=!0)});const V="local";return(b,P)=>{var S;return a(),l("div",go,[i(V)==="local"?(a(),l(M,{key:0},[_.value?(a(),$(i(e),{key:0,onClose:P[0]||(P[0]=E=>_.value=!1)})):m("",!0),v("div",$o,[k(ye,{onClick:P[1]||(P[1]=E=>_.value=!0)})])],64)):i(V)==="algolia"?(a(),l(M,{key:1},[s.value?(a(),$(i(t),{key:0,algolia:((S=i(n).search)==null?void 0:S.options)??i(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=E=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(a(),l("div",yo,[k(ye,{onClick:c})]))],64)):m("",!0)])}}}),So=h({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>i(e).socialLinks?(a(),$(se,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Vo=g(So,[["__scopeId","data-v-164c457f"]]),Lo=["href","rel","target"],To={key:1},No={key:2},wo=h({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:n}=U(),{currentLang:s}=Y(),r=y(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),c=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),p=y(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,_)=>(a(),l("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(n)}])},[v("a",{class:"title",href:r.value??i(_e)(i(s).link),rel:c.value,target:p.value},[u(d.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),$(Q,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):m("",!0),i(t).siteTitle?(a(),l("span",To,T(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),l("span",No,T(i(e).title),1)):m("",!0),u(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Lo)],2))}}),Io=g(wo,[["__scopeId","data-v-28a961f9"]]),Mo={class:"items"},Eo={class:"title"},Co=h({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:n}=Y({correspondingLink:!0});return(s,r)=>i(t).length&&i(n).label?(a(),$($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[v("div",Mo,[v("p",Eo,T(i(n).label),1),(a(!0),l(M,null,A(i(t),c=>(a(),$(ne,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Ao=g(Co,[["__scopeId","data-v-c80d9ad0"]]),Bo={class:"wrapper"},Ho={class:"container"},Oo={class:"title"},Do={class:"content"},Fo={class:"content-body"},Uo=h({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Ne(),{hasSidebar:n}=U(),{frontmatter:s}=L(),r=N({});return me(()=>{r.value={"has-sidebar":n.value,home:s.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(c,p)=>(a(),l("div",{class:I(["VPNavBar",r.value])},[v("div",Bo,[v("div",Ho,[v("div",Oo,[k(Io,null,{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",Do,[v("div",Fo,[u(c.$slots,"nav-bar-content-before",{},void 0,!0),k(Po,{class:"search"}),k(mo,{class:"menu"}),k(Ao,{class:"translations"}),k(Ss,{class:"appearance"}),k(Vo,{class:"social-links"}),k(oo,{class:"extra"}),u(c.$slots,"nav-bar-content-after",{},void 0,!0),k(io,{class:"hamburger",active:c.isScreenOpen,onClick:p[0]||(p[0]=d=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),p[1]||(p[1]=v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1))],2))}}),Ro=g(Uo,[["__scopeId","data-v-822684d1"]]),zo={key:0,class:"VPNavScreenAppearance"},jo={class:"text"},Go=h({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),l("div",zo,[v("p",jo,T(i(t).darkModeSwitchLabel||"Appearance"),1),k(ke)])):m("",!0)}}),Ko=g(Go,[["__scopeId","data-v-ffb44008"]]),Wo=h({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,n)=>(a(),$(H,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),qo=g(Wo,[["__scopeId","data-v-27d04aeb"]]),Jo=h({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,n)=>(a(),$(H,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:f(()=>[O(T(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),He=g(Jo,[["__scopeId","data-v-7179dbb7"]]),Yo={class:"VPNavScreenMenuGroupSection"},Xo={key:0,class:"title"},Qo=h({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),l("div",Yo,[e.text?(a(),l("p",Xo,T(e.text),1)):m("",!0),(a(!0),l(M,null,A(e.items,n=>(a(),$(He,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Zo=g(Qo,[["__scopeId","data-v-4b8941ac"]]),xo=["aria-controls","aria-expanded"],ea=["innerHTML"],ta=["id"],na={key:0,class:"item"},sa={key:1,class:"item"},oa={key:2,class:"group"},aa=h({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=N(!1),n=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(r,c)=>(a(),l("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[v("span",{class:"button-text",innerHTML:r.text},null,8,ea),c[0]||(c[0]=v("span",{class:"vpi-plus button-icon"},null,-1))],8,xo),v("div",{id:n.value,class:"items"},[(a(!0),l(M,null,A(r.items,p=>(a(),l(M,{key:JSON.stringify(p)},["link"in p?(a(),l("div",na,[k(He,{item:p},null,8,["item"])])):"component"in p?(a(),l("div",sa,[(a(),$(F(p.component),z({ref_for:!0},p.props,{"screen-menu":""}),null,16))])):(a(),l("div",oa,[k(Zo,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,ta)],2))}}),ra=g(aa,[["__scopeId","data-v-875057a5"]]),ia={key:0,class:"VPNavScreenMenu"},la=h({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,n)=>i(e).nav?(a(),l("nav",ia,[(a(!0),l(M,null,A(i(e).nav,s=>(a(),l(M,{key:JSON.stringify(s)},["link"in s?(a(),$(qo,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(F(s.component),z({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(a(),$(ra,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),ca=h({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>i(e).socialLinks?(a(),$(se,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),ua={class:"list"},da=h({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),n=N(!1);function s(){n.value=!n.value}return(r,c)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:I(["VPNavScreenTranslations",{open:n.value}])},[v("button",{class:"title",onClick:s},[c[0]||(c[0]=v("span",{class:"vpi-languages icon lang"},null,-1)),O(" "+T(i(t).label)+" ",1),c[1]||(c[1]=v("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),v("ul",ua,[(a(!0),l(M,null,A(i(e),p=>(a(),l("li",{key:p.link,class:"item"},[k(H,{class:"link",href:p.link},{default:f(()=>[O(T(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),va=g(da,[["__scopeId","data-v-362991c2"]]),pa={class:"container"},fa=h({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=N(null),t=we(te?document.body:null);return(n,s)=>(a(),$(ve,{name:"fade",onEnter:s[0]||(s[0]=r=>t.value=!0),onAfterLeave:s[1]||(s[1]=r=>t.value=!1)},{default:f(()=>[n.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",pa,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),k(la,{class:"menu"}),k(va,{class:"translations"}),k(Ko,{class:"appearance"}),k(ca,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),ma=g(fa,[["__scopeId","data-v-833aabba"]]),ha={key:0,class:"VPNav"},_a=h({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=fs(),{frontmatter:s}=L(),r=y(()=>s.value.navbar!==!1);return he("close-screen",t),Z(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,p)=>r.value?(a(),l("header",ha,[k(Ro,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":f(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(ma,{open:i(e)},{"nav-screen-content-before":f(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),ba=g(_a,[["__scopeId","data-v-f1e365da"]]),ka=["role","tabindex"],ga={key:1,class:"items"},$a=h({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:p,toggle:d}=bt(y(()=>e.item)),_=y(()=>p.value?"section":"div"),V=y(()=>s.value?"a":"div"),b=y(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>s.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":r.value},{"has-active":c.value}]);function E(w){"key"in w&&w.key!=="Enter"||!e.item.link&&d()}function C(){e.item.link&&d()}return(w,B)=>{const R=K("VPSidebarItem",!0);return a(),$(F(_.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),l("div",z({key:0,class:"item",role:P.value},Ye(w.item.items?{click:E,keydown:E}:{},!0),{tabindex:w.item.items&&0}),[B[1]||(B[1]=v("div",{class:"indicator"},null,-1)),w.item.link?(a(),$(H,{key:0,tag:V.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(F(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(F(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Xe(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[v("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):m("",!0)],16,ka)):m("",!0),w.item.items&&w.item.items.length?(a(),l("div",ga,[w.depth<5?(a(!0),l(M,{key:0},A(w.item.items,W=>(a(),$(R,{key:W.text,item:W,depth:w.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),ya=g($a,[["__scopeId","data-v-196b2e5f"]]),Pa=h({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=N(!0);let t=null;return j(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Qe(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,s)=>(a(!0),l(M,null,A(n.items,r=>(a(),l("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[k(ya,{item:r,depth:0},null,8,["item"])],2))),128))}}),Sa=g(Pa,[["__scopeId","data-v-9e426adc"]]),Va={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},La=h({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),n=o,s=N(null),r=we(te?document.body:null);D([n,s],()=>{var p;n.open?(r.value=!0,(p=s.value)==null||p.focus()):r.value=!1},{immediate:!0,flush:"post"});const c=N(0);return D(e,()=>{c.value+=1},{deep:!0}),(p,d)=>i(t)?(a(),l("aside",{key:0,class:I(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:s,onClick:d[0]||(d[0]=Ze(()=>{},["stop"]))},[d[2]||(d[2]=v("div",{class:"curtain"},null,-1)),v("nav",Va,[d[1]||(d[1]=v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(Sa,{items:i(e),key:c.value},null,8,["items"])),u(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Ta=g(La,[["__scopeId","data-v-18756405"]]),Na=h({__name:"VPSkipLink",setup(o){const e=ee(),t=N();D(()=>e.path,()=>t.value.focus());function n({target:s}){const r=document.getElementById(decodeURIComponent(s.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(a(),l(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),wa=g(Na,[["__scopeId","data-v-c3508ec8"]]),Ia=h({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=U(),s=ee();D(()=>s.path,n),_t(e,n);const{frontmatter:r}=L(),c=Ie(),p=y(()=>!!c["home-hero-image"]);return he("hero-image-slot-exists",p),(d,_)=>{const V=K("Content");return i(r).layout!==!1?(a(),l("div",{key:0,class:I(["Layout",i(r).pageClass])},[u(d.$slots,"layout-top",{},void 0,!0),k(wa),k(ot,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),k(ba,null,{"nav-bar-title-before":f(()=>[u(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[u(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[u(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[u(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[u(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[u(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(ps,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),k(Ta,{open:i(e)},{"sidebar-nav-before":f(()=>[u(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[u(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(Qn,null,{"page-top":f(()=>[u(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[u(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[u(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[u(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[u(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[u(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[u(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[u(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[u(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[u(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[u(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[u(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[u(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[u(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[u(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[u(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(ns),u(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(V,{key:1}))}}}),Ma=g(Ia,[["__scopeId","data-v-a9a9e638"]]),Ea={},Ca={class:"VPTeamPage"};function Aa(o,e){return a(),l("div",Ca,[u(o.$slots,"default")])}const Lr=g(Ea,[["render",Aa],["__scopeId","data-v-c2f8e101"]]),Ba={},Ha={class:"VPTeamPageTitle"},Oa={key:0,class:"title"},Da={key:1,class:"lead"};function Fa(o,e){return a(),l("div",Ha,[o.$slots.title?(a(),l("h1",Oa,[u(o.$slots,"title",{},void 0,!0)])):m("",!0),o.$slots.lead?(a(),l("p",Da,[u(o.$slots,"lead",{},void 0,!0)])):m("",!0)])}const Tr=g(Ba,[["render",Fa],["__scopeId","data-v-e277e15c"]]),Ua={},Ra={class:"VPTeamPageSection"},za={class:"title"},ja={key:0,class:"title-text"},Ga={key:0,class:"lead"},Ka={key:1,class:"members"};function Wa(o,e){return a(),l("section",Ra,[v("div",za,[e[0]||(e[0]=v("div",{class:"title-line"},null,-1)),o.$slots.title?(a(),l("h2",ja,[u(o.$slots,"title",{},void 0,!0)])):m("",!0)]),o.$slots.lead?(a(),l("p",Ga,[u(o.$slots,"lead",{},void 0,!0)])):m("",!0),o.$slots.members?(a(),l("div",Ka,[u(o.$slots,"members",{},void 0,!0)])):m("",!0)])}const Nr=g(Ua,[["render",Wa],["__scopeId","data-v-d43bc49d"]]),qa={class:"profile"},Ja={class:"avatar"},Ya=["src","alt"],Xa={class:"data"},Qa={class:"name"},Za={key:0,class:"affiliation"},xa={key:0,class:"title"},er={key:1,class:"at"},tr=["innerHTML"],nr={key:2,class:"links"},sr={key:0,class:"sp"},or=h({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(o){return(e,t)=>(a(),l("article",{class:I(["VPTeamMembersItem",[e.size]])},[v("div",qa,[v("figure",Ja,[v("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,Ya)]),v("div",Xa,[v("h1",Qa,T(e.member.name),1),e.member.title||e.member.org?(a(),l("p",Za,[e.member.title?(a(),l("span",xa,T(e.member.title),1)):m("",!0),e.member.title&&e.member.org?(a(),l("span",er," @ ")):m("",!0),e.member.org?(a(),$(H,{key:2,class:I(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:f(()=>[O(T(e.member.org),1)]),_:1},8,["class","href"])):m("",!0)])):m("",!0),e.member.desc?(a(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,tr)):m("",!0),e.member.links?(a(),l("div",nr,[k(se,{links:e.member.links},null,8,["links"])])):m("",!0)])]),e.member.sponsor?(a(),l("div",sr,[k(H,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:f(()=>[t[0]||(t[0]=v("span",{class:"vpi-heart sp-icon"},null,-1)),O(" "+T(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):m("",!0)],2))}}),ar=g(or,[["__scopeId","data-v-f9987cb6"]]),rr={class:"container"},ir=h({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(o){const e=o,t=y(()=>[e.size,`count-${e.members.length}`]);return(n,s)=>(a(),l("div",{class:I(["VPTeamMembers",t.value])},[v("div",rr,[(a(!0),l(M,null,A(n.members,r=>(a(),l("div",{key:r.name,class:"item"},[k(ar,{size:n.size,member:r},null,8,["size","member"])]))),128))])],2))}}),wr=g(ir,[["__scopeId","data-v-fba19bad"]]),lr={Layout:Ma,enhanceApp:({app:o})=>{o.component("Badge",tt)}},cr=o=>{if(typeof document>"u")return{stabilizeScrollPosition:s=>async(...r)=>s(...r)};const e=document.documentElement;return{stabilizeScrollPosition:n=>async(...s)=>{const r=n(...s),c=o.value;if(!c)return r;const p=c.offsetTop-e.scrollTop;return await Te(),e.scrollTop=c.offsetTop-p,r}}},Oe="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,De="vitepress:tabsSharedState",ur=()=>{const o=J==null?void 0:J.getItem(De);if(o)try{return JSON.parse(o)}catch{}return{}},dr=o=>{J&&J.setItem(De,JSON.stringify(o))},vr=o=>{const e=xe({});D(()=>e.content,(t,n)=>{t&&n&&dr(t)},{deep:!0}),o.provide(Oe,e)},pr=(o,e)=>{const t=q(Oe);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");j(()=>{t.content||(t.content=ur())});const n=N(),s=y({get(){var d;const c=e.value,p=o.value;if(c){const _=(d=t.content)==null?void 0:d[c];if(_&&p.includes(_))return _}else{const _=n.value;if(_)return _}return p[0]},set(c){const p=e.value;p?t.content&&(t.content[p]=c):n.value=c}});return{selected:s,select:c=>{s.value=c}}};let Pe=0;const fr=()=>(Pe++,""+Pe);function mr(){const o=Ie();return y(()=>{var n;const t=(n=o.default)==null?void 0:n.call(o);return t?t.filter(s=>typeof s.type=="object"&&"__name"in s.type&&s.type.__name==="PluginTabsTab"&&s.props).map(s=>{var r;return(r=s.props)==null?void 0:r.label}):[]})}const Fe="vitepress:tabSingleState",hr=o=>{he(Fe,o)},_r=()=>{const o=q(Fe);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},br={class:"plugin-tabs"},kr=["id","aria-selected","aria-controls","tabindex","onClick"],gr=h({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=mr(),{selected:n,select:s}=pr(t,et(e,"sharedStateKey")),r=N(),{stabilizeScrollPosition:c}=cr(r),p=c(s),d=N([]),_=b=>{var E;const P=t.value.indexOf(n.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),l("div",br,[v("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:_},[(a(!0),l(M,null,A(i(t),S=>(a(),l("button",{id:`tab-${S}-${i(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:d,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(n),"aria-controls":`panel-${S}-${i(V)}`,tabindex:S===i(n)?0:-1,onClick:()=>i(p)(S)},T(S),9,kr))),128))],544),u(b.$slots,"default")]))}}),$r=["id","aria-labelledby"],yr=h({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=_r();return(n,s)=>i(t)===n.label?(a(),l("div",{key:0,id:`panel-${n.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${n.label}-${i(e)}`},[u(n.$slots,"default",{},void 0,!0)],8,$r)):m("",!0)}}),Pr=g(yr,[["__scopeId","data-v-9b0d03d2"]]),Sr=o=>{vr(o),o.component("PluginTabs",gr),o.component("PluginTabsTab",Pr)},Ir={extends:lr,async enhanceApp({app:o,router:e,siteData:t}){if(Sr(o),typeof window<"u"){let n=function(){if(!(window.DOCUMENTER_NEWEST===void 0||window.DOCUMENTER_CURRENT_VERSION===void 0||window.DOCUMENTER_STABLE===void 0)&&window.DOCUMENTER_NEWEST===window.DOCUMENTER_CURRENT_VERSION){const s=window.location.href.replace(window.DOCUMENTER_CURRENT_VERSION,window.DOCUMENTER_STABLE);window.history.replaceState({additionalInformation:"URL rewritten to stable"},"DimensionalData",s);return}};D(()=>e.route.data.relativePath,n,{immediate:!0}),document.addEventListener("DOMContentLoaded",n)}}};export{Ir as R,Tr as V,Nr as a,wr as b,Lr as c,ho as d,L as u}; diff --git a/dev/assets/ecosystem.md.Db_UaeE4.js b/dev/assets/ecosystem.md.B1xk8bas.js similarity index 97% rename from dev/assets/ecosystem.md.Db_UaeE4.js rename to dev/assets/ecosystem.md.B1xk8bas.js index ee0e405..fe20bcf 100644 --- a/dev/assets/ecosystem.md.Db_UaeE4.js +++ b/dev/assets/ecosystem.md.B1xk8bas.js @@ -1 +1 @@ -import{V as r,a as i,b as o,c}from"./chunks/theme.6nTMTlEW.js";import{c as p,G as t,w as s,k as n,o as u,a}from"./chunks/framework.CEeYBNx8.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"ecosystem.md","filePath":"ecosystem.md","lastUpdated":null}'),d={name:"ecosystem.md"},E=Object.assign(d,{setup(h){const l=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"GeoRegions.jl",desc:"Defining Geographic Regions of Interest for Geospatial Data in Geoscience and Climate.",links:[{icon:"github",link:"https://github.com/SciML/DiffEqFlux.jl"}]}],g=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"RegionGrids.jl",desc:"Extracting Gridded Data for a given GeoRegion",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/RegionGrids.jl"}]},{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"LandSea.jl",desc:"Extensible Land-Sea Mask Datasets",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/LandSea.jl"}]}],m=[{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASAPrecipitation.jl",desc:"Downloading, Extracting and Analyzing NASA Satellite Precipitation Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASAPrecipitation.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"ERA5Reanalysis.jl",desc:"Downloading, Extracting and Analyzing ERA5 Reanalysis Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/ERA5Reanalysis.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASABrightnessTemperature.jl",desc:"Downloading, Extracting and Analyzing NASA Brightness Temperature Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASABrightnessTemperature.jl"}]}];return(b,e)=>(u(),p("div",null,[t(n(c),null,{default:s(()=>[t(n(r),null,{title:s(()=>e[0]||(e[0]=[a("Ecosystem")])),_:1}),t(n(i),null,{title:s(()=>e[1]||(e[1]=[a("GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:l})]),_:1}),t(n(i),null,{title:s(()=>e[2]||(e[2]=[a("Frameworks Extending GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:g})]),_:1}),t(n(i),null,{title:s(()=>e[3]||(e[3]=[a("The GeoRegions Ecosystem")])),members:s(()=>[t(n(o),{size:"small",members:m})]),_:1})]),_:1})]))}});export{y as __pageData,E as default}; +import{V as r,a as i,b as o,c}from"./chunks/theme.BetGdEN7.js";import{c as p,G as t,w as s,k as n,o as u,a}from"./chunks/framework.CEeYBNx8.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"ecosystem.md","filePath":"ecosystem.md","lastUpdated":null}'),d={name:"ecosystem.md"},E=Object.assign(d,{setup(h){const l=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"GeoRegions.jl",desc:"Defining Geographic Regions of Interest for Geospatial Data in Geoscience and Climate.",links:[{icon:"github",link:"https://github.com/SciML/DiffEqFlux.jl"}]}],g=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"RegionGrids.jl",desc:"Extracting Gridded Data for a given GeoRegion",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/RegionGrids.jl"}]},{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"LandSea.jl",desc:"Extensible Land-Sea Mask Datasets",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/LandSea.jl"}]}],m=[{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASAPrecipitation.jl",desc:"Downloading, Extracting and Analyzing NASA Satellite Precipitation Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASAPrecipitation.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"ERA5Reanalysis.jl",desc:"Downloading, Extracting and Analyzing ERA5 Reanalysis Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/ERA5Reanalysis.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASABrightnessTemperature.jl",desc:"Downloading, Extracting and Analyzing NASA Brightness Temperature Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASABrightnessTemperature.jl"}]}];return(b,e)=>(u(),p("div",null,[t(n(c),null,{default:s(()=>[t(n(r),null,{title:s(()=>e[0]||(e[0]=[a("Ecosystem")])),_:1}),t(n(i),null,{title:s(()=>e[1]||(e[1]=[a("GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:l})]),_:1}),t(n(i),null,{title:s(()=>e[2]||(e[2]=[a("Frameworks Extending GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:g})]),_:1}),t(n(i),null,{title:s(()=>e[3]||(e[3]=[a("The GeoRegions Ecosystem")])),members:s(()=>[t(n(o),{size:"small",members:m})]),_:1})]),_:1})]))}});export{y as __pageData,E as default}; diff --git a/dev/assets/ecosystem.md.Db_UaeE4.lean.js b/dev/assets/ecosystem.md.B1xk8bas.lean.js similarity index 97% rename from dev/assets/ecosystem.md.Db_UaeE4.lean.js rename to dev/assets/ecosystem.md.B1xk8bas.lean.js index ee0e405..fe20bcf 100644 --- a/dev/assets/ecosystem.md.Db_UaeE4.lean.js +++ b/dev/assets/ecosystem.md.B1xk8bas.lean.js @@ -1 +1 @@ -import{V as r,a as i,b as o,c}from"./chunks/theme.6nTMTlEW.js";import{c as p,G as t,w as s,k as n,o as u,a}from"./chunks/framework.CEeYBNx8.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"ecosystem.md","filePath":"ecosystem.md","lastUpdated":null}'),d={name:"ecosystem.md"},E=Object.assign(d,{setup(h){const l=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"GeoRegions.jl",desc:"Defining Geographic Regions of Interest for Geospatial Data in Geoscience and Climate.",links:[{icon:"github",link:"https://github.com/SciML/DiffEqFlux.jl"}]}],g=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"RegionGrids.jl",desc:"Extracting Gridded Data for a given GeoRegion",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/RegionGrids.jl"}]},{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"LandSea.jl",desc:"Extensible Land-Sea Mask Datasets",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/LandSea.jl"}]}],m=[{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASAPrecipitation.jl",desc:"Downloading, Extracting and Analyzing NASA Satellite Precipitation Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASAPrecipitation.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"ERA5Reanalysis.jl",desc:"Downloading, Extracting and Analyzing ERA5 Reanalysis Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/ERA5Reanalysis.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASABrightnessTemperature.jl",desc:"Downloading, Extracting and Analyzing NASA Brightness Temperature Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASABrightnessTemperature.jl"}]}];return(b,e)=>(u(),p("div",null,[t(n(c),null,{default:s(()=>[t(n(r),null,{title:s(()=>e[0]||(e[0]=[a("Ecosystem")])),_:1}),t(n(i),null,{title:s(()=>e[1]||(e[1]=[a("GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:l})]),_:1}),t(n(i),null,{title:s(()=>e[2]||(e[2]=[a("Frameworks Extending GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:g})]),_:1}),t(n(i),null,{title:s(()=>e[3]||(e[3]=[a("The GeoRegions Ecosystem")])),members:s(()=>[t(n(o),{size:"small",members:m})]),_:1})]),_:1})]))}});export{y as __pageData,E as default}; +import{V as r,a as i,b as o,c}from"./chunks/theme.BetGdEN7.js";import{c as p,G as t,w as s,k as n,o as u,a}from"./chunks/framework.CEeYBNx8.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"ecosystem.md","filePath":"ecosystem.md","lastUpdated":null}'),d={name:"ecosystem.md"},E=Object.assign(d,{setup(h){const l=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"GeoRegions.jl",desc:"Defining Geographic Regions of Interest for Geospatial Data in Geoscience and Climate.",links:[{icon:"github",link:"https://github.com/SciML/DiffEqFlux.jl"}]}],g=[{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"RegionGrids.jl",desc:"Extracting Gridded Data for a given GeoRegion",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/RegionGrids.jl"}]},{avatar:"https://github.com/GeoRegionsEcosystem.png",name:"LandSea.jl",desc:"Extensible Land-Sea Mask Datasets",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/LandSea.jl"}]}],m=[{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASAPrecipitation.jl",desc:"Downloading, Extracting and Analyzing NASA Satellite Precipitation Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASAPrecipitation.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"ERA5Reanalysis.jl",desc:"Downloading, Extracting and Analyzing ERA5 Reanalysis Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/ERA5Reanalysis.jl"}]},{avatar:"https://raw.githubusercontent.com/natgeo-wong/NASAPrecipitation.jl/main/src/logosmall.png",name:"NASABrightnessTemperature.jl",desc:"Downloading, Extracting and Analyzing NASA Brightness Temperature Data",links:[{icon:"github",link:"https://github.com/GeoRegionsEcosystem/NASABrightnessTemperature.jl"}]}];return(b,e)=>(u(),p("div",null,[t(n(c),null,{default:s(()=>[t(n(r),null,{title:s(()=>e[0]||(e[0]=[a("Ecosystem")])),_:1}),t(n(i),null,{title:s(()=>e[1]||(e[1]=[a("GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:l})]),_:1}),t(n(i),null,{title:s(()=>e[2]||(e[2]=[a("Frameworks Extending GeoRegions.jl")])),members:s(()=>[t(n(o),{size:"small",members:g})]),_:1}),t(n(i),null,{title:s(()=>e[3]||(e[3]=[a("The GeoRegions Ecosystem")])),members:s(()=>[t(n(o),{size:"small",members:m})]),_:1})]),_:1})]))}});export{y as __pageData,E as default}; diff --git a/dev/assets/georegions.md.CwOYOuaL.js b/dev/assets/georegions.md.BBgAVs_5.js similarity index 92% rename from dev/assets/georegions.md.CwOYOuaL.js rename to dev/assets/georegions.md.BBgAVs_5.js index 72ffd28..22bf653 100644 --- a/dev/assets/georegions.md.CwOYOuaL.js +++ b/dev/assets/georegions.md.BBgAVs_5.js @@ -1 +1 @@ -import{_ as a,c as l,a4 as i,j as o,a as t,G as n,B as d,o as r}from"./chunks/framework.CEeYBNx8.js";const j=JSON.parse('{"title":"What is a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"georegions.md","filePath":"georegions.md","lastUpdated":null}'),p={name:"georegions.md"},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""};function u(y,e,f,R,G,k){const s=d("Badge");return r(),l("div",null,[e[12]||(e[12]=i('

What is a GeoRegion?

In essence, a GeoRegion is:

  • a geographical region of interest

  • identified by an ID

  • a subregion of a parent GeoRegion (identified by pID, which must also be a valid ID)

Default GeoRegions

When using GeoRegions.jl, the default GeoRegion should generally be the global domain, specified by GLB and given by the [N,S,E,W] coordinates [90,-90,360,0]. The Global GeoRegion GLB is considered to be a subset of itself.

',4)),o("details",c,[o("summary",null,[e[0]||(e[0]=o("a",{id:"GeoRegions.GeoRegion",href:"#GeoRegions.GeoRegion"},[o("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),e[1]||(e[1]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[2]||(e[2]=i('
julia
GeoRegion

Abstract supertype for geographical regions. All GeoRegion types contain the following fields:

  • ID - A String Type, the identifier for the GeoRegion.

  • pID - A String Type, the identifier for the parent GeoRegion.

  • name - A String Type, the full name of the GeoRegion.

  • bound - A vector of Float Types, defining the [North, South, East, West] boundaries of the GeoRegion.

  • shape - A vector of Point2 (see GeometryBasics.jl) Types, defining a non-rectilinear shape of the GeoRegion

  • geometry - A Polygon Type (see GeometryBasics.jl), which is useful when doing checks on polygons using GeometryOps.jl.

source

',4))]),e[13]||(e[13]=i('

Types of GeoRegions

In GeoRegions.jl, we differentiate between several different types of GeoRegions:

  • Rectilinear GeoRegions are denoted by the RectRegion type, available in all version of GeoRegions.jl

  • Tilted rectangular GeoRegions are denoted by the TiltRegion type, available in ≥v6

  • Polygonal GeoRegions are denoted by the PolyRegion type, available in ≥v2

RectRegions

',4)),o("details",g,[o("summary",null,[e[3]||(e[3]=o("a",{id:"GeoRegions.RectRegion",href:"#GeoRegions.RectRegion"},[o("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[5]||(e[5]=i('
julia
RectRegion <: GeoRegion

A rectangular region on a rectilinear grid. Defined by its N,S,E,W boundaries.

source

',3))]),e[14]||(e[14]=o("h3",{id:"tiltregions",tabindex:"-1"},[t("TiltRegions "),o("a",{class:"header-anchor",href:"#tiltregions","aria-label":'Permalink to "TiltRegions"'},"​")],-1)),o("details",h,[o("summary",null,[e[6]||(e[6]=o("a",{id:"GeoRegions.TiltRegion",href:"#GeoRegions.TiltRegion"},[o("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),e[7]||(e[7]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[8]||(e[8]=i('
julia
TiltRegion <: GeoRegion

A tilted rectangular region on a rectilinear grid. Defined by:

  • the (lon,lat) coordinates of its centre.

  • the width in both the longitude and latitude directions (pre-rotation).

  • the angle of tilt in degrees (clockwise).

In addition to all the fields common to the GeoRegion abstract type, TiltRegions will also contain the following field:

  • tilt : A vector of Float Types, containing [X,Y,ΔX,ΔY,θ], where:
    • X : A Float Type, the longitude coordinate of region centre.

    • Y : A Float Type, the latitude coordinate of region centre.

    • θ : A Float Type, the angle-tilt of rectangular region in degrees in the clockwise direction.

    • ΔX : A Float Type, the half-width in longitude coordinates (before tilting).

    • ΔY : A Float Type, the half-width in latitude coordinates (before tilting).

source

',6))]),e[15]||(e[15]=o("h3",{id:"polyregions",tabindex:"-1"},[t("PolyRegions "),o("a",{class:"header-anchor",href:"#polyregions","aria-label":'Permalink to "PolyRegions"'},"​")],-1)),o("details",b,[o("summary",null,[e[9]||(e[9]=o("a",{id:"GeoRegions.PolyRegion",href:"#GeoRegions.PolyRegion"},[o("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),e[10]||(e[10]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[11]||(e[11]=i('
julia
PolyRegion <: GeoRegion

A polygonal region on a rectilinear lon-lat grid, defined by the (lon,lat) coordinates of its vertices.

source

',3))])])}const T=a(p,[["render",u]]);export{j as __pageData,T as default}; +import{_ as l,c as a,a4 as i,j as o,a as t,G as n,B as d,o as r}from"./chunks/framework.CEeYBNx8.js";const j=JSON.parse('{"title":"What is a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"georegions.md","filePath":"georegions.md","lastUpdated":null}'),p={name:"georegions.md"},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function b(y,e,f,R,G,k){const s=d("Badge");return r(),a("div",null,[e[12]||(e[12]=i('

What is a GeoRegion?

In essence, a GeoRegion is:

  • a geographical region of interest

  • identified by an ID

  • a subregion of a parent GeoRegion (identified by pID, which must also be a valid ID)

Default GeoRegions

When using GeoRegions.jl, the default GeoRegion should generally be the global domain, specified by GLB and given by the [N,S,E,W] coordinates [90,-90,360,0]. The Global GeoRegion GLB is considered to be a subset of itself.

',4)),o("details",c,[o("summary",null,[e[0]||(e[0]=o("a",{id:"GeoRegions.GeoRegion",href:"#GeoRegions.GeoRegion"},[o("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),e[1]||(e[1]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[2]||(e[2]=i('
julia
GeoRegion

Abstract supertype for geographical regions. All GeoRegion types contain the following fields:

  • ID - A String Type, the identifier for the GeoRegion.

  • pID - A String Type, the identifier for the parent GeoRegion.

  • name - A String Type, the full name of the GeoRegion.

  • bound - A vector of Float Types, defining the [North, South, East, West] boundaries of the GeoRegion.

  • shape - A vector of Point2 (see GeometryBasics.jl) Types, defining a non-rectilinear shape of the GeoRegion

  • geometry - A Polygon Type (see GeometryBasics.jl), which is useful when doing checks on polygons using GeometryOps.jl.

source

',4))]),e[13]||(e[13]=i('

Types of GeoRegions

In GeoRegions.jl, we differentiate between several different types of GeoRegions:

  • Rectilinear GeoRegions are denoted by the RectRegion type, available in all version of GeoRegions.jl

  • Tilted rectangular GeoRegions are denoted by the TiltRegion type, available in ≥v6

  • Polygonal GeoRegions are denoted by the PolyRegion type, available in ≥v2

RectRegions

',4)),o("details",g,[o("summary",null,[e[3]||(e[3]=o("a",{id:"GeoRegions.RectRegion",href:"#GeoRegions.RectRegion"},[o("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[5]||(e[5]=i('
julia
RectRegion <: GeoRegion

A rectangular region on a rectilinear grid. Defined by its N,S,E,W boundaries.

source

',3))]),e[14]||(e[14]=o("h3",{id:"tiltregions",tabindex:"-1"},[t("TiltRegions "),o("a",{class:"header-anchor",href:"#tiltregions","aria-label":'Permalink to "TiltRegions"'},"​")],-1)),o("details",h,[o("summary",null,[e[6]||(e[6]=o("a",{id:"GeoRegions.TiltRegion",href:"#GeoRegions.TiltRegion"},[o("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),e[7]||(e[7]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[8]||(e[8]=i('
julia
TiltRegion <: GeoRegion

A tilted rectangular region on a rectilinear grid. Defined by:

  • the (lon,lat) coordinates of its centre.

  • the width in both the longitude and latitude directions (pre-rotation).

  • the angle of tilt in degrees (clockwise).

In addition to all the fields common to the GeoRegion abstract type, TiltRegions will also contain the following field:

  • tilt : A vector of Float Types, containing [X,Y,ΔX,ΔY,θ], where:
    • X : A Float Type, the longitude coordinate of region centre.

    • Y : A Float Type, the latitude coordinate of region centre.

    • θ : A Float Type, the angle-tilt of rectangular region in degrees in the clockwise direction.

    • ΔX : A Float Type, the half-width in longitude coordinates (before tilting).

    • ΔY : A Float Type, the half-width in latitude coordinates (before tilting).

source

',6))]),e[15]||(e[15]=o("h3",{id:"polyregions",tabindex:"-1"},[t("PolyRegions "),o("a",{class:"header-anchor",href:"#polyregions","aria-label":'Permalink to "PolyRegions"'},"​")],-1)),o("details",u,[o("summary",null,[e[9]||(e[9]=o("a",{id:"GeoRegions.PolyRegion",href:"#GeoRegions.PolyRegion"},[o("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),e[10]||(e[10]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[11]||(e[11]=i('
julia
PolyRegion <: GeoRegion

A polygonal region on a rectilinear lon-lat grid, defined by the (lon,lat) coordinates of its vertices.

source

',3))])])}const T=l(p,[["render",b]]);export{j as __pageData,T as default}; diff --git a/dev/assets/georegions.md.CwOYOuaL.lean.js b/dev/assets/georegions.md.BBgAVs_5.lean.js similarity index 92% rename from dev/assets/georegions.md.CwOYOuaL.lean.js rename to dev/assets/georegions.md.BBgAVs_5.lean.js index 72ffd28..22bf653 100644 --- a/dev/assets/georegions.md.CwOYOuaL.lean.js +++ b/dev/assets/georegions.md.BBgAVs_5.lean.js @@ -1 +1 @@ -import{_ as a,c as l,a4 as i,j as o,a as t,G as n,B as d,o as r}from"./chunks/framework.CEeYBNx8.js";const j=JSON.parse('{"title":"What is a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"georegions.md","filePath":"georegions.md","lastUpdated":null}'),p={name:"georegions.md"},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""};function u(y,e,f,R,G,k){const s=d("Badge");return r(),l("div",null,[e[12]||(e[12]=i('

What is a GeoRegion?

In essence, a GeoRegion is:

  • a geographical region of interest

  • identified by an ID

  • a subregion of a parent GeoRegion (identified by pID, which must also be a valid ID)

Default GeoRegions

When using GeoRegions.jl, the default GeoRegion should generally be the global domain, specified by GLB and given by the [N,S,E,W] coordinates [90,-90,360,0]. The Global GeoRegion GLB is considered to be a subset of itself.

',4)),o("details",c,[o("summary",null,[e[0]||(e[0]=o("a",{id:"GeoRegions.GeoRegion",href:"#GeoRegions.GeoRegion"},[o("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),e[1]||(e[1]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[2]||(e[2]=i('
julia
GeoRegion

Abstract supertype for geographical regions. All GeoRegion types contain the following fields:

  • ID - A String Type, the identifier for the GeoRegion.

  • pID - A String Type, the identifier for the parent GeoRegion.

  • name - A String Type, the full name of the GeoRegion.

  • bound - A vector of Float Types, defining the [North, South, East, West] boundaries of the GeoRegion.

  • shape - A vector of Point2 (see GeometryBasics.jl) Types, defining a non-rectilinear shape of the GeoRegion

  • geometry - A Polygon Type (see GeometryBasics.jl), which is useful when doing checks on polygons using GeometryOps.jl.

source

',4))]),e[13]||(e[13]=i('

Types of GeoRegions

In GeoRegions.jl, we differentiate between several different types of GeoRegions:

  • Rectilinear GeoRegions are denoted by the RectRegion type, available in all version of GeoRegions.jl

  • Tilted rectangular GeoRegions are denoted by the TiltRegion type, available in ≥v6

  • Polygonal GeoRegions are denoted by the PolyRegion type, available in ≥v2

RectRegions

',4)),o("details",g,[o("summary",null,[e[3]||(e[3]=o("a",{id:"GeoRegions.RectRegion",href:"#GeoRegions.RectRegion"},[o("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[5]||(e[5]=i('
julia
RectRegion <: GeoRegion

A rectangular region on a rectilinear grid. Defined by its N,S,E,W boundaries.

source

',3))]),e[14]||(e[14]=o("h3",{id:"tiltregions",tabindex:"-1"},[t("TiltRegions "),o("a",{class:"header-anchor",href:"#tiltregions","aria-label":'Permalink to "TiltRegions"'},"​")],-1)),o("details",h,[o("summary",null,[e[6]||(e[6]=o("a",{id:"GeoRegions.TiltRegion",href:"#GeoRegions.TiltRegion"},[o("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),e[7]||(e[7]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[8]||(e[8]=i('
julia
TiltRegion <: GeoRegion

A tilted rectangular region on a rectilinear grid. Defined by:

  • the (lon,lat) coordinates of its centre.

  • the width in both the longitude and latitude directions (pre-rotation).

  • the angle of tilt in degrees (clockwise).

In addition to all the fields common to the GeoRegion abstract type, TiltRegions will also contain the following field:

  • tilt : A vector of Float Types, containing [X,Y,ΔX,ΔY,θ], where:
    • X : A Float Type, the longitude coordinate of region centre.

    • Y : A Float Type, the latitude coordinate of region centre.

    • θ : A Float Type, the angle-tilt of rectangular region in degrees in the clockwise direction.

    • ΔX : A Float Type, the half-width in longitude coordinates (before tilting).

    • ΔY : A Float Type, the half-width in latitude coordinates (before tilting).

source

',6))]),e[15]||(e[15]=o("h3",{id:"polyregions",tabindex:"-1"},[t("PolyRegions "),o("a",{class:"header-anchor",href:"#polyregions","aria-label":'Permalink to "PolyRegions"'},"​")],-1)),o("details",b,[o("summary",null,[e[9]||(e[9]=o("a",{id:"GeoRegions.PolyRegion",href:"#GeoRegions.PolyRegion"},[o("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),e[10]||(e[10]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[11]||(e[11]=i('
julia
PolyRegion <: GeoRegion

A polygonal region on a rectilinear lon-lat grid, defined by the (lon,lat) coordinates of its vertices.

source

',3))])])}const T=a(p,[["render",u]]);export{j as __pageData,T as default}; +import{_ as l,c as a,a4 as i,j as o,a as t,G as n,B as d,o as r}from"./chunks/framework.CEeYBNx8.js";const j=JSON.parse('{"title":"What is a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"georegions.md","filePath":"georegions.md","lastUpdated":null}'),p={name:"georegions.md"},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function b(y,e,f,R,G,k){const s=d("Badge");return r(),a("div",null,[e[12]||(e[12]=i('

What is a GeoRegion?

In essence, a GeoRegion is:

  • a geographical region of interest

  • identified by an ID

  • a subregion of a parent GeoRegion (identified by pID, which must also be a valid ID)

Default GeoRegions

When using GeoRegions.jl, the default GeoRegion should generally be the global domain, specified by GLB and given by the [N,S,E,W] coordinates [90,-90,360,0]. The Global GeoRegion GLB is considered to be a subset of itself.

',4)),o("details",c,[o("summary",null,[e[0]||(e[0]=o("a",{id:"GeoRegions.GeoRegion",href:"#GeoRegions.GeoRegion"},[o("span",{class:"jlbinding"},"GeoRegions.GeoRegion")],-1)),e[1]||(e[1]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[2]||(e[2]=i('
julia
GeoRegion

Abstract supertype for geographical regions. All GeoRegion types contain the following fields:

  • ID - A String Type, the identifier for the GeoRegion.

  • pID - A String Type, the identifier for the parent GeoRegion.

  • name - A String Type, the full name of the GeoRegion.

  • bound - A vector of Float Types, defining the [North, South, East, West] boundaries of the GeoRegion.

  • shape - A vector of Point2 (see GeometryBasics.jl) Types, defining a non-rectilinear shape of the GeoRegion

  • geometry - A Polygon Type (see GeometryBasics.jl), which is useful when doing checks on polygons using GeometryOps.jl.

source

',4))]),e[13]||(e[13]=i('

Types of GeoRegions

In GeoRegions.jl, we differentiate between several different types of GeoRegions:

  • Rectilinear GeoRegions are denoted by the RectRegion type, available in all version of GeoRegions.jl

  • Tilted rectangular GeoRegions are denoted by the TiltRegion type, available in ≥v6

  • Polygonal GeoRegions are denoted by the PolyRegion type, available in ≥v2

RectRegions

',4)),o("details",g,[o("summary",null,[e[3]||(e[3]=o("a",{id:"GeoRegions.RectRegion",href:"#GeoRegions.RectRegion"},[o("span",{class:"jlbinding"},"GeoRegions.RectRegion")],-1)),e[4]||(e[4]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[5]||(e[5]=i('
julia
RectRegion <: GeoRegion

A rectangular region on a rectilinear grid. Defined by its N,S,E,W boundaries.

source

',3))]),e[14]||(e[14]=o("h3",{id:"tiltregions",tabindex:"-1"},[t("TiltRegions "),o("a",{class:"header-anchor",href:"#tiltregions","aria-label":'Permalink to "TiltRegions"'},"​")],-1)),o("details",h,[o("summary",null,[e[6]||(e[6]=o("a",{id:"GeoRegions.TiltRegion",href:"#GeoRegions.TiltRegion"},[o("span",{class:"jlbinding"},"GeoRegions.TiltRegion")],-1)),e[7]||(e[7]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[8]||(e[8]=i('
julia
TiltRegion <: GeoRegion

A tilted rectangular region on a rectilinear grid. Defined by:

  • the (lon,lat) coordinates of its centre.

  • the width in both the longitude and latitude directions (pre-rotation).

  • the angle of tilt in degrees (clockwise).

In addition to all the fields common to the GeoRegion abstract type, TiltRegions will also contain the following field:

  • tilt : A vector of Float Types, containing [X,Y,ΔX,ΔY,θ], where:
    • X : A Float Type, the longitude coordinate of region centre.

    • Y : A Float Type, the latitude coordinate of region centre.

    • θ : A Float Type, the angle-tilt of rectangular region in degrees in the clockwise direction.

    • ΔX : A Float Type, the half-width in longitude coordinates (before tilting).

    • ΔY : A Float Type, the half-width in latitude coordinates (before tilting).

source

',6))]),e[15]||(e[15]=o("h3",{id:"polyregions",tabindex:"-1"},[t("PolyRegions "),o("a",{class:"header-anchor",href:"#polyregions","aria-label":'Permalink to "PolyRegions"'},"​")],-1)),o("details",u,[o("summary",null,[e[9]||(e[9]=o("a",{id:"GeoRegions.PolyRegion",href:"#GeoRegions.PolyRegion"},[o("span",{class:"jlbinding"},"GeoRegions.PolyRegion")],-1)),e[10]||(e[10]=t()),n(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),e[11]||(e[11]=i('
julia
PolyRegion <: GeoRegion

A polygonal region on a rectilinear lon-lat grid, defined by the (lon,lat) coordinates of its vertices.

source

',3))])])}const T=l(p,[["render",b]]);export{j as __pageData,T as default}; diff --git a/dev/assets/legdzym.CaYs2cTv.png b/dev/assets/legdzym.CaYs2cTv.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef0f8d19f642ddb6c86464ddf51ebb0a3766b9e GIT binary patch literal 53474 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 kt!5uXlNi1 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 T+nXMWgxqHMxM4|hk2U`RmdNZg literal 0 HcmV?d00001 diff --git a/dev/assets/tutorials_isequal.md.B5ELEEWc.js b/dev/assets/tutorials_isequal.md.Ch07zynb.js similarity index 67% rename from dev/assets/tutorials_isequal.md.B5ELEEWc.js rename to dev/assets/tutorials_isequal.md.Ch07zynb.js index e70b7dd..d4a778b 100644 --- a/dev/assets/tutorials_isequal.md.B5ELEEWc.js +++ b/dev/assets/tutorials_isequal.md.Ch07zynb.js @@ -1,9 +1,9 @@ import{_ as i,c as e,a4 as a,o as t}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"Equivalence between GeoRegions and their Properties","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/isequal.md","filePath":"tutorials/isequal.md","lastUpdated":null}'),n={name:"tutorials/isequal.md"};function h(l,s,p,o,k,d){return t(),e("div",null,s[0]||(s[0]=[a(`

Equivalence between GeoRegions and their Properties

Now, suppose we have two different GeoRegions, we have constructed several different ways of testing various forms of equivalence.

julia
using GeoRegions

1. Are two GeoRegions Equivalent

If you want to check that two GeoRegions are equivalent, we can use the == or isequal() functions.

1. Strict Equivalence

For == or isequal(geo1,geo2,strict = true) to return true, the following conditions must be satisfied:

  • The ID and pID fields are the same

  • The shape fields define exactly the same geographic region as per the function on()

  • The GeoRegion must be of the same type (i.e., a RectRegion will not considered to be equivalent to a PolyRegion even if they have the same shape)

Let us consider the following example. First, we load a RectRegion and extract its lon and lat coordinates

julia
geo = GeoRegion("GF_SEA")
 lon,lat = coordinates(geo)
-nothing

We define RectRegions that are of the same shape (note that because save = false that the same ID can be used to define these GeoRegions):

julia
geo2 = RectRegion("GF_SEA","GLB","",geo.bound) # Different name
-geo3 = RectRegion("SEA","GLB",geo.name,geo.bound) # Different ID
-geo4 = PolyRegion("GF_SEA","GLB",geo.name,lon,lat) # Different ID
-geo5 = PolyRegion("GF_SEA","GLB","",lon,lat) # Different ID
+nothing

We define RectRegions that are of the same shape (note that because save = false that the same ID can be used to define these GeoRegions):

julia
geo2 = RectRegion("GF_SEA","GLB","",geo.bound)          # Different name
+geo3 = RectRegion("SEA","GLB",geo.name,geo.bound)       # Different ID
+geo4 = PolyRegion("GF_SEA","GLB",geo.name,lon,lat)      # Different ID
+geo5 = PolyRegion("GF_SEA","GLB","",lon,lat)            # Different ID
 geo6 = PolyRegion("GF_SEA","GLB",geo.name,lon.+360,lat) # Shifted by 360º
The Polygonal Region GF_SEA has the following properties:
     Region ID     (ID) : GF_SEA
     Parent ID    (pID) : GLB
@@ -11,12 +11,11 @@ import{_ as i,c as e,a4 as a,o as t}from"./chunks/framework.CEeYBNx8.js";const g
     Bounds   (N,S,E,W) : [20.0, -15.0, 525.0, 450.0]
     Shape      (shape) : Point{2, Float64}[[450.0, 20.0], [525.0, 20.0], [525.0, -15.0], [450.0, -15.0], [450.0, 20.0]]

And we perform the tests with ==:

julia
geo == geo2, # true,  name is not a factor in considering equivalence
 geo == geo3, # false, different ID
-geo == geo4  # false, different GeoRegion type
(true, false, false)

See the API nfor == here

And we perform the tests with isequal()

julia
isequal(geo,geo2), # true,  name is not a factor in considering equivalence
+geo == geo4  # false, different GeoRegion type
(true, false, false)

See the API nfor == here

And we perform the tests with isequal()

julia
isequal(geo,geo2), # true,  name is not a factor in considering equivalence
 isequal(geo,geo3), # false, different ID
-isequal(geo,geo4)  # false, different GeoRegion type
(true, false, false)

See the API nfor isequal() here

1.2 Non-Strict Equivalence

isequal() also has a strict = false option, where we do not care if the GeoRegions being compared are of the same type (i.e., a RectRegion can be equivalent to a PolyRegion as long as the ID, pID and shape fields are equivalent).

So, we can see that

julia
isequal(geo,geo4,strict=false), # true, the shape is the same even though the GeoRegions are of differen types
+isequal(geo,geo4)  # false, different GeoRegion type
(true, false, false)

See the API here

1.2 Non-Strict Equivalence

isequal() also has a strict = false option, where we do not care if the GeoRegions being compared are of the same type (i.e., a RectRegion can be equivalent to a PolyRegion as long as the ID, pID and shape fields are equivalent).

So, we can see that

julia
isequal(geo,geo4,strict=false), # true, the shape is the same even though the GeoRegions are of different types
 isequal(geo,geo5,strict=false), # false, the ID is different
 isequal(geo,geo6,strict=false) # true, shape is same even tho shift is by 360º
(true, true, true)

2. Does there already exist a GeoRegion?

Sometimes, we want to figure out if there exists a GeoRegion geo in a project we have defined (for more information on how to use GeoRegions.jl in projects, see here). We can use the function isgeo() to determine if this is the case. For isgeo() to be true, there must exist another GeoRegion ogeo such that isequal(geo,ogeo) = true.

julia
geo_SEA = RectRegion("GF_SEA","GLB","New Southeast Asia",geo.bound)
-isgeo(geo_SEA)
true

We see here that isgeo(geo,geo_SEA) = true because the ID, pID and shape of the newly defined geo_SEA is the same as geo.

3. Property Checks for GeoRegions

Sometimes, we don't want to check if a GeoRegion specifically exists. Sometimes, we just want to check if an ID or a shape already exists in the current project.

3.1 Checking if an ID already exists

The function isID() allows us to check if an ID is already in use for a current project.

julia
geo_SEA = RectRegion("GF_SEA","GLB","New Southeast Asia",geo.bound)
-isgeo(geo_SEA)
true

3.1 Checking if a GeoRegion has an equivalent shape

The function isgeoshape() allows us to check if another GeoRegion in the project has an equivalent shape.

julia
geo_tmp1 = PolyRegion("TST","GLB","",lon,lat) # lon,lat taken from above example
-isgeoshape(geo_tmp1,path=pwd())
true

3.1 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion

The function isgeoshape() also allows us to check if another GeoRegion in the project has an equivalent shape to that which would be defined by a set of lon and lat vectors.

julia
isgeoshape(lon,lat,path=pwd())
-isgeoshape([20,30,40,20],[10,30,10,10],path=pwd())
false
`,45)]))}const c=i(n,[["render",h]]);export{g as __pageData,c as default}; +isgeo(geo_SEA)
true

We see here that isgeo(geo,geo_SEA) = true because the ID, pID and shape of the newly defined geo_SEA is the same as geo.

See the API here

3. Property Checks for GeoRegions

Sometimes, we don't want to check if a GeoRegion specifically exists. Sometimes, we just want to check if an ID or a shape already exists in the current project.

3.1 Checking if an ID already exists

The function isID() allows us to check if an ID is already in use for a current project.

julia
isID("GF_SEA"), isID("AR6_SEA")
(true, true)

See the API here

3.1 Checking if a GeoRegion has an equivalent shape

The function isgeoshape() allows us to check if another GeoRegion in the project has an equivalent shape.

julia
geo_tmp1 = PolyRegion("TST","GLB","",lon,lat) # lon,lat taken from above example
+isgeoshape(geo_tmp1,path=pwd())
true

See the API here

3.2 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion

The function isgeoshape() also allows us to check if another GeoRegion in the project has an equivalent shape to that which would be defined by a set of lon and lat vectors.

julia
isgeoshape(lon,lat,path=pwd()),                    # lon,lat taken from above example
+isgeoshape([20,30,40,20],[10,30,10,10],path=pwd()) # Randomly defined lon,lat
(true, false)

The first is true but the second is false.

See the API here

`,50)]))}const c=i(n,[["render",h]]);export{g as __pageData,c as default}; diff --git a/dev/assets/tutorials_isequal.md.B5ELEEWc.lean.js b/dev/assets/tutorials_isequal.md.Ch07zynb.lean.js similarity index 67% rename from dev/assets/tutorials_isequal.md.B5ELEEWc.lean.js rename to dev/assets/tutorials_isequal.md.Ch07zynb.lean.js index e70b7dd..d4a778b 100644 --- a/dev/assets/tutorials_isequal.md.B5ELEEWc.lean.js +++ b/dev/assets/tutorials_isequal.md.Ch07zynb.lean.js @@ -1,9 +1,9 @@ import{_ as i,c as e,a4 as a,o as t}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"Equivalence between GeoRegions and their Properties","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/isequal.md","filePath":"tutorials/isequal.md","lastUpdated":null}'),n={name:"tutorials/isequal.md"};function h(l,s,p,o,k,d){return t(),e("div",null,s[0]||(s[0]=[a(`

Equivalence between GeoRegions and their Properties

Now, suppose we have two different GeoRegions, we have constructed several different ways of testing various forms of equivalence.

julia
using GeoRegions

1. Are two GeoRegions Equivalent

If you want to check that two GeoRegions are equivalent, we can use the == or isequal() functions.

1. Strict Equivalence

For == or isequal(geo1,geo2,strict = true) to return true, the following conditions must be satisfied:

  • The ID and pID fields are the same

  • The shape fields define exactly the same geographic region as per the function on()

  • The GeoRegion must be of the same type (i.e., a RectRegion will not considered to be equivalent to a PolyRegion even if they have the same shape)

Let us consider the following example. First, we load a RectRegion and extract its lon and lat coordinates

julia
geo = GeoRegion("GF_SEA")
 lon,lat = coordinates(geo)
-nothing

We define RectRegions that are of the same shape (note that because save = false that the same ID can be used to define these GeoRegions):

julia
geo2 = RectRegion("GF_SEA","GLB","",geo.bound) # Different name
-geo3 = RectRegion("SEA","GLB",geo.name,geo.bound) # Different ID
-geo4 = PolyRegion("GF_SEA","GLB",geo.name,lon,lat) # Different ID
-geo5 = PolyRegion("GF_SEA","GLB","",lon,lat) # Different ID
+nothing

We define RectRegions that are of the same shape (note that because save = false that the same ID can be used to define these GeoRegions):

julia
geo2 = RectRegion("GF_SEA","GLB","",geo.bound)          # Different name
+geo3 = RectRegion("SEA","GLB",geo.name,geo.bound)       # Different ID
+geo4 = PolyRegion("GF_SEA","GLB",geo.name,lon,lat)      # Different ID
+geo5 = PolyRegion("GF_SEA","GLB","",lon,lat)            # Different ID
 geo6 = PolyRegion("GF_SEA","GLB",geo.name,lon.+360,lat) # Shifted by 360º
The Polygonal Region GF_SEA has the following properties:
     Region ID     (ID) : GF_SEA
     Parent ID    (pID) : GLB
@@ -11,12 +11,11 @@ import{_ as i,c as e,a4 as a,o as t}from"./chunks/framework.CEeYBNx8.js";const g
     Bounds   (N,S,E,W) : [20.0, -15.0, 525.0, 450.0]
     Shape      (shape) : Point{2, Float64}[[450.0, 20.0], [525.0, 20.0], [525.0, -15.0], [450.0, -15.0], [450.0, 20.0]]

And we perform the tests with ==:

julia
geo == geo2, # true,  name is not a factor in considering equivalence
 geo == geo3, # false, different ID
-geo == geo4  # false, different GeoRegion type
(true, false, false)

See the API nfor == here

And we perform the tests with isequal()

julia
isequal(geo,geo2), # true,  name is not a factor in considering equivalence
+geo == geo4  # false, different GeoRegion type
(true, false, false)

See the API nfor == here

And we perform the tests with isequal()

julia
isequal(geo,geo2), # true,  name is not a factor in considering equivalence
 isequal(geo,geo3), # false, different ID
-isequal(geo,geo4)  # false, different GeoRegion type
(true, false, false)

See the API nfor isequal() here

1.2 Non-Strict Equivalence

isequal() also has a strict = false option, where we do not care if the GeoRegions being compared are of the same type (i.e., a RectRegion can be equivalent to a PolyRegion as long as the ID, pID and shape fields are equivalent).

So, we can see that

julia
isequal(geo,geo4,strict=false), # true, the shape is the same even though the GeoRegions are of differen types
+isequal(geo,geo4)  # false, different GeoRegion type
(true, false, false)

See the API here

1.2 Non-Strict Equivalence

isequal() also has a strict = false option, where we do not care if the GeoRegions being compared are of the same type (i.e., a RectRegion can be equivalent to a PolyRegion as long as the ID, pID and shape fields are equivalent).

So, we can see that

julia
isequal(geo,geo4,strict=false), # true, the shape is the same even though the GeoRegions are of different types
 isequal(geo,geo5,strict=false), # false, the ID is different
 isequal(geo,geo6,strict=false) # true, shape is same even tho shift is by 360º
(true, true, true)

2. Does there already exist a GeoRegion?

Sometimes, we want to figure out if there exists a GeoRegion geo in a project we have defined (for more information on how to use GeoRegions.jl in projects, see here). We can use the function isgeo() to determine if this is the case. For isgeo() to be true, there must exist another GeoRegion ogeo such that isequal(geo,ogeo) = true.

julia
geo_SEA = RectRegion("GF_SEA","GLB","New Southeast Asia",geo.bound)
-isgeo(geo_SEA)
true

We see here that isgeo(geo,geo_SEA) = true because the ID, pID and shape of the newly defined geo_SEA is the same as geo.

3. Property Checks for GeoRegions

Sometimes, we don't want to check if a GeoRegion specifically exists. Sometimes, we just want to check if an ID or a shape already exists in the current project.

3.1 Checking if an ID already exists

The function isID() allows us to check if an ID is already in use for a current project.

julia
geo_SEA = RectRegion("GF_SEA","GLB","New Southeast Asia",geo.bound)
-isgeo(geo_SEA)
true

3.1 Checking if a GeoRegion has an equivalent shape

The function isgeoshape() allows us to check if another GeoRegion in the project has an equivalent shape.

julia
geo_tmp1 = PolyRegion("TST","GLB","",lon,lat) # lon,lat taken from above example
-isgeoshape(geo_tmp1,path=pwd())
true

3.1 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion

The function isgeoshape() also allows us to check if another GeoRegion in the project has an equivalent shape to that which would be defined by a set of lon and lat vectors.

julia
isgeoshape(lon,lat,path=pwd())
-isgeoshape([20,30,40,20],[10,30,10,10],path=pwd())
false
`,45)]))}const c=i(n,[["render",h]]);export{g as __pageData,c as default}; +isgeo(geo_SEA)
true

We see here that isgeo(geo,geo_SEA) = true because the ID, pID and shape of the newly defined geo_SEA is the same as geo.

See the API here

3. Property Checks for GeoRegions

Sometimes, we don't want to check if a GeoRegion specifically exists. Sometimes, we just want to check if an ID or a shape already exists in the current project.

3.1 Checking if an ID already exists

The function isID() allows us to check if an ID is already in use for a current project.

julia
isID("GF_SEA"), isID("AR6_SEA")
(true, true)

See the API here

3.1 Checking if a GeoRegion has an equivalent shape

The function isgeoshape() allows us to check if another GeoRegion in the project has an equivalent shape.

julia
geo_tmp1 = PolyRegion("TST","GLB","",lon,lat) # lon,lat taken from above example
+isgeoshape(geo_tmp1,path=pwd())
true

See the API here

3.2 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion

The function isgeoshape() also allows us to check if another GeoRegion in the project has an equivalent shape to that which would be defined by a set of lon and lat vectors.

julia
isgeoshape(lon,lat,path=pwd()),                    # lon,lat taken from above example
+isgeoshape([20,30,40,20],[10,30,10,10],path=pwd()) # Randomly defined lon,lat
(true, false)

The first is true but the second is false.

See the API here

`,50)]))}const c=i(n,[["render",h]]);export{g as __pageData,c as default}; diff --git a/dev/assets/tutorials_projects_addreadrm.md.BnjeiRR1.lean.js b/dev/assets/tutorials_projects_addreadrm.md.CTAI436a.js similarity index 98% rename from dev/assets/tutorials_projects_addreadrm.md.BnjeiRR1.lean.js rename to dev/assets/tutorials_projects_addreadrm.md.CTAI436a.js index 7e8983d..95102d3 100644 --- a/dev/assets/tutorials_projects_addreadrm.md.BnjeiRR1.lean.js +++ b/dev/assets/tutorials_projects_addreadrm.md.CTAI436a.js @@ -2,7 +2,7 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g mkpath(joinpath(pwd(),"test")) setupGeoRegions(path=joinpath(pwd(),"test"))

1. Adding custom GeoRegions to your Project

If you wish to automatically save a new GeoRegions as it is created, specify the keyword argument save = true. To specify the directory to which the GeoRegion information is saved to, use the path keyword.

  • RectRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/rectlist.txt

  • TiltRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/tiltlist.txt

  • PolyRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/polylist.txt

Default path Directory

By default, path = joinpath(DEPOT_PATH[1],"files","GeoRegions"). If path is not specified, the information will be saved in the respective custom lists in this directory.

Modification of Custom Lists

While it is possible to do manually modify the lists, it is not recommended to do so, especially for polylist.txt, which is pretty complicated. Instead, you should let GeoRegions.jl do most of the heavy lifting.

You can also add a GeoRegion variable in the workspace that you have not yet saved into the custom lists

julia
geo = PolyRegion(ID, pID, name, ...)
 add(geo, path = ...)

For example, we can do

julia
geo = PolyRegion("TSP","GLB","Test Save PolyRegion",[10,100,-50,10],[20,10,0,20])
-add(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:37.244 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

See the API here

Or we can just directly add the GeoRegion simultaneously when it is defined, as follows:

julia
RectRegion("TSR","GLB","Test Save RectRegion",[40,-20,14,-60],save=true,path=joinpath(pwd(),"test"))
The Rectilinear Region TSR has the following properties:
+add(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:53.188 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

See the API here

Or we can just directly add the GeoRegion simultaneously when it is defined, as follows:

julia
RectRegion("TSR","GLB","Test Save RectRegion",[40,-20,14,-60],save=true,path=joinpath(pwd(),"test"))
The Rectilinear Region TSR has the following properties:
     Region ID     (ID) : TSR
     Parent ID    (pID) : GLB
     Name        (name) : Test Save RectRegion
@@ -43,19 +43,19 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g
     Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]
 
 julia> add(geo,path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:37.584 - GeoRegions.jl - The GeoRegion TSP has already been defined.  Please use another identifier.

We see that we cannot add another GeoRegion with the ID = TSP. In order to replace the GeoRegion associated with this ID with another set of information, you need to overwrite the preexisting information with overwrite()

julia
overwrite(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.061 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

And we reload the GeoRegion associated with the ID = TSP

julia
ply = GeoRegion("TSP",path=joinpath(pwd(),"test"))
The Polygonal Region TSP has the following properties:
+ERROR: 2024-10-01T16:22:53.433 - GeoRegions.jl - The GeoRegion TSP has already been defined.  Please use another identifier.

We see that we cannot add another GeoRegion with the ID = TSP. In order to replace the GeoRegion associated with this ID with another set of information, you need to overwrite the preexisting information with overwrite()

julia
overwrite(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:53.975 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

And we reload the GeoRegion associated with the ID = TSP

julia
ply = GeoRegion("TSP",path=joinpath(pwd(),"test"))
The Polygonal Region TSP has the following properties:
     Region ID     (ID) : TSP
     Parent ID    (pID) : GLB
     Name        (name) : Test Save PolyRegion 2
     Bounds   (N,S,E,W) : [20.0, 0.0, 90.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]

See the API here

5. Removing a custom GeoRegions from your Project

Now, we've realized that you don't really need a GeoRegion anymore, or for some reason you want to delete the information of a particular GeoRegion associate with a certain ID and replace it with a new information, there are two ways to do it:

5.1 Removing a GeoRegion that has been loaded

THe first method is to remove a GeoRegion geo that has already been loaded into the workspace. We use the function rm() to do this

julia
rm(ply,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.160 - GeoRegions.jl - Removing the GeoRegion TSP ...

And now we check if the GeoRegion TSP now exists:

julia
julia> isID("TSP",path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:38.163 - GeoRegions.jl - TSP is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

And we see that it does not.

See the API here

5.2 Removing a GeoRegion based on its ID

The second method is to remove a GeoRegion based on an ID, or its string identifier. We do this with the function rmID()

julia
rmID("TSR",path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.168 - GeoRegions.jl - Removing the GeoRegion TSR ...
julia
julia> isID("TSR",path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:38.197 - GeoRegions.jl - TSR is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

Predefined GeoRegions cannot be removed

You cannot remove GLB, GF_*, SRX_* or AR6_* that have been predefined in GeoRegions.jl

See the API here

6. Removing a the custom GeoRegions lists from your Project

If you use deleteGeoRegions() to remove all the custom lists, you will remove all the custom GeoRegions for the projects and they cannot be retrieved.

julia
TiltRegion("TST","GLB","Test Save TiltRegion",10,5,50,20,30,path=joinpath(pwd(),"test"))
The Tilted Rectilinear Region TST has the following properties:
+    Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]

See the API here

5. Removing a custom GeoRegions from your Project

Now, we've realized that you don't really need a GeoRegion anymore, or for some reason you want to delete the information of a particular GeoRegion associate with a certain ID and replace it with a new information, there are two ways to do it:

5.1 Removing a GeoRegion that has been loaded

THe first method is to remove a GeoRegion geo that has already been loaded into the workspace. We use the function rm() to do this

julia
rm(ply,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:54.062 - GeoRegions.jl - Removing the GeoRegion TSP ...

And now we check if the GeoRegion TSP now exists:

julia
julia> isID("TSP",path=joinpath(pwd(),"test"))
+ERROR: 2024-10-01T16:22:54.065 - GeoRegions.jl - TSP is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

And we see that it does not.

See the API here

5.2 Removing a GeoRegion based on its ID

The second method is to remove a GeoRegion based on an ID, or its string identifier. We do this with the function rmID()

julia
rmID("TSR",path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:54.069 - GeoRegions.jl - Removing the GeoRegion TSR ...
julia
julia> isID("TSR",path=joinpath(pwd(),"test"))
+ERROR: 2024-10-01T16:22:54.095 - GeoRegions.jl - TSR is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

Predefined GeoRegions cannot be removed

You cannot remove GLB, GF_*, SRX_* or AR6_* that have been predefined in GeoRegions.jl

See the API here

6. Removing a the custom GeoRegions lists from your Project

If you use deleteGeoRegions() to remove all the custom lists, you will remove all the custom GeoRegions for the projects and they cannot be retrieved.

julia
TiltRegion("TST","GLB","Test Save TiltRegion",10,5,50,20,30,path=joinpath(pwd(),"test"))
The Tilted Rectilinear Region TST has the following properties:
     Region ID     (ID) : TST
     Parent ID    (pID) : GLB
     Name        (name) : Test Save TiltRegion
     Bounds   (N,S,E,W) : [47.32050807568877, -37.32050807568877, 63.30127018922193, -43.30127018922193]
     Shape      (shape) : Point{2, Float64}[[-43.30127018922193, -2.679491924311229], [-23.30127018922193, -37.32050807568877], [63.30127018922193, 12.679491924311229], [43.30127018922193, 47.32050807568877], [-43.30127018922193, -2.679491924311229]]
-    Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]
julia
deleteGeoRegions(path=joinpath(pwd(),"test"))
┌ Warning: 2024-10-01T07:17:38.257 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/test, all GeoRegion information saved into these files will be permanently lost.
+    Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]
julia
deleteGeoRegions(path=joinpath(pwd(),"test"))
┌ Warning: 2024-10-01T16:22:54.151 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/test, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161

Let's test and see if we can retrieve the user-defined GeoRegions now we have deleted their information from the project.

julia
julia> isID("TST",path=joinpath(pwd(),"test"),throw=false)
 false
`,70)]))}const E=i(t,[["render",h]]);export{g as __pageData,E as default}; diff --git a/dev/assets/tutorials_projects_addreadrm.md.BnjeiRR1.js b/dev/assets/tutorials_projects_addreadrm.md.CTAI436a.lean.js similarity index 98% rename from dev/assets/tutorials_projects_addreadrm.md.BnjeiRR1.js rename to dev/assets/tutorials_projects_addreadrm.md.CTAI436a.lean.js index 7e8983d..95102d3 100644 --- a/dev/assets/tutorials_projects_addreadrm.md.BnjeiRR1.js +++ b/dev/assets/tutorials_projects_addreadrm.md.CTAI436a.lean.js @@ -2,7 +2,7 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g mkpath(joinpath(pwd(),"test")) setupGeoRegions(path=joinpath(pwd(),"test"))

1. Adding custom GeoRegions to your Project

If you wish to automatically save a new GeoRegions as it is created, specify the keyword argument save = true. To specify the directory to which the GeoRegion information is saved to, use the path keyword.

  • RectRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/rectlist.txt

  • TiltRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/tiltlist.txt

  • PolyRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/polylist.txt

Default path Directory

By default, path = joinpath(DEPOT_PATH[1],"files","GeoRegions"). If path is not specified, the information will be saved in the respective custom lists in this directory.

Modification of Custom Lists

While it is possible to do manually modify the lists, it is not recommended to do so, especially for polylist.txt, which is pretty complicated. Instead, you should let GeoRegions.jl do most of the heavy lifting.

You can also add a GeoRegion variable in the workspace that you have not yet saved into the custom lists

julia
geo = PolyRegion(ID, pID, name, ...)
 add(geo, path = ...)

For example, we can do

julia
geo = PolyRegion("TSP","GLB","Test Save PolyRegion",[10,100,-50,10],[20,10,0,20])
-add(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:37.244 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

See the API here

Or we can just directly add the GeoRegion simultaneously when it is defined, as follows:

julia
RectRegion("TSR","GLB","Test Save RectRegion",[40,-20,14,-60],save=true,path=joinpath(pwd(),"test"))
The Rectilinear Region TSR has the following properties:
+add(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:53.188 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

See the API here

Or we can just directly add the GeoRegion simultaneously when it is defined, as follows:

julia
RectRegion("TSR","GLB","Test Save RectRegion",[40,-20,14,-60],save=true,path=joinpath(pwd(),"test"))
The Rectilinear Region TSR has the following properties:
     Region ID     (ID) : TSR
     Parent ID    (pID) : GLB
     Name        (name) : Test Save RectRegion
@@ -43,19 +43,19 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g
     Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]
 
 julia> add(geo,path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:37.584 - GeoRegions.jl - The GeoRegion TSP has already been defined.  Please use another identifier.

We see that we cannot add another GeoRegion with the ID = TSP. In order to replace the GeoRegion associated with this ID with another set of information, you need to overwrite the preexisting information with overwrite()

julia
overwrite(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.061 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

And we reload the GeoRegion associated with the ID = TSP

julia
ply = GeoRegion("TSP",path=joinpath(pwd(),"test"))
The Polygonal Region TSP has the following properties:
+ERROR: 2024-10-01T16:22:53.433 - GeoRegions.jl - The GeoRegion TSP has already been defined.  Please use another identifier.

We see that we cannot add another GeoRegion with the ID = TSP. In order to replace the GeoRegion associated with this ID with another set of information, you need to overwrite the preexisting information with overwrite()

julia
overwrite(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:53.975 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

And we reload the GeoRegion associated with the ID = TSP

julia
ply = GeoRegion("TSP",path=joinpath(pwd(),"test"))
The Polygonal Region TSP has the following properties:
     Region ID     (ID) : TSP
     Parent ID    (pID) : GLB
     Name        (name) : Test Save PolyRegion 2
     Bounds   (N,S,E,W) : [20.0, 0.0, 90.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]

See the API here

5. Removing a custom GeoRegions from your Project

Now, we've realized that you don't really need a GeoRegion anymore, or for some reason you want to delete the information of a particular GeoRegion associate with a certain ID and replace it with a new information, there are two ways to do it:

5.1 Removing a GeoRegion that has been loaded

THe first method is to remove a GeoRegion geo that has already been loaded into the workspace. We use the function rm() to do this

julia
rm(ply,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.160 - GeoRegions.jl - Removing the GeoRegion TSP ...

And now we check if the GeoRegion TSP now exists:

julia
julia> isID("TSP",path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:38.163 - GeoRegions.jl - TSP is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

And we see that it does not.

See the API here

5.2 Removing a GeoRegion based on its ID

The second method is to remove a GeoRegion based on an ID, or its string identifier. We do this with the function rmID()

julia
rmID("TSR",path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.168 - GeoRegions.jl - Removing the GeoRegion TSR ...
julia
julia> isID("TSR",path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:38.197 - GeoRegions.jl - TSR is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

Predefined GeoRegions cannot be removed

You cannot remove GLB, GF_*, SRX_* or AR6_* that have been predefined in GeoRegions.jl

See the API here

6. Removing a the custom GeoRegions lists from your Project

If you use deleteGeoRegions() to remove all the custom lists, you will remove all the custom GeoRegions for the projects and they cannot be retrieved.

julia
TiltRegion("TST","GLB","Test Save TiltRegion",10,5,50,20,30,path=joinpath(pwd(),"test"))
The Tilted Rectilinear Region TST has the following properties:
+    Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]

See the API here

5. Removing a custom GeoRegions from your Project

Now, we've realized that you don't really need a GeoRegion anymore, or for some reason you want to delete the information of a particular GeoRegion associate with a certain ID and replace it with a new information, there are two ways to do it:

5.1 Removing a GeoRegion that has been loaded

THe first method is to remove a GeoRegion geo that has already been loaded into the workspace. We use the function rm() to do this

julia
rm(ply,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:54.062 - GeoRegions.jl - Removing the GeoRegion TSP ...

And now we check if the GeoRegion TSP now exists:

julia
julia> isID("TSP",path=joinpath(pwd(),"test"))
+ERROR: 2024-10-01T16:22:54.065 - GeoRegions.jl - TSP is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

And we see that it does not.

See the API here

5.2 Removing a GeoRegion based on its ID

The second method is to remove a GeoRegion based on an ID, or its string identifier. We do this with the function rmID()

julia
rmID("TSR",path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:54.069 - GeoRegions.jl - Removing the GeoRegion TSR ...
julia
julia> isID("TSR",path=joinpath(pwd(),"test"))
+ERROR: 2024-10-01T16:22:54.095 - GeoRegions.jl - TSR is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

Predefined GeoRegions cannot be removed

You cannot remove GLB, GF_*, SRX_* or AR6_* that have been predefined in GeoRegions.jl

See the API here

6. Removing a the custom GeoRegions lists from your Project

If you use deleteGeoRegions() to remove all the custom lists, you will remove all the custom GeoRegions for the projects and they cannot be retrieved.

julia
TiltRegion("TST","GLB","Test Save TiltRegion",10,5,50,20,30,path=joinpath(pwd(),"test"))
The Tilted Rectilinear Region TST has the following properties:
     Region ID     (ID) : TST
     Parent ID    (pID) : GLB
     Name        (name) : Test Save TiltRegion
     Bounds   (N,S,E,W) : [47.32050807568877, -37.32050807568877, 63.30127018922193, -43.30127018922193]
     Shape      (shape) : Point{2, Float64}[[-43.30127018922193, -2.679491924311229], [-23.30127018922193, -37.32050807568877], [63.30127018922193, 12.679491924311229], [43.30127018922193, 47.32050807568877], [-43.30127018922193, -2.679491924311229]]
-    Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]
julia
deleteGeoRegions(path=joinpath(pwd(),"test"))
┌ Warning: 2024-10-01T07:17:38.257 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/test, all GeoRegion information saved into these files will be permanently lost.
+    Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]
julia
deleteGeoRegions(path=joinpath(pwd(),"test"))
┌ Warning: 2024-10-01T16:22:54.151 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/test, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161

Let's test and see if we can retrieve the user-defined GeoRegions now we have deleted their information from the project.

julia
julia> isID("TST",path=joinpath(pwd(),"test"),throw=false)
 false
`,70)]))}const E=i(t,[["render",h]]);export{g as __pageData,E as default}; diff --git a/dev/assets/tutorials_projects_files.md.YkU8y0Sr.js b/dev/assets/tutorials_projects_files.md.DMhADvsp.js similarity index 77% rename from dev/assets/tutorials_projects_files.md.YkU8y0Sr.js rename to dev/assets/tutorials_projects_files.md.DMhADvsp.js index 9bc2893..4ac4b11 100644 --- a/dev/assets/tutorials_projects_files.md.YkU8y0Sr.js +++ b/dev/assets/tutorials_projects_files.md.DMhADvsp.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c=JSON.parse('{"title":"Files of custom GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/projects/files.md","filePath":"tutorials/projects/files.md","lastUpdated":null}'),t={name:"tutorials/projects/files.md"};function l(p,s,o,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`

Files of custom GeoRegions

This page gives a brief introduction into how to manually defined custom GeoRegions in their respective files.

julia
using GeoRegions
+import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"Files of custom GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/projects/files.md","filePath":"tutorials/projects/files.md","lastUpdated":null}'),t={name:"tutorials/projects/files.md"};function l(p,s,o,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`

Files of custom GeoRegions

This page gives a brief introduction into how to manually defined custom GeoRegions in their respective files.

julia
using GeoRegions
 using DelimitedFiles

RectRegion and TiltRegion Files

Manually defining a RectRegion or a TiltRegion in the rectlist.txt and tiltlist.txt files is relatively simple. Simple follow the order of the headers in the respective files.

Name of GeoRegion

To manually define the name of the GeoRegion, replace all spaces with -. For example, "Southern South America" would be written as "Southern-South-America" in the text file. Please see joinpath($(GeoRegions.geodir),"giorgi.txt") for examples.

Example in rectlist.txt

In rectlist.txt, the header is

# RectRegion
 # List of RectRegion GeoRegions
 # (1)ID, (2)pID, (3)N, (4)W, (5)S, (6)E, (7)Description

Therefore in order to define a RectRegion directly in the filed, we do, for example

TST, GLB, 70, -60, -20, 130, Test-RectRegion-Manual-Add

which is the same as

julia
RectRegion("TST","GLB","Test RectRegion Manual Add",[70,-20,130,-60])

Order of Bounds

Note that in the RectRegion() function, the bound is ordered in [N,S,E,W], but when directly inputing into file, it is in the order N, W, S, E.

Example in tiltlist.txt

In tiltlist.txt, the header is

# TiltRegion
@@ -13,7 +13,18 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c
     "AR6_ENA","GLB","Eastern-North-America", # (ID, pID, Name)
     [-70.0,-90.0,-90.0,-50.0,-77.0,-70.0],   # Longitude vector
     [25.0,25.0,50.0,50.0,31.0,25.0]          # Latitude vector
-)

Additional empty lines

There is an empty line between each PolyRegion being defined. And **there needs to be an additional empty line after the last PolyRegion defined. Please see joinpath($(GeoRegions.geodir),"ar6.txt") as an example.

Listing GeoRegions inside Custom Files

Suppose you have a list of GeoRegions inside a custom file (that is not rectlist.txt, tiltlist.txt or polylist.txt), you can read the GeoRegions defined inside this custom file into your project via readGeoRegions()

julia
download("https://raw.githubusercontent.com/GeoRegionsEcosystem/notebooks/refs/heads/main/files/customrect.txt","test.geo")
+)

Additional empty lines

There is an empty line between each PolyRegion being defined. And **there needs to be an additional empty line after the last PolyRegion defined. Please see joinpath($(GeoRegions.geodir),"ar6.txt") as an example.

A valid polylist.txt file would look something like the following:

# PolyRegion
+# GeoRegions adapted from AR6 Regions (Iturbide et al., 2020; ESSD)
+# (RegID, ParID, Name), X, Y
+                                                # This empty line here *must* exist
+  RegID SRX_ALA, GLB, Alaska/N.W.-Canada        # (ID, pID, Name)
+  RegX  -105, -168, -168, -105, -105            # Longitude vector
+  RegY  60, 60, 72.6, 72.6, 60                  # Latitude vector
+                                                # This empty line here *must* exist
+  RegID SRX_AMZ, GLB, Amazon                    # (ID, pID, Name)
+  RegX  -66.4, -79.7, -68.8, -50, -50, -66.4    # Longitude vector
+  RegY  -20, -1.2, 11.4, 11.4, -20, -20         # Latitude vector
+                                                # This empty line here *must* exist

Listing GeoRegions inside Custom Files

Suppose you have a list of GeoRegions inside a custom file (that is not rectlist.txt, tiltlist.txt or polylist.txt), you can read the GeoRegions defined inside this custom file into your project via readGeoRegions()

julia
download("https://raw.githubusercontent.com/GeoRegionsEcosystem/notebooks/refs/heads/main/files/customrect.txt","test.geo")
 geovec = readGeoRegions("test.geo")
4-element Vector{GeoRegion}:
  The Rectilinear Region TRP has the following properties:
     Region ID     (ID) : TRP
@@ -41,15 +52,15 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c
     Parent ID    (pID) : TRP
     Name        (name) : Western Southeast Asia
     Bounds   (N,S,E,W) : [20.0, -10.0, 130.0, 90.0]
-    Shape      (shape) : Point{2, Float64}[[90.0, 20.0], [130.0, 20.0], [130.0, -10.0], [90.0, -10.0], [90.0, 20.0]]

Adding GeoRegions inside Custom Files

We can directly add the GeoRegions inside such custom files using the function addGeoRegions() as follows:

julia
addGeoRegions("test.geo",path=pwd())
[ Info: 2024-10-01T07:17:39.148 - GeoRegions.jl - Importing user-defined GeoRegions from the file test.geo directly into the custom lists.
-[ Info: 2024-10-01T07:17:39.263 - GeoRegions.jl - Adding the GeoRegion TRP to the list.
-[ Info: 2024-10-01T07:17:39.643 - GeoRegions.jl - Adding the GeoRegion DTP to the list.
-[ Info: 2024-10-01T07:17:39.760 - GeoRegions.jl - Adding the GeoRegion CRB to the list.
-[ Info: 2024-10-01T07:17:39.877 - GeoRegions.jl - Adding the GeoRegion WSEA to the list.

And we test this:

julia
GeoRegion("CRB",path=pwd())
The Rectilinear Region CRB has the following properties:
+    Shape      (shape) : Point{2, Float64}[[90.0, 20.0], [130.0, 20.0], [130.0, -10.0], [90.0, -10.0], [90.0, 20.0]]

See the API here

Adding GeoRegions inside Custom Files

We can directly add the GeoRegions inside such custom files using the function addGeoRegions() as follows:

julia
addGeoRegions("test.geo",path=pwd())
[ Info: 2024-10-01T16:22:55.143 - GeoRegions.jl - Importing user-defined GeoRegions from the file test.geo directly into the custom lists.
+[ Info: 2024-10-01T16:22:55.259 - GeoRegions.jl - Adding the GeoRegion TRP to the list.
+[ Info: 2024-10-01T16:22:55.632 - GeoRegions.jl - Adding the GeoRegion DTP to the list.
+[ Info: 2024-10-01T16:22:55.751 - GeoRegions.jl - Adding the GeoRegion CRB to the list.
+[ Info: 2024-10-01T16:22:55.870 - GeoRegions.jl - Adding the GeoRegion WSEA to the list.

See the API here

And we test this:

julia
GeoRegion("CRB",path=pwd())
The Rectilinear Region CRB has the following properties:
     Region ID     (ID) : CRB
     Parent ID    (pID) : TRP
     Name        (name) : Caribbean Islands
     Bounds   (N,S,E,W) : [25.0, 15.0, -60.0, -90.0]
-    Shape      (shape) : Point{2, Float64}[[-90.0, 25.0], [-60.0, 25.0], [-60.0, 15.0], [-90.0, 15.0], [-90.0, 25.0]]

Now, let's remove the custom GeoRegions we defined above

julia
deleteGeoRegions(path=pwd())
┌ Warning: 2024-10-01T07:17:39.881 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
+    Shape      (shape) : Point{2, Float64}[[-90.0, 25.0], [-60.0, 25.0], [-60.0, 15.0], [-90.0, 15.0], [-90.0, 25.0]]

Now, let's remove the custom GeoRegions we defined above

julia
deleteGeoRegions(path=pwd())
┌ Warning: 2024-10-01T16:22:55.873 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161
julia
julia> GeoRegion("CRB",path=pwd())
-ERROR: 2024-10-01T07:17:39.883 - GeoRegions.jl - CRB is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.
`,49)]))}const r=i(t,[["render",l]]);export{c as __pageData,r as default}; +ERROR: 2024-10-01T16:22:55.875 - GeoRegions.jl - CRB is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.
`,53)]))}const r=i(t,[["render",l]]);export{g as __pageData,r as default}; diff --git a/dev/assets/tutorials_projects_files.md.YkU8y0Sr.lean.js b/dev/assets/tutorials_projects_files.md.DMhADvsp.lean.js similarity index 77% rename from dev/assets/tutorials_projects_files.md.YkU8y0Sr.lean.js rename to dev/assets/tutorials_projects_files.md.DMhADvsp.lean.js index 9bc2893..4ac4b11 100644 --- a/dev/assets/tutorials_projects_files.md.YkU8y0Sr.lean.js +++ b/dev/assets/tutorials_projects_files.md.DMhADvsp.lean.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c=JSON.parse('{"title":"Files of custom GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/projects/files.md","filePath":"tutorials/projects/files.md","lastUpdated":null}'),t={name:"tutorials/projects/files.md"};function l(p,s,o,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`

Files of custom GeoRegions

This page gives a brief introduction into how to manually defined custom GeoRegions in their respective files.

julia
using GeoRegions
+import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"Files of custom GeoRegions","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/projects/files.md","filePath":"tutorials/projects/files.md","lastUpdated":null}'),t={name:"tutorials/projects/files.md"};function l(p,s,o,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`

Files of custom GeoRegions

This page gives a brief introduction into how to manually defined custom GeoRegions in their respective files.

julia
using GeoRegions
 using DelimitedFiles

RectRegion and TiltRegion Files

Manually defining a RectRegion or a TiltRegion in the rectlist.txt and tiltlist.txt files is relatively simple. Simple follow the order of the headers in the respective files.

Name of GeoRegion

To manually define the name of the GeoRegion, replace all spaces with -. For example, "Southern South America" would be written as "Southern-South-America" in the text file. Please see joinpath($(GeoRegions.geodir),"giorgi.txt") for examples.

Example in rectlist.txt

In rectlist.txt, the header is

# RectRegion
 # List of RectRegion GeoRegions
 # (1)ID, (2)pID, (3)N, (4)W, (5)S, (6)E, (7)Description

Therefore in order to define a RectRegion directly in the filed, we do, for example

TST, GLB, 70, -60, -20, 130, Test-RectRegion-Manual-Add

which is the same as

julia
RectRegion("TST","GLB","Test RectRegion Manual Add",[70,-20,130,-60])

Order of Bounds

Note that in the RectRegion() function, the bound is ordered in [N,S,E,W], but when directly inputing into file, it is in the order N, W, S, E.

Example in tiltlist.txt

In tiltlist.txt, the header is

# TiltRegion
@@ -13,7 +13,18 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c
     "AR6_ENA","GLB","Eastern-North-America", # (ID, pID, Name)
     [-70.0,-90.0,-90.0,-50.0,-77.0,-70.0],   # Longitude vector
     [25.0,25.0,50.0,50.0,31.0,25.0]          # Latitude vector
-)

Additional empty lines

There is an empty line between each PolyRegion being defined. And **there needs to be an additional empty line after the last PolyRegion defined. Please see joinpath($(GeoRegions.geodir),"ar6.txt") as an example.

Listing GeoRegions inside Custom Files

Suppose you have a list of GeoRegions inside a custom file (that is not rectlist.txt, tiltlist.txt or polylist.txt), you can read the GeoRegions defined inside this custom file into your project via readGeoRegions()

julia
download("https://raw.githubusercontent.com/GeoRegionsEcosystem/notebooks/refs/heads/main/files/customrect.txt","test.geo")
+)

Additional empty lines

There is an empty line between each PolyRegion being defined. And **there needs to be an additional empty line after the last PolyRegion defined. Please see joinpath($(GeoRegions.geodir),"ar6.txt") as an example.

A valid polylist.txt file would look something like the following:

# PolyRegion
+# GeoRegions adapted from AR6 Regions (Iturbide et al., 2020; ESSD)
+# (RegID, ParID, Name), X, Y
+                                                # This empty line here *must* exist
+  RegID SRX_ALA, GLB, Alaska/N.W.-Canada        # (ID, pID, Name)
+  RegX  -105, -168, -168, -105, -105            # Longitude vector
+  RegY  60, 60, 72.6, 72.6, 60                  # Latitude vector
+                                                # This empty line here *must* exist
+  RegID SRX_AMZ, GLB, Amazon                    # (ID, pID, Name)
+  RegX  -66.4, -79.7, -68.8, -50, -50, -66.4    # Longitude vector
+  RegY  -20, -1.2, 11.4, 11.4, -20, -20         # Latitude vector
+                                                # This empty line here *must* exist

Listing GeoRegions inside Custom Files

Suppose you have a list of GeoRegions inside a custom file (that is not rectlist.txt, tiltlist.txt or polylist.txt), you can read the GeoRegions defined inside this custom file into your project via readGeoRegions()

julia
download("https://raw.githubusercontent.com/GeoRegionsEcosystem/notebooks/refs/heads/main/files/customrect.txt","test.geo")
 geovec = readGeoRegions("test.geo")
4-element Vector{GeoRegion}:
  The Rectilinear Region TRP has the following properties:
     Region ID     (ID) : TRP
@@ -41,15 +52,15 @@ import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const c
     Parent ID    (pID) : TRP
     Name        (name) : Western Southeast Asia
     Bounds   (N,S,E,W) : [20.0, -10.0, 130.0, 90.0]
-    Shape      (shape) : Point{2, Float64}[[90.0, 20.0], [130.0, 20.0], [130.0, -10.0], [90.0, -10.0], [90.0, 20.0]]

Adding GeoRegions inside Custom Files

We can directly add the GeoRegions inside such custom files using the function addGeoRegions() as follows:

julia
addGeoRegions("test.geo",path=pwd())
[ Info: 2024-10-01T07:17:39.148 - GeoRegions.jl - Importing user-defined GeoRegions from the file test.geo directly into the custom lists.
-[ Info: 2024-10-01T07:17:39.263 - GeoRegions.jl - Adding the GeoRegion TRP to the list.
-[ Info: 2024-10-01T07:17:39.643 - GeoRegions.jl - Adding the GeoRegion DTP to the list.
-[ Info: 2024-10-01T07:17:39.760 - GeoRegions.jl - Adding the GeoRegion CRB to the list.
-[ Info: 2024-10-01T07:17:39.877 - GeoRegions.jl - Adding the GeoRegion WSEA to the list.

And we test this:

julia
GeoRegion("CRB",path=pwd())
The Rectilinear Region CRB has the following properties:
+    Shape      (shape) : Point{2, Float64}[[90.0, 20.0], [130.0, 20.0], [130.0, -10.0], [90.0, -10.0], [90.0, 20.0]]

See the API here

Adding GeoRegions inside Custom Files

We can directly add the GeoRegions inside such custom files using the function addGeoRegions() as follows:

julia
addGeoRegions("test.geo",path=pwd())
[ Info: 2024-10-01T16:22:55.143 - GeoRegions.jl - Importing user-defined GeoRegions from the file test.geo directly into the custom lists.
+[ Info: 2024-10-01T16:22:55.259 - GeoRegions.jl - Adding the GeoRegion TRP to the list.
+[ Info: 2024-10-01T16:22:55.632 - GeoRegions.jl - Adding the GeoRegion DTP to the list.
+[ Info: 2024-10-01T16:22:55.751 - GeoRegions.jl - Adding the GeoRegion CRB to the list.
+[ Info: 2024-10-01T16:22:55.870 - GeoRegions.jl - Adding the GeoRegion WSEA to the list.

See the API here

And we test this:

julia
GeoRegion("CRB",path=pwd())
The Rectilinear Region CRB has the following properties:
     Region ID     (ID) : CRB
     Parent ID    (pID) : TRP
     Name        (name) : Caribbean Islands
     Bounds   (N,S,E,W) : [25.0, 15.0, -60.0, -90.0]
-    Shape      (shape) : Point{2, Float64}[[-90.0, 25.0], [-60.0, 25.0], [-60.0, 15.0], [-90.0, 15.0], [-90.0, 25.0]]

Now, let's remove the custom GeoRegions we defined above

julia
deleteGeoRegions(path=pwd())
┌ Warning: 2024-10-01T07:17:39.881 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
+    Shape      (shape) : Point{2, Float64}[[-90.0, 25.0], [-60.0, 25.0], [-60.0, 15.0], [-90.0, 15.0], [-90.0, 25.0]]

Now, let's remove the custom GeoRegions we defined above

julia
deleteGeoRegions(path=pwd())
┌ Warning: 2024-10-01T16:22:55.873 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161
julia
julia> GeoRegion("CRB",path=pwd())
-ERROR: 2024-10-01T07:17:39.883 - GeoRegions.jl - CRB is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.
`,49)]))}const r=i(t,[["render",l]]);export{c as __pageData,r as default}; +ERROR: 2024-10-01T16:22:55.875 - GeoRegions.jl - CRB is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.
`,53)]))}const r=i(t,[["render",l]]);export{g as __pageData,r as default}; diff --git a/dev/assets/tutorials_projects_setup.md.CntRng6H.js b/dev/assets/tutorials_projects_setup.md.CRf-ByLx.js similarity index 98% rename from dev/assets/tutorials_projects_setup.md.CntRng6H.js rename to dev/assets/tutorials_projects_setup.md.CRf-ByLx.js index fd68e7e..fa1692a 100644 --- a/dev/assets/tutorials_projects_setup.md.CntRng6H.js +++ b/dev/assets/tutorials_projects_setup.md.CRf-ByLx.js @@ -1,16 +1,16 @@ import{_ as e,c as i,a4 as a,o as t}from"./chunks/framework.CEeYBNx8.js";const k=JSON.parse('{"title":"GeoRegions.jl for your Research Project","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/projects/setup.md","filePath":"tutorials/projects/setup.md","lastUpdated":null}'),o={name:"tutorials/projects/setup.md"};function n(l,s,p,h,r,d){return t(),i("div",null,s[0]||(s[0]=[a(`

GeoRegions.jl for your Research Project

In previous version of GeoRegions.jl (≤v6), we assume that all user-defined GeoRegions were meant to be universally shared. However, we have come to realize that this can cause problems if different projects have similar identifiers (ID) for different regions.

Therefore in v7 and above, GeoRegions.jl explicitly works on a project basis. This means that: * Predefined GeoRegions (GF, SREX and AR6) will still be available as part of the GeoRegions package. * All user-defined GeoRegions for a project should entail specification of a project directory using the keyword path, so that the GeoRegion can be saved specifically for the project. * Retrieving a GeoRegion for a particular project will require specification of the project directory using path. * By default path is the variable homedir()

1. Setup GeoRegions.jl for your Project

The best way to get started, is to use setupGeoRegions(path = "<directory>") in order to copy over the necessary files that will store your custom user-defined GeoRegions.

julia
using GeoRegions
 setupGeoRegions(path=pwd())

This will copy over the following files: rectlist.txt, polylist.txt, tiltlist.txt, which will stored RectRegions, PolyRegions and TiltRegions respectively.

julia
isfile(joinpath(pwd(),"rectlist.txt")),
 isfile(joinpath(pwd(),"polylist.txt")),
-isfile(joinpath(pwd(),"tiltlist.txt"))
(true, true, true)

If any of these files already exist in path, they will not be overwritten. To specifically overwrite all preexisting user-defined GeoRegions, use the keyword overwrite = true.

julia
setupGeoRegions(path=pwd(),overwrite=true)
┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/rectlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/rectlist.txt ...
+isfile(joinpath(pwd(),"tiltlist.txt"))
(true, true, true)

If any of these files already exist in path, they will not be overwritten. To specifically overwrite all preexisting user-defined GeoRegions, use the keyword overwrite = true.

julia
setupGeoRegions(path=pwd(),overwrite=true)
┌ Warning: 2024-10-01T16:22:55.886 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/rectlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/rectlist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43
-┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/polylist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/polylist.txt ...
+┌ Warning: 2024-10-01T16:22:55.887 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/polylist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/polylist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43
-┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/tiltlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/tiltlist.txt ...
+┌ Warning: 2024-10-01T16:22:55.887 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/tiltlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/tiltlist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43

See the API here

2. Listing out the custom GeoRegions for your Project

You can create a table of all the GeoRegions that have been saved to path using tableGeoRegions() as follows.

julia
tableGeoRegions(;path = ...)

For example, we create a table of user-defined and predefined GeoRegions for the current directory pwd().

Custom GeoRegions are always specified first

We always specify the custom user-defined GeoRegions first, because those are most relevant to a project.

julia
tableGeoRegions(path=pwd(),predefined=false)
 ----- ------------ ------- -------- --------------------------- ------------
   ID       Type      Name    Parent       Bounds [N,S,E,W]           File
  ----- ------------ ------- -------- --------------------------- ------------
   GLB   RectRegion   Globe    GLB     [90.0, -90.0, 360.0, 0.0]   global.txt
- ----- ------------ ------- -------- --------------------------- ------------

Note, we have no custom GeoRegions added, so there is nothing to list right now even though the files exist. If any of rectlist.txt, polylist.txt and tiltlist.txt are not present, a warning will be shown unless the keyword warn = false is set.

See the API here

3. Removing a the custom GeoRegions list from your Project

Say you want to completely clear your project of custom GeoRegions, replacing them with new lists. You can just delete the files directly, or you can do deleteGeoRegions().

Default path is pwd()

For deleteGeoRegions(), the default path is the current directory pwd().

julia
deleteGeoRegions()
┌ Warning: 2024-10-01T07:17:39.913 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
+ ----- ------------ ------- -------- --------------------------- ------------

Note, we have no custom GeoRegions added, so there is nothing to list right now even though the files exist. If any of rectlist.txt, polylist.txt and tiltlist.txt are not present, a warning will be shown unless the keyword warn = false is set.

See the API here

3. Removing a the custom GeoRegions list from your Project

Say you want to completely clear your project of custom GeoRegions, replacing them with new lists. You can just delete the files directly, or you can do deleteGeoRegions().

Default path is pwd()

For deleteGeoRegions(), the default path is the current directory pwd().

julia
deleteGeoRegions()
┌ Warning: 2024-10-01T16:22:55.901 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161

And then we see if rectlist.txt exists!

julia
isfile(joinpath(pwd(),"rectlist.txt")),
 isfile(joinpath(pwd(),"polylist.txt")),
 isfile(joinpath(pwd(),"tiltlist.txt"))
(false, false, false)

See the API here

`,31)]))}const g=e(o,[["render",n]]);export{k as __pageData,g as default}; diff --git a/dev/assets/tutorials_projects_setup.md.CntRng6H.lean.js b/dev/assets/tutorials_projects_setup.md.CRf-ByLx.lean.js similarity index 98% rename from dev/assets/tutorials_projects_setup.md.CntRng6H.lean.js rename to dev/assets/tutorials_projects_setup.md.CRf-ByLx.lean.js index fd68e7e..fa1692a 100644 --- a/dev/assets/tutorials_projects_setup.md.CntRng6H.lean.js +++ b/dev/assets/tutorials_projects_setup.md.CRf-ByLx.lean.js @@ -1,16 +1,16 @@ import{_ as e,c as i,a4 as a,o as t}from"./chunks/framework.CEeYBNx8.js";const k=JSON.parse('{"title":"GeoRegions.jl for your Research Project","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/projects/setup.md","filePath":"tutorials/projects/setup.md","lastUpdated":null}'),o={name:"tutorials/projects/setup.md"};function n(l,s,p,h,r,d){return t(),i("div",null,s[0]||(s[0]=[a(`

GeoRegions.jl for your Research Project

In previous version of GeoRegions.jl (≤v6), we assume that all user-defined GeoRegions were meant to be universally shared. However, we have come to realize that this can cause problems if different projects have similar identifiers (ID) for different regions.

Therefore in v7 and above, GeoRegions.jl explicitly works on a project basis. This means that: * Predefined GeoRegions (GF, SREX and AR6) will still be available as part of the GeoRegions package. * All user-defined GeoRegions for a project should entail specification of a project directory using the keyword path, so that the GeoRegion can be saved specifically for the project. * Retrieving a GeoRegion for a particular project will require specification of the project directory using path. * By default path is the variable homedir()

1. Setup GeoRegions.jl for your Project

The best way to get started, is to use setupGeoRegions(path = "<directory>") in order to copy over the necessary files that will store your custom user-defined GeoRegions.

julia
using GeoRegions
 setupGeoRegions(path=pwd())

This will copy over the following files: rectlist.txt, polylist.txt, tiltlist.txt, which will stored RectRegions, PolyRegions and TiltRegions respectively.

julia
isfile(joinpath(pwd(),"rectlist.txt")),
 isfile(joinpath(pwd(),"polylist.txt")),
-isfile(joinpath(pwd(),"tiltlist.txt"))
(true, true, true)

If any of these files already exist in path, they will not be overwritten. To specifically overwrite all preexisting user-defined GeoRegions, use the keyword overwrite = true.

julia
setupGeoRegions(path=pwd(),overwrite=true)
┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/rectlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/rectlist.txt ...
+isfile(joinpath(pwd(),"tiltlist.txt"))
(true, true, true)

If any of these files already exist in path, they will not be overwritten. To specifically overwrite all preexisting user-defined GeoRegions, use the keyword overwrite = true.

julia
setupGeoRegions(path=pwd(),overwrite=true)
┌ Warning: 2024-10-01T16:22:55.886 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/rectlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/rectlist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43
-┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/polylist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/polylist.txt ...
+┌ Warning: 2024-10-01T16:22:55.887 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/polylist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/polylist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43
-┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/tiltlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/tiltlist.txt ...
+┌ Warning: 2024-10-01T16:22:55.887 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/tiltlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/tiltlist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43

See the API here

2. Listing out the custom GeoRegions for your Project

You can create a table of all the GeoRegions that have been saved to path using tableGeoRegions() as follows.

julia
tableGeoRegions(;path = ...)

For example, we create a table of user-defined and predefined GeoRegions for the current directory pwd().

Custom GeoRegions are always specified first

We always specify the custom user-defined GeoRegions first, because those are most relevant to a project.

julia
tableGeoRegions(path=pwd(),predefined=false)
 ----- ------------ ------- -------- --------------------------- ------------
   ID       Type      Name    Parent       Bounds [N,S,E,W]           File
  ----- ------------ ------- -------- --------------------------- ------------
   GLB   RectRegion   Globe    GLB     [90.0, -90.0, 360.0, 0.0]   global.txt
- ----- ------------ ------- -------- --------------------------- ------------

Note, we have no custom GeoRegions added, so there is nothing to list right now even though the files exist. If any of rectlist.txt, polylist.txt and tiltlist.txt are not present, a warning will be shown unless the keyword warn = false is set.

See the API here

3. Removing a the custom GeoRegions list from your Project

Say you want to completely clear your project of custom GeoRegions, replacing them with new lists. You can just delete the files directly, or you can do deleteGeoRegions().

Default path is pwd()

For deleteGeoRegions(), the default path is the current directory pwd().

julia
deleteGeoRegions()
┌ Warning: 2024-10-01T07:17:39.913 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
+ ----- ------------ ------- -------- --------------------------- ------------

Note, we have no custom GeoRegions added, so there is nothing to list right now even though the files exist. If any of rectlist.txt, polylist.txt and tiltlist.txt are not present, a warning will be shown unless the keyword warn = false is set.

See the API here

3. Removing a the custom GeoRegions list from your Project

Say you want to completely clear your project of custom GeoRegions, replacing them with new lists. You can just delete the files directly, or you can do deleteGeoRegions().

Default path is pwd()

For deleteGeoRegions(), the default path is the current directory pwd().

julia
deleteGeoRegions()
┌ Warning: 2024-10-01T16:22:55.901 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161

And then we see if rectlist.txt exists!

julia
isfile(joinpath(pwd(),"rectlist.txt")),
 isfile(joinpath(pwd(),"polylist.txt")),
 isfile(joinpath(pwd(),"tiltlist.txt"))
(false, false, false)

See the API here

`,31)]))}const g=e(o,[["render",n]]);export{k as __pageData,g as default}; diff --git a/dev/assets/tutorials_using_isin.md.Bz1YxGv5.js b/dev/assets/tutorials_using_isin.md.Bz1YxGv5.js deleted file mode 100644 index ffea272..0000000 --- a/dev/assets/tutorials_using_isin.md.Bz1YxGv5.js +++ /dev/null @@ -1,72 +0,0 @@ -import{_ as a,c as n,a4 as i,o as e}from"./chunks/framework.CEeYBNx8.js";const r=JSON.parse('{"title":"Is it in a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/isin.md","filePath":"tutorials/using/isin.md","lastUpdated":null}'),t={name:"tutorials/using/isin.md"};function p(l,s,o,h,c,d){return e(),n("div",null,s[0]||(s[0]=[i(`

Is it in a GeoRegion?

When dealing with geographic data, we often wish to check if a point or region is inside another region. GeoRegions.jl allows you to perform this check easily with the function isinGeoRegion.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is within a GeoRegion.

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

Is a Point in a GeoRegion?

As an example, let us test if a point is in GeoRegion AR6_EAO, defined in the blue bounding box below. We define the below points:

  • Point A at coordinates (-20,5)

  • Point B at coordinates (340,5)

  • Point C at coordinates (30,15)

julia
A = Point(-20,5)
-B = Point(340,5)
-C = Point(-45,-7.5)
-geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
-    Region ID     (ID) : AR6_EAO
-    Parent ID    (pID) : GLB
-    Name        (name) : Equatorial Atlantic Ocean
-    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Here, we note that the coordinates of the GeoRegion (Equatorial Atlantic Ocean) are given in the bounds of (-180,180). It is trivial in this case to calculate if points A and C are within the bounds of the GeoRegion.

@example
slon,slat = coordinates(geo)
-aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
-fig = Figure()
-ax = Axis(
-    fig[1,1],width=750,height=750/aspect,
-    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
-)
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon,slat,linewidth=5)
-scatter!(ax,A,markersize=20)
-scatter!(ax,C,markersize=20)
-resize_to_layout!(fig)
-fig

By eye it is easy to see that Point A is inside the GeoRegion. However, C is not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function in()

julia
in(A,geo), # Point A
-in(C,geo)  # Point C
(true, false)

But what about Point B? Point B is also very obvious within the bounds of the GeoRegion, it is simply that the longitude of Point A is shifted by 360º such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
in(B,geo)
true

See the API here

Is a GeoRegion inside a GeoRegion?

Since any arbitrary geographic region can be defined as a GeoRegion, the natural extension now is to determine if a GeoRegion is wholly within another GeoRegion.

Let us consider an arbitrary GeoRegion BIG, and other smaller GeoRegions TS1-4 as defined below, and plot them on a map.

@example
geo_BIG = PolyRegion(
-    "BIG","GLB","A Big Region",
-    [-120,-100,-100,-80,-30,15,45,75,90,115,120,105,85,45,20,-5,-45,-80,-120],
-    [0,10,30,50,40,50,55,44,32,30,12,8,5,0,-10,-30,-40,-43,0]
-)
-geo_TS1 = RectRegion("TS1","GLB","Test Region 1",[45,20,20,-70])
-geo_TS2 = PolyRegion("TS2","GLB","Test Region 2",[60,90,110,90,60],[20,25,20,15,20])
-geo_TS3 = PolyRegion(
-    "TS3","GLB","Test Region 3",
-    [-110,-98,-95,-90,-80,-100,-110,-110],
-    [0,10,20,15,5,0,-20,0]
-)
-geo_TS4 = PolyRegion(
-    "TS4","GLB","Test Region 4",
-    [300,325,330,355,330,325,320,300],
-    [-10,-5,0,-10,-30,-35,-20,-10]
-)
-
-slon_b,slat_b = coordinates(geo_BIG)
-slon_1,slat_1 = coordinates(geo_TS1)
-slon_2,slat_2 = coordinates(geo_TS2)
-slon_3,slat_3 = coordinates(geo_TS3)
-slon_4,slat_4 = coordinates(geo_TS4)
-
-fig = Figure()
-
-ax = Axis(
-    fig[1,1],width=750,height=750/2,
-    limits=(-180,180,-90,90)
-)
-
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon_b,slat_b,linewidth=5,color=:blue)
-lines!(ax,slon_1,slat_1,linewidth=5,color=:red)
-lines!(ax,slon_2,slat_2,linewidth=5,color=:green)
-lines!(ax,slon_3,slat_3,linewidth=5,color=:red)
-lines!(ax,slon_4.-360,slat_4,linewidth=5,color=:green)
-
-resize_to_layout!(fig)
-fig

We see by eye that GeoRegion TS2 and TS4 are in the BIG region, but the other GeoRegions are not. Now let us verify this with in()

julia
in(geo_TS1,geo_BIG),
-in(geo_TS2,geo_BIG),
-in(geo_TS3,geo_BIG),
-in(geo_TS4,geo_BIG)
(false, true, false, true)

And we see that this is indeed the case.

See the API here.

`,27)]))}const k=a(t,[["render",p]]);export{r as __pageData,k as default}; diff --git a/dev/assets/tutorials_using_isin.md.Bz1YxGv5.lean.js b/dev/assets/tutorials_using_isin.md.Bz1YxGv5.lean.js deleted file mode 100644 index ffea272..0000000 --- a/dev/assets/tutorials_using_isin.md.Bz1YxGv5.lean.js +++ /dev/null @@ -1,72 +0,0 @@ -import{_ as a,c as n,a4 as i,o as e}from"./chunks/framework.CEeYBNx8.js";const r=JSON.parse('{"title":"Is it in a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/isin.md","filePath":"tutorials/using/isin.md","lastUpdated":null}'),t={name:"tutorials/using/isin.md"};function p(l,s,o,h,c,d){return e(),n("div",null,s[0]||(s[0]=[i(`

Is it in a GeoRegion?

When dealing with geographic data, we often wish to check if a point or region is inside another region. GeoRegions.jl allows you to perform this check easily with the function isinGeoRegion.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is within a GeoRegion.

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

Is a Point in a GeoRegion?

As an example, let us test if a point is in GeoRegion AR6_EAO, defined in the blue bounding box below. We define the below points:

  • Point A at coordinates (-20,5)

  • Point B at coordinates (340,5)

  • Point C at coordinates (30,15)

julia
A = Point(-20,5)
-B = Point(340,5)
-C = Point(-45,-7.5)
-geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
-    Region ID     (ID) : AR6_EAO
-    Parent ID    (pID) : GLB
-    Name        (name) : Equatorial Atlantic Ocean
-    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Here, we note that the coordinates of the GeoRegion (Equatorial Atlantic Ocean) are given in the bounds of (-180,180). It is trivial in this case to calculate if points A and C are within the bounds of the GeoRegion.

@example
slon,slat = coordinates(geo)
-aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
-fig = Figure()
-ax = Axis(
-    fig[1,1],width=750,height=750/aspect,
-    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
-)
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon,slat,linewidth=5)
-scatter!(ax,A,markersize=20)
-scatter!(ax,C,markersize=20)
-resize_to_layout!(fig)
-fig

By eye it is easy to see that Point A is inside the GeoRegion. However, C is not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function in()

julia
in(A,geo), # Point A
-in(C,geo)  # Point C
(true, false)

But what about Point B? Point B is also very obvious within the bounds of the GeoRegion, it is simply that the longitude of Point A is shifted by 360º such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
in(B,geo)
true

See the API here

Is a GeoRegion inside a GeoRegion?

Since any arbitrary geographic region can be defined as a GeoRegion, the natural extension now is to determine if a GeoRegion is wholly within another GeoRegion.

Let us consider an arbitrary GeoRegion BIG, and other smaller GeoRegions TS1-4 as defined below, and plot them on a map.

@example
geo_BIG = PolyRegion(
-    "BIG","GLB","A Big Region",
-    [-120,-100,-100,-80,-30,15,45,75,90,115,120,105,85,45,20,-5,-45,-80,-120],
-    [0,10,30,50,40,50,55,44,32,30,12,8,5,0,-10,-30,-40,-43,0]
-)
-geo_TS1 = RectRegion("TS1","GLB","Test Region 1",[45,20,20,-70])
-geo_TS2 = PolyRegion("TS2","GLB","Test Region 2",[60,90,110,90,60],[20,25,20,15,20])
-geo_TS3 = PolyRegion(
-    "TS3","GLB","Test Region 3",
-    [-110,-98,-95,-90,-80,-100,-110,-110],
-    [0,10,20,15,5,0,-20,0]
-)
-geo_TS4 = PolyRegion(
-    "TS4","GLB","Test Region 4",
-    [300,325,330,355,330,325,320,300],
-    [-10,-5,0,-10,-30,-35,-20,-10]
-)
-
-slon_b,slat_b = coordinates(geo_BIG)
-slon_1,slat_1 = coordinates(geo_TS1)
-slon_2,slat_2 = coordinates(geo_TS2)
-slon_3,slat_3 = coordinates(geo_TS3)
-slon_4,slat_4 = coordinates(geo_TS4)
-
-fig = Figure()
-
-ax = Axis(
-    fig[1,1],width=750,height=750/2,
-    limits=(-180,180,-90,90)
-)
-
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon_b,slat_b,linewidth=5,color=:blue)
-lines!(ax,slon_1,slat_1,linewidth=5,color=:red)
-lines!(ax,slon_2,slat_2,linewidth=5,color=:green)
-lines!(ax,slon_3,slat_3,linewidth=5,color=:red)
-lines!(ax,slon_4.-360,slat_4,linewidth=5,color=:green)
-
-resize_to_layout!(fig)
-fig

We see by eye that GeoRegion TS2 and TS4 are in the BIG region, but the other GeoRegions are not. Now let us verify this with in()

julia
in(geo_TS1,geo_BIG),
-in(geo_TS2,geo_BIG),
-in(geo_TS3,geo_BIG),
-in(geo_TS4,geo_BIG)
(false, true, false, true)

And we see that this is indeed the case.

See the API here.

`,27)]))}const k=a(t,[["render",p]]);export{r as __pageData,k as default}; diff --git a/dev/assets/tutorials_using_isin.md.h--XpIv3.js b/dev/assets/tutorials_using_isin.md.h--XpIv3.js new file mode 100644 index 0000000..41a94ad --- /dev/null +++ b/dev/assets/tutorials_using_isin.md.h--XpIv3.js @@ -0,0 +1,72 @@ +import{_ as i,c as a,a4 as h,o as n}from"./chunks/framework.CEeYBNx8.js";const k="/GeoRegions.jl/dev/assets/legdzym.CaYs2cTv.png",t="/GeoRegions.jl/dev/assets/agrzhea.B_4bWRB3.png",o=JSON.parse('{"title":"Is it in a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/isin.md","filePath":"tutorials/using/isin.md","lastUpdated":null}'),l={name:"tutorials/using/isin.md"};function p(e,s,E,d,g,r){return n(),a("div",null,s[0]||(s[0]=[h(`

Is it in a GeoRegion?

When dealing with geographic data, we often wish to check if a point or region is inside another region. GeoRegions.jl allows you to perform this check easily with the function isinGeoRegion.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is within a GeoRegion.

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

Is a Point in a GeoRegion?

As an example, let us test if a point is in GeoRegion AR6_EAO, defined in the blue bounding box below. We define the below points:

  • Point A at coordinates (-20,5)

  • Point B at coordinates (340,5)

  • Point C at coordinates (30,15)

julia
A = Point(-20,5)
+B = Point(340,5)
+C = Point(-45,-7.5)
+geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
+    Region ID     (ID) : AR6_EAO
+    Parent ID    (pID) : GLB
+    Name        (name) : Equatorial Atlantic Ocean
+    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
+    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Here, we note that the coordinates of the GeoRegion (Equatorial Atlantic Ocean) are given in the bounds of (-180,180). It is trivial in this case to calculate if points A and C are within the bounds of the GeoRegion.

julia
slon,slat = coordinates(geo)
+aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
+fig = Figure()
+ax = Axis(
+    fig[1,1],width=750,height=750/aspect,
+    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
+)
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon,slat,linewidth=5)
+scatter!(ax,A,markersize=20)
+scatter!(ax,C,markersize=20)
+resize_to_layout!(fig)
+fig

By eye it is easy to see that Point A is inside the GeoRegion. However, C is not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function in()

julia
in(A,geo), # Point A
+in(C,geo)  # Point C
(true, false)

But what about Point B? Point B is also very obvious within the bounds of the GeoRegion, it is simply that the longitude of Point A is shifted by 360º such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
in(B,geo)
true

See the API here

Is a GeoRegion inside a GeoRegion?

Since any arbitrary geographic region can be defined as a GeoRegion, the natural extension now is to determine if a GeoRegion is wholly within another GeoRegion.

Let us consider an arbitrary GeoRegion BIG, and other smaller GeoRegions TS1-4 as defined below, and plot them on a map.

julia
geo_BIG = PolyRegion(
+    "BIG","GLB","A Big Region",
+    [-120,-100,-100,-80,-30,15,45,75,90,115,120,105,85,45,20,-5,-45,-80,-120],
+    [0,10,30,50,40,50,55,44,32,30,12,8,5,0,-10,-30,-40,-43,0]
+)
+geo_TS1 = RectRegion("TS1","GLB","Test Region 1",[45,20,20,-70])
+geo_TS2 = PolyRegion("TS2","GLB","Test Region 2",[60,90,110,90,60],[20,25,20,15,20])
+geo_TS3 = PolyRegion(
+    "TS3","GLB","Test Region 3",
+    [-110,-98,-95,-90,-80,-100,-110,-110],
+    [0,10,20,15,5,0,-20,0]
+)
+geo_TS4 = PolyRegion(
+    "TS4","GLB","Test Region 4",
+    [300,325,330,355,330,325,320,300],
+    [-10,-5,0,-10,-30,-35,-20,-10]
+)
+
+slon_b,slat_b = coordinates(geo_BIG)
+slon_1,slat_1 = coordinates(geo_TS1)
+slon_2,slat_2 = coordinates(geo_TS2)
+slon_3,slat_3 = coordinates(geo_TS3)
+slon_4,slat_4 = coordinates(geo_TS4)
+
+fig = Figure()
+
+ax = Axis(
+    fig[1,1],width=750,height=750/2,
+    limits=(-180,180,-90,90)
+)
+
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon_b,slat_b,linewidth=5,color=:blue)
+lines!(ax,slon_1,slat_1,linewidth=5,color=:red)
+lines!(ax,slon_2,slat_2,linewidth=5,color=:green)
+lines!(ax,slon_3,slat_3,linewidth=5,color=:red)
+lines!(ax,slon_4.-360,slat_4,linewidth=5,color=:green)
+
+resize_to_layout!(fig)
+fig

We see by eye that GeoRegion TS2 and TS4 are in the BIG region, but the other GeoRegions are not. Now let us verify this with in()

julia
in(geo_TS1,geo_BIG),
+in(geo_TS2,geo_BIG),
+in(geo_TS3,geo_BIG),
+in(geo_TS4,geo_BIG)
(false, true, false, true)

And we see that this is indeed the case.

See the API here.

`,29)]))}const F=i(l,[["render",p]]);export{o as __pageData,F as default}; diff --git a/dev/assets/tutorials_using_isin.md.h--XpIv3.lean.js b/dev/assets/tutorials_using_isin.md.h--XpIv3.lean.js new file mode 100644 index 0000000..41a94ad --- /dev/null +++ b/dev/assets/tutorials_using_isin.md.h--XpIv3.lean.js @@ -0,0 +1,72 @@ +import{_ as i,c as a,a4 as h,o as n}from"./chunks/framework.CEeYBNx8.js";const k="/GeoRegions.jl/dev/assets/legdzym.CaYs2cTv.png",t="/GeoRegions.jl/dev/assets/agrzhea.B_4bWRB3.png",o=JSON.parse('{"title":"Is it in a GeoRegion?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/isin.md","filePath":"tutorials/using/isin.md","lastUpdated":null}'),l={name:"tutorials/using/isin.md"};function p(e,s,E,d,g,r){return n(),a("div",null,s[0]||(s[0]=[h(`

Is it in a GeoRegion?

When dealing with geographic data, we often wish to check if a point or region is inside another region. GeoRegions.jl allows you to perform this check easily with the function isinGeoRegion.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is within a GeoRegion.

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

Is a Point in a GeoRegion?

As an example, let us test if a point is in GeoRegion AR6_EAO, defined in the blue bounding box below. We define the below points:

  • Point A at coordinates (-20,5)

  • Point B at coordinates (340,5)

  • Point C at coordinates (30,15)

julia
A = Point(-20,5)
+B = Point(340,5)
+C = Point(-45,-7.5)
+geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
+    Region ID     (ID) : AR6_EAO
+    Parent ID    (pID) : GLB
+    Name        (name) : Equatorial Atlantic Ocean
+    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
+    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Here, we note that the coordinates of the GeoRegion (Equatorial Atlantic Ocean) are given in the bounds of (-180,180). It is trivial in this case to calculate if points A and C are within the bounds of the GeoRegion.

julia
slon,slat = coordinates(geo)
+aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
+fig = Figure()
+ax = Axis(
+    fig[1,1],width=750,height=750/aspect,
+    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
+)
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon,slat,linewidth=5)
+scatter!(ax,A,markersize=20)
+scatter!(ax,C,markersize=20)
+resize_to_layout!(fig)
+fig

By eye it is easy to see that Point A is inside the GeoRegion. However, C is not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function in()

julia
in(A,geo), # Point A
+in(C,geo)  # Point C
(true, false)

But what about Point B? Point B is also very obvious within the bounds of the GeoRegion, it is simply that the longitude of Point A is shifted by 360º such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
in(B,geo)
true

See the API here

Is a GeoRegion inside a GeoRegion?

Since any arbitrary geographic region can be defined as a GeoRegion, the natural extension now is to determine if a GeoRegion is wholly within another GeoRegion.

Let us consider an arbitrary GeoRegion BIG, and other smaller GeoRegions TS1-4 as defined below, and plot them on a map.

julia
geo_BIG = PolyRegion(
+    "BIG","GLB","A Big Region",
+    [-120,-100,-100,-80,-30,15,45,75,90,115,120,105,85,45,20,-5,-45,-80,-120],
+    [0,10,30,50,40,50,55,44,32,30,12,8,5,0,-10,-30,-40,-43,0]
+)
+geo_TS1 = RectRegion("TS1","GLB","Test Region 1",[45,20,20,-70])
+geo_TS2 = PolyRegion("TS2","GLB","Test Region 2",[60,90,110,90,60],[20,25,20,15,20])
+geo_TS3 = PolyRegion(
+    "TS3","GLB","Test Region 3",
+    [-110,-98,-95,-90,-80,-100,-110,-110],
+    [0,10,20,15,5,0,-20,0]
+)
+geo_TS4 = PolyRegion(
+    "TS4","GLB","Test Region 4",
+    [300,325,330,355,330,325,320,300],
+    [-10,-5,0,-10,-30,-35,-20,-10]
+)
+
+slon_b,slat_b = coordinates(geo_BIG)
+slon_1,slat_1 = coordinates(geo_TS1)
+slon_2,slat_2 = coordinates(geo_TS2)
+slon_3,slat_3 = coordinates(geo_TS3)
+slon_4,slat_4 = coordinates(geo_TS4)
+
+fig = Figure()
+
+ax = Axis(
+    fig[1,1],width=750,height=750/2,
+    limits=(-180,180,-90,90)
+)
+
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon_b,slat_b,linewidth=5,color=:blue)
+lines!(ax,slon_1,slat_1,linewidth=5,color=:red)
+lines!(ax,slon_2,slat_2,linewidth=5,color=:green)
+lines!(ax,slon_3,slat_3,linewidth=5,color=:red)
+lines!(ax,slon_4.-360,slat_4,linewidth=5,color=:green)
+
+resize_to_layout!(fig)
+fig

We see by eye that GeoRegion TS2 and TS4 are in the BIG region, but the other GeoRegions are not. Now let us verify this with in()

julia
in(geo_TS1,geo_BIG),
+in(geo_TS2,geo_BIG),
+in(geo_TS3,geo_BIG),
+in(geo_TS4,geo_BIG)
(false, true, false, true)

And we see that this is indeed the case.

See the API here.

`,29)]))}const F=i(l,[["render",p]]);export{o as __pageData,F as default}; diff --git a/dev/assets/tutorials_using_ison.md.Di2hutUn.js b/dev/assets/tutorials_using_ison.md.Di2hutUn.js new file mode 100644 index 0000000..f295f10 --- /dev/null +++ b/dev/assets/tutorials_using_ison.md.Di2hutUn.js @@ -0,0 +1,49 @@ +import{_ as i,c as a,a4 as n,o as e}from"./chunks/framework.CEeYBNx8.js";const t="/GeoRegions.jl/dev/assets/nkgxioy.4dJckAVD.png",E=JSON.parse('{"title":"Is it on a GeoRegion Boundary?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/ison.md","filePath":"tutorials/using/ison.md","lastUpdated":null}'),h={name:"tutorials/using/ison.md"};function p(l,s,k,o,d,r){return e(),a("div",null,s[0]||(s[0]=[n(`

Is it on a GeoRegion Boundary?

Sometimes, we don't just want information on whether a point is inside a GeoRegion. Sometimes, it is important to know if something is on the boundary of a GeoRegion. This would prove useful in determining if the shapes of two different GeoRegions are equivalent to each other.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is on a GeoRegion boundary.

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

Is a Point on a GeoRegion Boundary?

As an example, let us test if a point is on the perimeter of the GeoRegion AR6_EAO, defined in the blue bounding box below.

julia
geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
+    Region ID     (ID) : AR6_EAO
+    Parent ID    (pID) : GLB
+    Name        (name) : Equatorial Atlantic Ocean
+    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
+    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Next, we select a point along the border

julia
A = Point(-25,7.6)
+B = Point(335,7.6)
+C = Point(-20,5)
+D = Point(-45,-7.5)
2-element Point{2, Float64} with indices SOneTo(2):
+ -45.0
+  -7.5

Here, we note that A and B

julia
slon,slat = coordinates(geo)
+aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
+fig = Figure()
+ax = Axis(
+    fig[1,1],width=750,height=750/aspect,
+    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
+)
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon,slat,linewidth=5)
+scatter!(ax,A,markersize=20)
+scatter!(ax,C,markersize=20)
+scatter!(ax,D,markersize=20)
+resize_to_layout!(fig)
+fig

By eye it is easy to see that Point A is on the GeoRegion perimeter. However, C and D are not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function on()

@example
on(A,geo), # Point A
+on(C,geo), # Point C
+on(D,geo)  # Point D

But what about Point B? Point B is also very obviously on the bounds of the GeoRegion, it is simply that the longitude of Point B is shifted by 360º from A such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

@example
on(B,geo)

See the API here

Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)

We can also use the on() function to determine if the perimeter of a GeoRegion is on the perimeter of another. Or, in simpler terms, if two GeoRegions define the same shape. For example:

@example
on(geo,geo)

See the API here

Which is obvious because we are comparing a GeoRegion against itself. However, let us try something a bit more complicated.

1. circshift() the points defining the GeoRegion

In this test case, we use circshift() to change the starting and ending coordinates of the shape. Therefore, we are defining the same region, just with different start and ending points.

julia
lon,lat = coordinates(geo)
+pop!(lon); lon = circshift(lon,2); lon = vcat(lon,lon[1])
+pop!(lat); lat = circshift(lat,2); lat = vcat(lat,lat[1])
+geo2 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
+    Region ID     (ID) : 
+    Parent ID    (pID) : 
+    Name        (name) : 
+    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
+    Shape      (shape) : Point{2, Float64}[[8.0, 0.0], [8.0, -10.0], [-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0]]

So here, we have circshifted the lon and lat values used to define the GeoRegion such that instead of the start/end points being at (-34,-10), now the start/end points are at (-50,0).

We compare the shapes of the two GeoRegions:

@example
on(geo,geo2),
+on(geo2,geo)

And see that the GeoRegions define the same area.

Order of GeoRegions does not matter in on()

The order should not matter, because in the on() function, the GeoRegions are both compared against each other. So on(geo,geo2) = on(geo2,geo). If you find any edge cases where this is not the case, please let me know and I will look into it.

2. Shifting the GeoRegion by 360º

In this test case, we shift the lon of geo by 360º, so that it is on a (0,360) grid instead of a (-180,180) grid.

julia
lon,lat = coordinates(geo); lon = lon .+ 360
+geo3 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
+    Region ID     (ID) : 
+    Parent ID    (pID) : 
+    Name        (name) : 
+    Bounds   (N,S,E,W) : [7.6, -10.0, 368.0, 310.0]
+    Shape      (shape) : Point{2, Float64}[[326.0, -10.0], [326.0, 0.0], [310.0, 0.0], [310.0, 7.6], [340.0, 7.6], [368.0, 0.0], [368.0, -10.0], [326.0, -10.0]]

We compare the shapes of the two GeoRegions:

@example
on(geo,geo3)

And we see that the GeoRegions define the same area.

`,40)]))}const c=i(h,[["render",p]]);export{E as __pageData,c as default}; diff --git a/dev/assets/tutorials_using_ison.md.Di2hutUn.lean.js b/dev/assets/tutorials_using_ison.md.Di2hutUn.lean.js new file mode 100644 index 0000000..f295f10 --- /dev/null +++ b/dev/assets/tutorials_using_ison.md.Di2hutUn.lean.js @@ -0,0 +1,49 @@ +import{_ as i,c as a,a4 as n,o as e}from"./chunks/framework.CEeYBNx8.js";const t="/GeoRegions.jl/dev/assets/nkgxioy.4dJckAVD.png",E=JSON.parse('{"title":"Is it on a GeoRegion Boundary?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/ison.md","filePath":"tutorials/using/ison.md","lastUpdated":null}'),h={name:"tutorials/using/ison.md"};function p(l,s,k,o,d,r){return e(),a("div",null,s[0]||(s[0]=[n(`

Is it on a GeoRegion Boundary?

Sometimes, we don't just want information on whether a point is inside a GeoRegion. Sometimes, it is important to know if something is on the boundary of a GeoRegion. This would prove useful in determining if the shapes of two different GeoRegions are equivalent to each other.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is on a GeoRegion boundary.

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

Is a Point on a GeoRegion Boundary?

As an example, let us test if a point is on the perimeter of the GeoRegion AR6_EAO, defined in the blue bounding box below.

julia
geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
+    Region ID     (ID) : AR6_EAO
+    Parent ID    (pID) : GLB
+    Name        (name) : Equatorial Atlantic Ocean
+    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
+    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Next, we select a point along the border

julia
A = Point(-25,7.6)
+B = Point(335,7.6)
+C = Point(-20,5)
+D = Point(-45,-7.5)
2-element Point{2, Float64} with indices SOneTo(2):
+ -45.0
+  -7.5

Here, we note that A and B

julia
slon,slat = coordinates(geo)
+aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
+fig = Figure()
+ax = Axis(
+    fig[1,1],width=750,height=750/aspect,
+    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
+)
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon,slat,linewidth=5)
+scatter!(ax,A,markersize=20)
+scatter!(ax,C,markersize=20)
+scatter!(ax,D,markersize=20)
+resize_to_layout!(fig)
+fig

By eye it is easy to see that Point A is on the GeoRegion perimeter. However, C and D are not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function on()

@example
on(A,geo), # Point A
+on(C,geo), # Point C
+on(D,geo)  # Point D

But what about Point B? Point B is also very obviously on the bounds of the GeoRegion, it is simply that the longitude of Point B is shifted by 360º from A such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

@example
on(B,geo)

See the API here

Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)

We can also use the on() function to determine if the perimeter of a GeoRegion is on the perimeter of another. Or, in simpler terms, if two GeoRegions define the same shape. For example:

@example
on(geo,geo)

See the API here

Which is obvious because we are comparing a GeoRegion against itself. However, let us try something a bit more complicated.

1. circshift() the points defining the GeoRegion

In this test case, we use circshift() to change the starting and ending coordinates of the shape. Therefore, we are defining the same region, just with different start and ending points.

julia
lon,lat = coordinates(geo)
+pop!(lon); lon = circshift(lon,2); lon = vcat(lon,lon[1])
+pop!(lat); lat = circshift(lat,2); lat = vcat(lat,lat[1])
+geo2 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
+    Region ID     (ID) : 
+    Parent ID    (pID) : 
+    Name        (name) : 
+    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
+    Shape      (shape) : Point{2, Float64}[[8.0, 0.0], [8.0, -10.0], [-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0]]

So here, we have circshifted the lon and lat values used to define the GeoRegion such that instead of the start/end points being at (-34,-10), now the start/end points are at (-50,0).

We compare the shapes of the two GeoRegions:

@example
on(geo,geo2),
+on(geo2,geo)

And see that the GeoRegions define the same area.

Order of GeoRegions does not matter in on()

The order should not matter, because in the on() function, the GeoRegions are both compared against each other. So on(geo,geo2) = on(geo2,geo). If you find any edge cases where this is not the case, please let me know and I will look into it.

2. Shifting the GeoRegion by 360º

In this test case, we shift the lon of geo by 360º, so that it is on a (0,360) grid instead of a (-180,180) grid.

julia
lon,lat = coordinates(geo); lon = lon .+ 360
+geo3 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
+    Region ID     (ID) : 
+    Parent ID    (pID) : 
+    Name        (name) : 
+    Bounds   (N,S,E,W) : [7.6, -10.0, 368.0, 310.0]
+    Shape      (shape) : Point{2, Float64}[[326.0, -10.0], [326.0, 0.0], [310.0, 0.0], [310.0, 7.6], [340.0, 7.6], [368.0, 0.0], [368.0, -10.0], [326.0, -10.0]]

We compare the shapes of the two GeoRegions:

@example
on(geo,geo3)

And we see that the GeoRegions define the same area.

`,40)]))}const c=i(h,[["render",p]]);export{E as __pageData,c as default}; diff --git a/dev/assets/tutorials_using_ison.md.Yilf_Gc1.js b/dev/assets/tutorials_using_ison.md.Yilf_Gc1.js deleted file mode 100644 index 612df28..0000000 --- a/dev/assets/tutorials_using_ison.md.Yilf_Gc1.js +++ /dev/null @@ -1,49 +0,0 @@ -import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"Is it on a GeoRegion Boundary?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/ison.md","filePath":"tutorials/using/ison.md","lastUpdated":null}'),t={name:"tutorials/using/ison.md"};function p(l,s,o,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`

Is it on a GeoRegion Boundary?

Sometimes, we don't just want information on whether a point is inside a GeoRegion. Sometimes, it is important to know if something is on the boundary of a GeoRegion. This would prove useful in determining if the shapes of two different GeoRegions are equivalent to each other.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is on a GeoRegion boundary.

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

Is a Point on a GeoRegion Boundary?

As an example, let us test if a point is on the perimeter of the GeoRegion AR6_EAO, defined in the blue bounding box below.

julia
geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
-    Region ID     (ID) : AR6_EAO
-    Parent ID    (pID) : GLB
-    Name        (name) : Equatorial Atlantic Ocean
-    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Next, we select a point along the border

julia
A = Point(-25,7.6)
-B = Point(335,7.6)
-C = Point(-20,5)
-D = Point(-45,-7.5)
2-element Point{2, Float64} with indices SOneTo(2):
- -45.0
-  -7.5

Here, we note that A and B

@example
slon,slat = coordinates(geo)
-aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
-fig = Figure()
-ax = Axis(
-    fig[1,1],width=750,height=750/aspect,
-    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
-)
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon,slat,linewidth=5)
-scatter!(ax,A,markersize=20)
-scatter!(ax,C,markersize=20)
-scatter!(ax,D,markersize=20)
-resize_to_layout!(fig)
-fig

By eye it is easy to see that Point A is on the GeoRegion perimeter. However, C and D are not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function on()

julia
on(A,geo), # Point A
-on(C,geo), # Point C
-on(D,geo)  # Point D
(true, false, false)

But what about Point B? Point B is also very obviously on the bounds of the GeoRegion, it is simply that the longitude of Point B is shifted by 360º from A such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
on(B,geo)
true

See the API here

Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)

We can also use the on() function to determine if the perimeter of a GeoRegion is on the perimeter of another. Or, in simpler terms, if two GeoRegions define the same shape. For example:

julia
on(geo,geo)
true

See the API here

Which is obvious because we are comparing a GeoRegion against itself. However, let us try something a bit more complicated.

1. circshift() the points defining the GeoRegion

In this test case, we use circshift() to change the starting and ending coordinates of the shape. Therefore, we are defining the same region, just with different start and ending points.

julia
lon,lat = coordinates(geo)
-pop!(lon); lon = circshift(lon,2); lon = vcat(lon,lon[1])
-pop!(lat); lat = circshift(lat,2); lat = vcat(lat,lat[1])
-geo2 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
-    Region ID     (ID) : 
-    Parent ID    (pID) : 
-    Name        (name) : 
-    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[8.0, 0.0], [8.0, -10.0], [-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0]]

So here, we have circshifted the lon and lat values used to define the GeoRegion such that instead of the start/end points being at (-34,-10), now the start/end points are at (-50,0).

We compare the shapes of the two GeoRegions:

julia
on(geo,geo2),
-on(geo2,geo)
(true, true)

And see that the GeoRegions define the same area.

Order of GeoRegions does not matter in on()

The order should not matter, because in the on() function, the GeoRegions are both compared against each other. So on(geo,geo2) = on(geo2,geo). If you find any edge cases where this is not the case, please let me know and I will look into it.

2. Shifting the GeoRegion by 360º

In this test case, we shift the lon of geo by 360º, so that it is on a (0,360) grid instead of a (-180,180) grid.

julia
lon,lat = coordinates(geo); lon = lon .+ 360
-geo3 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
-    Region ID     (ID) : 
-    Parent ID    (pID) : 
-    Name        (name) : 
-    Bounds   (N,S,E,W) : [7.6, -10.0, 368.0, 310.0]
-    Shape      (shape) : Point{2, Float64}[[326.0, -10.0], [326.0, 0.0], [310.0, 0.0], [310.0, 7.6], [340.0, 7.6], [368.0, 0.0], [368.0, -10.0], [326.0, -10.0]]

We compare the shapes of the two GeoRegions:

julia
on(geo,geo3)
true

And we see that the GeoRegions define the same area.

`,44)]))}const r=i(t,[["render",p]]);export{g as __pageData,r as default}; diff --git a/dev/assets/tutorials_using_ison.md.Yilf_Gc1.lean.js b/dev/assets/tutorials_using_ison.md.Yilf_Gc1.lean.js deleted file mode 100644 index 612df28..0000000 --- a/dev/assets/tutorials_using_ison.md.Yilf_Gc1.lean.js +++ /dev/null @@ -1,49 +0,0 @@ -import{_ as i,c as a,a4 as e,o as n}from"./chunks/framework.CEeYBNx8.js";const g=JSON.parse('{"title":"Is it on a GeoRegion Boundary?","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/using/ison.md","filePath":"tutorials/using/ison.md","lastUpdated":null}'),t={name:"tutorials/using/ison.md"};function p(l,s,o,h,d,k){return n(),a("div",null,s[0]||(s[0]=[e(`

Is it on a GeoRegion Boundary?

Sometimes, we don't just want information on whether a point is inside a GeoRegion. Sometimes, it is important to know if something is on the boundary of a GeoRegion. This would prove useful in determining if the shapes of two different GeoRegions are equivalent to each other.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is on a GeoRegion boundary.

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

Is a Point on a GeoRegion Boundary?

As an example, let us test if a point is on the perimeter of the GeoRegion AR6_EAO, defined in the blue bounding box below.

julia
geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
-    Region ID     (ID) : AR6_EAO
-    Parent ID    (pID) : GLB
-    Name        (name) : Equatorial Atlantic Ocean
-    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Next, we select a point along the border

julia
A = Point(-25,7.6)
-B = Point(335,7.6)
-C = Point(-20,5)
-D = Point(-45,-7.5)
2-element Point{2, Float64} with indices SOneTo(2):
- -45.0
-  -7.5

Here, we note that A and B

@example
slon,slat = coordinates(geo)
-aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
-fig = Figure()
-ax = Axis(
-    fig[1,1],width=750,height=750/aspect,
-    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
-)
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon,slat,linewidth=5)
-scatter!(ax,A,markersize=20)
-scatter!(ax,C,markersize=20)
-scatter!(ax,D,markersize=20)
-resize_to_layout!(fig)
-fig

By eye it is easy to see that Point A is on the GeoRegion perimeter. However, C and D are not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function on()

julia
on(A,geo), # Point A
-on(C,geo), # Point C
-on(D,geo)  # Point D
(true, false, false)

But what about Point B? Point B is also very obviously on the bounds of the GeoRegion, it is simply that the longitude of Point B is shifted by 360º from A such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
on(B,geo)
true

See the API here

Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)

We can also use the on() function to determine if the perimeter of a GeoRegion is on the perimeter of another. Or, in simpler terms, if two GeoRegions define the same shape. For example:

julia
on(geo,geo)
true

See the API here

Which is obvious because we are comparing a GeoRegion against itself. However, let us try something a bit more complicated.

1. circshift() the points defining the GeoRegion

In this test case, we use circshift() to change the starting and ending coordinates of the shape. Therefore, we are defining the same region, just with different start and ending points.

julia
lon,lat = coordinates(geo)
-pop!(lon); lon = circshift(lon,2); lon = vcat(lon,lon[1])
-pop!(lat); lat = circshift(lat,2); lat = vcat(lat,lat[1])
-geo2 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
-    Region ID     (ID) : 
-    Parent ID    (pID) : 
-    Name        (name) : 
-    Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[8.0, 0.0], [8.0, -10.0], [-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0]]

So here, we have circshifted the lon and lat values used to define the GeoRegion such that instead of the start/end points being at (-34,-10), now the start/end points are at (-50,0).

We compare the shapes of the two GeoRegions:

julia
on(geo,geo2),
-on(geo2,geo)
(true, true)

And see that the GeoRegions define the same area.

Order of GeoRegions does not matter in on()

The order should not matter, because in the on() function, the GeoRegions are both compared against each other. So on(geo,geo2) = on(geo2,geo). If you find any edge cases where this is not the case, please let me know and I will look into it.

2. Shifting the GeoRegion by 360º

In this test case, we shift the lon of geo by 360º, so that it is on a (0,360) grid instead of a (-180,180) grid.

julia
lon,lat = coordinates(geo); lon = lon .+ 360
-geo3 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
-    Region ID     (ID) : 
-    Parent ID    (pID) : 
-    Name        (name) : 
-    Bounds   (N,S,E,W) : [7.6, -10.0, 368.0, 310.0]
-    Shape      (shape) : Point{2, Float64}[[326.0, -10.0], [326.0, 0.0], [310.0, 0.0], [310.0, 7.6], [340.0, 7.6], [368.0, 0.0], [368.0, -10.0], [326.0, -10.0]]

We compare the shapes of the two GeoRegions:

julia
on(geo,geo3)
true

And we see that the GeoRegions define the same area.

`,44)]))}const r=i(t,[["render",p]]);export{g as __pageData,r as default}; diff --git a/dev/basics/create.html b/dev/basics/create.html index 1f5b409..7dc59d9 100644 --- a/dev/basics/create.html +++ b/dev/basics/create.html @@ -8,9 +8,9 @@ - + - + @@ -45,7 +45,7 @@ Bounds (N,S,E,W) : [47.32050807568877, -37.32050807568877, 63.30127018922193, -43.30127018922193] Shape (shape) : Point{2, Float64}[[-43.30127018922193, -2.679491924311229], [-23.30127018922193, -37.32050807568877], [63.30127018922193, 12.679491924311229], [43.30127018922193, 47.32050807568877], [-43.30127018922193, -2.679491924311229]] Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]

See the API here

- + \ No newline at end of file diff --git a/dev/basics/read/listall.html b/dev/basics/read/listall.html index 1826996..09ae8ff 100644 --- a/dev/basics/read/listall.html +++ b/dev/basics/read/listall.html @@ -8,9 +8,9 @@ - + - + @@ -147,7 +147,7 @@ AR6_SIO PolyRegion Southern Indian Ocean GLB [-10.0, -36.0, 110.0, 31.0] ar6.txt AR6_SOO PolyRegion Southern Ocean GLB [-36.0, -75.0, 180.0, -180.0] ar6.txt ---------- ------------ --------------------------- -------- ------------------------------- ------------ - + \ No newline at end of file diff --git a/dev/basics/read/overview.html b/dev/basics/read/overview.html index 00c96b1..1928b3f 100644 --- a/dev/basics/read/overview.html +++ b/dev/basics/read/overview.html @@ -8,9 +8,9 @@ - + - + @@ -24,7 +24,7 @@ Name (name) : Globe Bounds (N,S,E,W) : [90.0, -90.0, 360.0, 0.0] Shape (shape) : Point{2, Float64}[[0.0, 90.0], [360.0, 90.0], [360.0, -90.0], [0.0, -90.0], [0.0, 90.0]]

This is the most basic, and yet the most important, functionality of GeoRegions.jl. For the full API of the function GeoRegion() that talks about more advanced uses, see the section on reading custom GeoRegions

See the API here

- + \ No newline at end of file diff --git a/dev/basics/read/predefined.html b/dev/basics/read/predefined.html index 0772085..1c6b77d 100644 --- a/dev/basics/read/predefined.html +++ b/dev/basics/read/predefined.html @@ -8,9 +8,9 @@ - + - + @@ -36,7 +36,7 @@ Name (name) : East Asia Bounds (N,S,E,W) : [45.0, 19.5, 152.0, 100.0] Shape (shape) : Point{2, Float64}[[100.0, 19.5], [100.0, 37.0], [108.0, 37.0], [117.0, 45.0], [152.0, 45.0], [132.0, 25.0], [132.0, 19.5], [100.0, 19.5]]

To see the full list of predefined GeoRegions from Iturbide et al., [2020], go here

- + \ No newline at end of file diff --git a/dev/basics/read/tables.html b/dev/basics/read/tables.html index 776c647..f571a8f 100644 --- a/dev/basics/read/tables.html +++ b/dev/basics/read/tables.html @@ -8,9 +8,9 @@ - + - + @@ -137,7 +137,7 @@ AR6_SIO PolyRegion Southern Indian Ocean GLB [-10.0, -36.0, 110.0, 31.0] ar6.txt AR6_SOO PolyRegion Southern Ocean GLB [-36.0, -75.0, 180.0, -180.0] ar6.txt ---------- ------------ ---------------------------- -------- ------------------------------- ------------

See the API here

- + \ No newline at end of file diff --git a/dev/basics/shape.html b/dev/basics/shape.html index 255c045..3cd1027 100644 --- a/dev/basics/shape.html +++ b/dev/basics/shape.html @@ -8,24 +8,24 @@ - + - + - + -
Skip to content

The Shape of a GeoRegion

In this section, we go through process of extracting information on the shape of the GeoRegion.

Let us now setup the example

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

We load a predefined AR6 GeoRegion for Northwest North America:

julia
geo = GeoRegion("AR6_NWN")
The Polygonal Region AR6_NWN has the following properties:
+    
Skip to content

The Shape of a GeoRegion

In this section, we go through process of extracting information on the shape of the GeoRegion.

Let us now setup the example

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

We load a predefined AR6 GeoRegion for Northwest North America:

julia
geo = GeoRegion("AR6_NWN")
The Polygonal Region AR6_NWN has the following properties:
     Region ID     (ID) : AR6_NWN
     Parent ID    (pID) : GLB
     Name        (name) : Northwest North America
@@ -43,7 +43,7 @@
 resize_to_layout!(fig)
 fig

This plotting works on maps where the projection is equirectangular. However, there are many different map projections, and so we can specify the number of segments n on each side of the shape using the keyword argument n in order to ensure during plotting that is plotted correctly on the projection.

julia
nlon,nlat = coordinates(geo,n=50)
 length(lon), length(nlon)
(9, 401)

Number of Points

The shape is defined by 8 sides. Therefore there are by default 8 + 1 = 9 coordinate points to close the polygon. If we specify 50 segments a side, we therefore have 400 + 1 = 401 coordinate points to close the polygon.

See the API here

- + \ No newline at end of file diff --git a/dev/ecosystem.html b/dev/ecosystem.html index 83d4eec..b2d7632 100644 --- a/dev/ecosystem.html +++ b/dev/ecosystem.html @@ -8,17 +8,17 @@ - + - + - +
Skip to content

Ecosystem

GeoRegions.jl

GeoRegions.jl

GeoRegions.jl

Defining Geographic Regions of Interest for Geospatial Data in Geoscience and Climate.

Frameworks Extending GeoRegions.jl

RegionGrids.jl

RegionGrids.jl

Extracting Gridded Data for a given GeoRegion

LandSea.jl

LandSea.jl

Extensible Land-Sea Mask Datasets

The GeoRegions Ecosystem

NASAPrecipitation.jl

NASAPrecipitation.jl

Downloading, Extracting and Analyzing NASA Satellite Precipitation Data

ERA5Reanalysis.jl

ERA5Reanalysis.jl

Downloading, Extracting and Analyzing ERA5 Reanalysis Data

NASABrightnessTemperature.jl

NASABrightnessTemperature.jl

Downloading, Extracting and Analyzing NASA Brightness Temperature Data

- + \ No newline at end of file diff --git a/dev/georegions.html b/dev/georegions.html index 7d57a5d..5d6cc17 100644 --- a/dev/georegions.html +++ b/dev/georegions.html @@ -8,17 +8,17 @@ - + - + - + -
Skip to content

What is a GeoRegion?

In essence, a GeoRegion is:

  • a geographical region of interest

  • identified by an ID

  • a subregion of a parent GeoRegion (identified by pID, which must also be a valid ID)

Default GeoRegions

When using GeoRegions.jl, the default GeoRegion should generally be the global domain, specified by GLB and given by the [N,S,E,W] coordinates [90,-90,360,0]. The Global GeoRegion GLB is considered to be a subset of itself.

GeoRegions.GeoRegion Type
julia
GeoRegion

Abstract supertype for geographical regions. All GeoRegion types contain the following fields:

  • ID - A String Type, the identifier for the GeoRegion.

  • pID - A String Type, the identifier for the parent GeoRegion.

  • name - A String Type, the full name of the GeoRegion.

  • bound - A vector of Float Types, defining the [North, South, East, West] boundaries of the GeoRegion.

  • shape - A vector of Point2 (see GeometryBasics.jl) Types, defining a non-rectilinear shape of the GeoRegion

  • geometry - A Polygon Type (see GeometryBasics.jl), which is useful when doing checks on polygons using GeometryOps.jl.

source

Types of GeoRegions

In GeoRegions.jl, we differentiate between several different types of GeoRegions:

  • Rectilinear GeoRegions are denoted by the RectRegion type, available in all version of GeoRegions.jl

  • Tilted rectangular GeoRegions are denoted by the TiltRegion type, available in ≥v6

  • Polygonal GeoRegions are denoted by the PolyRegion type, available in ≥v2

RectRegions

GeoRegions.RectRegion Type
julia
RectRegion <: GeoRegion

A rectangular region on a rectilinear grid. Defined by its N,S,E,W boundaries.

source

TiltRegions

GeoRegions.TiltRegion Type
julia
TiltRegion <: GeoRegion

A tilted rectangular region on a rectilinear grid. Defined by:

  • the (lon,lat) coordinates of its centre.

  • the width in both the longitude and latitude directions (pre-rotation).

  • the angle of tilt in degrees (clockwise).

In addition to all the fields common to the GeoRegion abstract type, TiltRegions will also contain the following field:

  • tilt : A vector of Float Types, containing [X,Y,ΔX,ΔY,θ], where:
    • X : A Float Type, the longitude coordinate of region centre.

    • Y : A Float Type, the latitude coordinate of region centre.

    • θ : A Float Type, the angle-tilt of rectangular region in degrees in the clockwise direction.

    • ΔX : A Float Type, the half-width in longitude coordinates (before tilting).

    • ΔY : A Float Type, the half-width in latitude coordinates (before tilting).

source

PolyRegions

GeoRegions.PolyRegion Type
julia
PolyRegion <: GeoRegion

A polygonal region on a rectilinear lon-lat grid, defined by the (lon,lat) coordinates of its vertices.

source

- +
Skip to content

What is a GeoRegion?

In essence, a GeoRegion is:

  • a geographical region of interest

  • identified by an ID

  • a subregion of a parent GeoRegion (identified by pID, which must also be a valid ID)

Default GeoRegions

When using GeoRegions.jl, the default GeoRegion should generally be the global domain, specified by GLB and given by the [N,S,E,W] coordinates [90,-90,360,0]. The Global GeoRegion GLB is considered to be a subset of itself.

GeoRegions.GeoRegion Type
julia
GeoRegion

Abstract supertype for geographical regions. All GeoRegion types contain the following fields:

  • ID - A String Type, the identifier for the GeoRegion.

  • pID - A String Type, the identifier for the parent GeoRegion.

  • name - A String Type, the full name of the GeoRegion.

  • bound - A vector of Float Types, defining the [North, South, East, West] boundaries of the GeoRegion.

  • shape - A vector of Point2 (see GeometryBasics.jl) Types, defining a non-rectilinear shape of the GeoRegion

  • geometry - A Polygon Type (see GeometryBasics.jl), which is useful when doing checks on polygons using GeometryOps.jl.

source

Types of GeoRegions

In GeoRegions.jl, we differentiate between several different types of GeoRegions:

  • Rectilinear GeoRegions are denoted by the RectRegion type, available in all version of GeoRegions.jl

  • Tilted rectangular GeoRegions are denoted by the TiltRegion type, available in ≥v6

  • Polygonal GeoRegions are denoted by the PolyRegion type, available in ≥v2

RectRegions

GeoRegions.RectRegion Type
julia
RectRegion <: GeoRegion

A rectangular region on a rectilinear grid. Defined by its N,S,E,W boundaries.

source

TiltRegions

GeoRegions.TiltRegion Type
julia
TiltRegion <: GeoRegion

A tilted rectangular region on a rectilinear grid. Defined by:

  • the (lon,lat) coordinates of its centre.

  • the width in both the longitude and latitude directions (pre-rotation).

  • the angle of tilt in degrees (clockwise).

In addition to all the fields common to the GeoRegion abstract type, TiltRegions will also contain the following field:

  • tilt : A vector of Float Types, containing [X,Y,ΔX,ΔY,θ], where:
    • X : A Float Type, the longitude coordinate of region centre.

    • Y : A Float Type, the latitude coordinate of region centre.

    • θ : A Float Type, the angle-tilt of rectangular region in degrees in the clockwise direction.

    • ΔX : A Float Type, the half-width in longitude coordinates (before tilting).

    • ΔY : A Float Type, the half-width in latitude coordinates (before tilting).

source

PolyRegions

GeoRegions.PolyRegion Type
julia
PolyRegion <: GeoRegion

A polygonal region on a rectilinear lon-lat grid, defined by the (lon,lat) coordinates of its vertices.

source

+ \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index 01e8d11..4882112 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"api_addreadrm.md":"BOapF7BG","api_create.md":"DiBlGY3W","api_isinonequal.md":"B_kVQHC3","api_project.md":"CxN5HGcY","api_shape.md":"tRnJAzBD","api_tables.md":"Dosp9r3m","basics_create.md":"BvDIg_n0","basics_read_listall.md":"DJzmCRSf","basics_read_overview.md":"C6dbCRPI","basics_read_predefined.md":"CkcpGbG_","basics_read_tables.md":"BpIxE-DA","basics_shape.md":"B7Y4otKP","ecosystem.md":"Db_UaeE4","georegions.md":"CwOYOuaL","index.md":"U-vB7wvh","tutorials_isequal.md":"B5ELEEWc","tutorials_projects_addreadrm.md":"BnjeiRR1","tutorials_projects_files.md":"YkU8y0Sr","tutorials_projects_setup.md":"CntRng6H","tutorials_using_isin.md":"Bz1YxGv5","tutorials_using_ison.md":"Yilf_Gc1"} +{"api_addreadrm.md":"Bre3lcSB","api_create.md":"D6FPTd5d","api_isinonequal.md":"vujw6c_j","api_project.md":"rRFXlQAq","api_shape.md":"ByrUh8hw","api_tables.md":"DJhk53Bu","basics_create.md":"BvDIg_n0","basics_read_listall.md":"DJzmCRSf","basics_read_overview.md":"C6dbCRPI","basics_read_predefined.md":"CkcpGbG_","basics_read_tables.md":"BpIxE-DA","basics_shape.md":"DCZ6l6H5","ecosystem.md":"B1xk8bas","georegions.md":"BBgAVs_5","index.md":"U-vB7wvh","tutorials_isequal.md":"Ch07zynb","tutorials_projects_addreadrm.md":"CTAI436a","tutorials_projects_files.md":"DMhADvsp","tutorials_projects_setup.md":"CRf-ByLx","tutorials_using_isin.md":"h--XpIv3","tutorials_using_ison.md":"Di2hutUn"} diff --git a/dev/index.html b/dev/index.html index 4125858..48ee4db 100644 --- a/dev/index.html +++ b/dev/index.html @@ -8,9 +8,9 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

GeoRegions.jl

Geographic Regions for Geospatial Data

Defining Geographic Regions of Interest for Geospatial Data in Geoscience and Climate.

GeoRegions

Installation Instructions

The latest version of GeoRegions can be installed using the Julia package manager (accessed by pressing ] in the Julia command prompt)

julia
julia> ]
 (@v1.10) pkg> add GeoRegions

You can update GeoRegions.jl to the latest version using

julia
(@v1.10) pkg> update GeoRegions

And if you want to get the latest release without waiting for me to update the Julia Registry (although this generally isn't necessary since I make a point to release patch versions as soon as I find bugs or add new working features), you may fix the version to the main branch of the GitHub repository:

julia
(@v1.10) pkg> add GeoRegions#main

Getting help

If you are interested in using GeoRegions.jl or are trying to figure out how to use it, please feel free to ask me questions and get in touch! Please feel free to open an issue if you have any questions, comments, suggestions, etc!

- + \ No newline at end of file diff --git a/dev/tutorials/isequal.html b/dev/tutorials/isequal.html index 48d1209..90b4696 100644 --- a/dev/tutorials/isequal.html +++ b/dev/tutorials/isequal.html @@ -8,21 +8,21 @@ - + - + - +
Skip to content

Equivalence between GeoRegions and their Properties

Now, suppose we have two different GeoRegions, we have constructed several different ways of testing various forms of equivalence.

julia
using GeoRegions

1. Are two GeoRegions Equivalent

If you want to check that two GeoRegions are equivalent, we can use the == or isequal() functions.

1. Strict Equivalence

For == or isequal(geo1,geo2,strict = true) to return true, the following conditions must be satisfied:

  • The ID and pID fields are the same

  • The shape fields define exactly the same geographic region as per the function on()

  • The GeoRegion must be of the same type (i.e., a RectRegion will not considered to be equivalent to a PolyRegion even if they have the same shape)

Let us consider the following example. First, we load a RectRegion and extract its lon and lat coordinates

julia
geo = GeoRegion("GF_SEA")
 lon,lat = coordinates(geo)
-nothing

We define RectRegions that are of the same shape (note that because save = false that the same ID can be used to define these GeoRegions):

julia
geo2 = RectRegion("GF_SEA","GLB","",geo.bound) # Different name
-geo3 = RectRegion("SEA","GLB",geo.name,geo.bound) # Different ID
-geo4 = PolyRegion("GF_SEA","GLB",geo.name,lon,lat) # Different ID
-geo5 = PolyRegion("GF_SEA","GLB","",lon,lat) # Different ID
+nothing

We define RectRegions that are of the same shape (note that because save = false that the same ID can be used to define these GeoRegions):

julia
geo2 = RectRegion("GF_SEA","GLB","",geo.bound)          # Different name
+geo3 = RectRegion("SEA","GLB",geo.name,geo.bound)       # Different ID
+geo4 = PolyRegion("GF_SEA","GLB",geo.name,lon,lat)      # Different ID
+geo5 = PolyRegion("GF_SEA","GLB","",lon,lat)            # Different ID
 geo6 = PolyRegion("GF_SEA","GLB",geo.name,lon.+360,lat) # Shifted by 360º
The Polygonal Region GF_SEA has the following properties:
     Region ID     (ID) : GF_SEA
     Parent ID    (pID) : GLB
@@ -30,16 +30,15 @@
     Bounds   (N,S,E,W) : [20.0, -15.0, 525.0, 450.0]
     Shape      (shape) : Point{2, Float64}[[450.0, 20.0], [525.0, 20.0], [525.0, -15.0], [450.0, -15.0], [450.0, 20.0]]

And we perform the tests with ==:

julia
geo == geo2, # true,  name is not a factor in considering equivalence
 geo == geo3, # false, different ID
-geo == geo4  # false, different GeoRegion type
(true, false, false)

See the API nfor == here

And we perform the tests with isequal()

julia
isequal(geo,geo2), # true,  name is not a factor in considering equivalence
+geo == geo4  # false, different GeoRegion type
(true, false, false)

See the API nfor == here

And we perform the tests with isequal()

julia
isequal(geo,geo2), # true,  name is not a factor in considering equivalence
 isequal(geo,geo3), # false, different ID
-isequal(geo,geo4)  # false, different GeoRegion type
(true, false, false)

See the API nfor isequal() here

1.2 Non-Strict Equivalence

isequal() also has a strict = false option, where we do not care if the GeoRegions being compared are of the same type (i.e., a RectRegion can be equivalent to a PolyRegion as long as the ID, pID and shape fields are equivalent).

So, we can see that

julia
isequal(geo,geo4,strict=false), # true, the shape is the same even though the GeoRegions are of differen types
+isequal(geo,geo4)  # false, different GeoRegion type
(true, false, false)

See the API here

1.2 Non-Strict Equivalence

isequal() also has a strict = false option, where we do not care if the GeoRegions being compared are of the same type (i.e., a RectRegion can be equivalent to a PolyRegion as long as the ID, pID and shape fields are equivalent).

So, we can see that

julia
isequal(geo,geo4,strict=false), # true, the shape is the same even though the GeoRegions are of different types
 isequal(geo,geo5,strict=false), # false, the ID is different
 isequal(geo,geo6,strict=false) # true, shape is same even tho shift is by 360º
(true, true, true)

2. Does there already exist a GeoRegion?

Sometimes, we want to figure out if there exists a GeoRegion geo in a project we have defined (for more information on how to use GeoRegions.jl in projects, see here). We can use the function isgeo() to determine if this is the case. For isgeo() to be true, there must exist another GeoRegion ogeo such that isequal(geo,ogeo) = true.

julia
geo_SEA = RectRegion("GF_SEA","GLB","New Southeast Asia",geo.bound)
-isgeo(geo_SEA)
true

We see here that isgeo(geo,geo_SEA) = true because the ID, pID and shape of the newly defined geo_SEA is the same as geo.

3. Property Checks for GeoRegions

Sometimes, we don't want to check if a GeoRegion specifically exists. Sometimes, we just want to check if an ID or a shape already exists in the current project.

3.1 Checking if an ID already exists

The function isID() allows us to check if an ID is already in use for a current project.

julia
geo_SEA = RectRegion("GF_SEA","GLB","New Southeast Asia",geo.bound)
-isgeo(geo_SEA)
true

3.1 Checking if a GeoRegion has an equivalent shape

The function isgeoshape() allows us to check if another GeoRegion in the project has an equivalent shape.

julia
geo_tmp1 = PolyRegion("TST","GLB","",lon,lat) # lon,lat taken from above example
-isgeoshape(geo_tmp1,path=pwd())
true

3.1 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion

The function isgeoshape() also allows us to check if another GeoRegion in the project has an equivalent shape to that which would be defined by a set of lon and lat vectors.

julia
isgeoshape(lon,lat,path=pwd())
-isgeoshape([20,30,40,20],[10,30,10,10],path=pwd())
false
- +isgeo(geo_SEA)
true

We see here that isgeo(geo,geo_SEA) = true because the ID, pID and shape of the newly defined geo_SEA is the same as geo.

See the API here

3. Property Checks for GeoRegions

Sometimes, we don't want to check if a GeoRegion specifically exists. Sometimes, we just want to check if an ID or a shape already exists in the current project.

3.1 Checking if an ID already exists

The function isID() allows us to check if an ID is already in use for a current project.

julia
isID("GF_SEA"), isID("AR6_SEA")
(true, true)

See the API here

3.1 Checking if a GeoRegion has an equivalent shape

The function isgeoshape() allows us to check if another GeoRegion in the project has an equivalent shape.

julia
geo_tmp1 = PolyRegion("TST","GLB","",lon,lat) # lon,lat taken from above example
+isgeoshape(geo_tmp1,path=pwd())
true

See the API here

3.2 Checking if a shape defined by (lon,lat) is defined in an existing GeoRegion

The function isgeoshape() also allows us to check if another GeoRegion in the project has an equivalent shape to that which would be defined by a set of lon and lat vectors.

julia
isgeoshape(lon,lat,path=pwd()),                    # lon,lat taken from above example
+isgeoshape([20,30,40,20],[10,30,10,10],path=pwd()) # Randomly defined lon,lat
(true, false)

The first is true but the second is false.

See the API here

+ \ No newline at end of file diff --git a/dev/tutorials/projects/addreadrm.html b/dev/tutorials/projects/addreadrm.html index c2c6d6a..fb0b54e 100644 --- a/dev/tutorials/projects/addreadrm.html +++ b/dev/tutorials/projects/addreadrm.html @@ -8,11 +8,11 @@ - + - + - + @@ -21,7 +21,7 @@ mkpath(joinpath(pwd(),"test")) setupGeoRegions(path=joinpath(pwd(),"test"))

1. Adding custom GeoRegions to your Project

If you wish to automatically save a new GeoRegions as it is created, specify the keyword argument save = true. To specify the directory to which the GeoRegion information is saved to, use the path keyword.

  • RectRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/rectlist.txt

  • TiltRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/tiltlist.txt

  • PolyRegion(ID, pID, name, ..., save = true, path = ...) writes to $path/polylist.txt

Default path Directory

By default, path = joinpath(DEPOT_PATH[1],"files","GeoRegions"). If path is not specified, the information will be saved in the respective custom lists in this directory.

Modification of Custom Lists

While it is possible to do manually modify the lists, it is not recommended to do so, especially for polylist.txt, which is pretty complicated. Instead, you should let GeoRegions.jl do most of the heavy lifting.

You can also add a GeoRegion variable in the workspace that you have not yet saved into the custom lists

julia
geo = PolyRegion(ID, pID, name, ...)
 add(geo, path = ...)

For example, we can do

julia
geo = PolyRegion("TSP","GLB","Test Save PolyRegion",[10,100,-50,10],[20,10,0,20])
-add(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:37.244 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

See the API here

Or we can just directly add the GeoRegion simultaneously when it is defined, as follows:

julia
RectRegion("TSR","GLB","Test Save RectRegion",[40,-20,14,-60],save=true,path=joinpath(pwd(),"test"))
The Rectilinear Region TSR has the following properties:
+add(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:53.188 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

See the API here

Or we can just directly add the GeoRegion simultaneously when it is defined, as follows:

julia
RectRegion("TSR","GLB","Test Save RectRegion",[40,-20,14,-60],save=true,path=joinpath(pwd(),"test"))
The Rectilinear Region TSR has the following properties:
     Region ID     (ID) : TSR
     Parent ID    (pID) : GLB
     Name        (name) : Test Save RectRegion
@@ -62,23 +62,23 @@
     Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]
 
 julia> add(geo,path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:37.584 - GeoRegions.jl - The GeoRegion TSP has already been defined.  Please use another identifier.

We see that we cannot add another GeoRegion with the ID = TSP. In order to replace the GeoRegion associated with this ID with another set of information, you need to overwrite the preexisting information with overwrite()

julia
overwrite(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.061 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

And we reload the GeoRegion associated with the ID = TSP

julia
ply = GeoRegion("TSP",path=joinpath(pwd(),"test"))
The Polygonal Region TSP has the following properties:
+ERROR: 2024-10-01T16:22:53.433 - GeoRegions.jl - The GeoRegion TSP has already been defined.  Please use another identifier.

We see that we cannot add another GeoRegion with the ID = TSP. In order to replace the GeoRegion associated with this ID with another set of information, you need to overwrite the preexisting information with overwrite()

julia
overwrite(geo,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:53.975 - GeoRegions.jl - Adding the GeoRegion TSP to the list.

And we reload the GeoRegion associated with the ID = TSP

julia
ply = GeoRegion("TSP",path=joinpath(pwd(),"test"))
The Polygonal Region TSP has the following properties:
     Region ID     (ID) : TSP
     Parent ID    (pID) : GLB
     Name        (name) : Test Save PolyRegion 2
     Bounds   (N,S,E,W) : [20.0, 0.0, 90.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]

See the API here

5. Removing a custom GeoRegions from your Project

Now, we've realized that you don't really need a GeoRegion anymore, or for some reason you want to delete the information of a particular GeoRegion associate with a certain ID and replace it with a new information, there are two ways to do it:

5.1 Removing a GeoRegion that has been loaded

THe first method is to remove a GeoRegion geo that has already been loaded into the workspace. We use the function rm() to do this

julia
rm(ply,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.160 - GeoRegions.jl - Removing the GeoRegion TSP ...

And now we check if the GeoRegion TSP now exists:

julia
julia> isID("TSP",path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:38.163 - GeoRegions.jl - TSP is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

And we see that it does not.

See the API here

5.2 Removing a GeoRegion based on its ID

The second method is to remove a GeoRegion based on an ID, or its string identifier. We do this with the function rmID()

julia
rmID("TSR",path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T07:17:38.168 - GeoRegions.jl - Removing the GeoRegion TSR ...
julia
julia> isID("TSR",path=joinpath(pwd(),"test"))
-ERROR: 2024-10-01T07:17:38.197 - GeoRegions.jl - TSR is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

Predefined GeoRegions cannot be removed

You cannot remove GLB, GF_*, SRX_* or AR6_* that have been predefined in GeoRegions.jl

See the API here

6. Removing a the custom GeoRegions lists from your Project

If you use deleteGeoRegions() to remove all the custom lists, you will remove all the custom GeoRegions for the projects and they cannot be retrieved.

julia
TiltRegion("TST","GLB","Test Save TiltRegion",10,5,50,20,30,path=joinpath(pwd(),"test"))
The Tilted Rectilinear Region TST has the following properties:
+    Shape      (shape) : Point{2, Float64}[[10.0, 20.0], [90.0, 10.0], [-50.0, 0.0], [10.0, 20.0]]

See the API here

5. Removing a custom GeoRegions from your Project

Now, we've realized that you don't really need a GeoRegion anymore, or for some reason you want to delete the information of a particular GeoRegion associate with a certain ID and replace it with a new information, there are two ways to do it:

5.1 Removing a GeoRegion that has been loaded

THe first method is to remove a GeoRegion geo that has already been loaded into the workspace. We use the function rm() to do this

julia
rm(ply,path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:54.062 - GeoRegions.jl - Removing the GeoRegion TSP ...

And now we check if the GeoRegion TSP now exists:

julia
julia> isID("TSP",path=joinpath(pwd(),"test"))
+ERROR: 2024-10-01T16:22:54.065 - GeoRegions.jl - TSP is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

And we see that it does not.

See the API here

5.2 Removing a GeoRegion based on its ID

The second method is to remove a GeoRegion based on an ID, or its string identifier. We do this with the function rmID()

julia
rmID("TSR",path=joinpath(pwd(),"test"))
[ Info: 2024-10-01T16:22:54.069 - GeoRegions.jl - Removing the GeoRegion TSR ...
julia
julia> isID("TSR",path=joinpath(pwd(),"test"))
+ERROR: 2024-10-01T16:22:54.095 - GeoRegions.jl - TSR is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.

Predefined GeoRegions cannot be removed

You cannot remove GLB, GF_*, SRX_* or AR6_* that have been predefined in GeoRegions.jl

See the API here

6. Removing a the custom GeoRegions lists from your Project

If you use deleteGeoRegions() to remove all the custom lists, you will remove all the custom GeoRegions for the projects and they cannot be retrieved.

julia
TiltRegion("TST","GLB","Test Save TiltRegion",10,5,50,20,30,path=joinpath(pwd(),"test"))
The Tilted Rectilinear Region TST has the following properties:
     Region ID     (ID) : TST
     Parent ID    (pID) : GLB
     Name        (name) : Test Save TiltRegion
     Bounds   (N,S,E,W) : [47.32050807568877, -37.32050807568877, 63.30127018922193, -43.30127018922193]
     Shape      (shape) : Point{2, Float64}[[-43.30127018922193, -2.679491924311229], [-23.30127018922193, -37.32050807568877], [63.30127018922193, 12.679491924311229], [43.30127018922193, 47.32050807568877], [-43.30127018922193, -2.679491924311229]]
-    Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]
julia
deleteGeoRegions(path=joinpath(pwd(),"test"))
┌ Warning: 2024-10-01T07:17:38.257 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/test, all GeoRegion information saved into these files will be permanently lost.
+    Tilt (X,Y,ΔX,ΔY,θ) : [10.0, 5.0, 50.0, 20.0, 30.0]
julia
deleteGeoRegions(path=joinpath(pwd(),"test"))
┌ Warning: 2024-10-01T16:22:54.151 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/test, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161

Let's test and see if we can retrieve the user-defined GeoRegions now we have deleted their information from the project.

julia
julia> isID("TST",path=joinpath(pwd(),"test"),throw=false)
 false
- + \ No newline at end of file diff --git a/dev/tutorials/projects/files.html b/dev/tutorials/projects/files.html index bf77b83..211f67b 100644 --- a/dev/tutorials/projects/files.html +++ b/dev/tutorials/projects/files.html @@ -8,11 +8,11 @@ - + - + - + @@ -32,7 +32,18 @@ "AR6_ENA","GLB","Eastern-North-America", # (ID, pID, Name) [-70.0,-90.0,-90.0,-50.0,-77.0,-70.0], # Longitude vector [25.0,25.0,50.0,50.0,31.0,25.0] # Latitude vector -)

Additional empty lines

There is an empty line between each PolyRegion being defined. And **there needs to be an additional empty line after the last PolyRegion defined. Please see joinpath($(GeoRegions.geodir),"ar6.txt") as an example.

Listing GeoRegions inside Custom Files

Suppose you have a list of GeoRegions inside a custom file (that is not rectlist.txt, tiltlist.txt or polylist.txt), you can read the GeoRegions defined inside this custom file into your project via readGeoRegions()

julia
download("https://raw.githubusercontent.com/GeoRegionsEcosystem/notebooks/refs/heads/main/files/customrect.txt","test.geo")
+)

Additional empty lines

There is an empty line between each PolyRegion being defined. And **there needs to be an additional empty line after the last PolyRegion defined. Please see joinpath($(GeoRegions.geodir),"ar6.txt") as an example.

A valid polylist.txt file would look something like the following:

# PolyRegion
+# GeoRegions adapted from AR6 Regions (Iturbide et al., 2020; ESSD)
+# (RegID, ParID, Name), X, Y
+                                                # This empty line here *must* exist
+  RegID SRX_ALA, GLB, Alaska/N.W.-Canada        # (ID, pID, Name)
+  RegX  -105, -168, -168, -105, -105            # Longitude vector
+  RegY  60, 60, 72.6, 72.6, 60                  # Latitude vector
+                                                # This empty line here *must* exist
+  RegID SRX_AMZ, GLB, Amazon                    # (ID, pID, Name)
+  RegX  -66.4, -79.7, -68.8, -50, -50, -66.4    # Longitude vector
+  RegY  -20, -1.2, 11.4, 11.4, -20, -20         # Latitude vector
+                                                # This empty line here *must* exist

Listing GeoRegions inside Custom Files

Suppose you have a list of GeoRegions inside a custom file (that is not rectlist.txt, tiltlist.txt or polylist.txt), you can read the GeoRegions defined inside this custom file into your project via readGeoRegions()

julia
download("https://raw.githubusercontent.com/GeoRegionsEcosystem/notebooks/refs/heads/main/files/customrect.txt","test.geo")
 geovec = readGeoRegions("test.geo")
4-element Vector{GeoRegion}:
  The Rectilinear Region TRP has the following properties:
     Region ID     (ID) : TRP
@@ -60,19 +71,19 @@
     Parent ID    (pID) : TRP
     Name        (name) : Western Southeast Asia
     Bounds   (N,S,E,W) : [20.0, -10.0, 130.0, 90.0]
-    Shape      (shape) : Point{2, Float64}[[90.0, 20.0], [130.0, 20.0], [130.0, -10.0], [90.0, -10.0], [90.0, 20.0]]

Adding GeoRegions inside Custom Files

We can directly add the GeoRegions inside such custom files using the function addGeoRegions() as follows:

julia
addGeoRegions("test.geo",path=pwd())
[ Info: 2024-10-01T07:17:39.148 - GeoRegions.jl - Importing user-defined GeoRegions from the file test.geo directly into the custom lists.
-[ Info: 2024-10-01T07:17:39.263 - GeoRegions.jl - Adding the GeoRegion TRP to the list.
-[ Info: 2024-10-01T07:17:39.643 - GeoRegions.jl - Adding the GeoRegion DTP to the list.
-[ Info: 2024-10-01T07:17:39.760 - GeoRegions.jl - Adding the GeoRegion CRB to the list.
-[ Info: 2024-10-01T07:17:39.877 - GeoRegions.jl - Adding the GeoRegion WSEA to the list.

And we test this:

julia
GeoRegion("CRB",path=pwd())
The Rectilinear Region CRB has the following properties:
+    Shape      (shape) : Point{2, Float64}[[90.0, 20.0], [130.0, 20.0], [130.0, -10.0], [90.0, -10.0], [90.0, 20.0]]

See the API here

Adding GeoRegions inside Custom Files

We can directly add the GeoRegions inside such custom files using the function addGeoRegions() as follows:

julia
addGeoRegions("test.geo",path=pwd())
[ Info: 2024-10-01T16:22:55.143 - GeoRegions.jl - Importing user-defined GeoRegions from the file test.geo directly into the custom lists.
+[ Info: 2024-10-01T16:22:55.259 - GeoRegions.jl - Adding the GeoRegion TRP to the list.
+[ Info: 2024-10-01T16:22:55.632 - GeoRegions.jl - Adding the GeoRegion DTP to the list.
+[ Info: 2024-10-01T16:22:55.751 - GeoRegions.jl - Adding the GeoRegion CRB to the list.
+[ Info: 2024-10-01T16:22:55.870 - GeoRegions.jl - Adding the GeoRegion WSEA to the list.

See the API here

And we test this:

julia
GeoRegion("CRB",path=pwd())
The Rectilinear Region CRB has the following properties:
     Region ID     (ID) : CRB
     Parent ID    (pID) : TRP
     Name        (name) : Caribbean Islands
     Bounds   (N,S,E,W) : [25.0, 15.0, -60.0, -90.0]
-    Shape      (shape) : Point{2, Float64}[[-90.0, 25.0], [-60.0, 25.0], [-60.0, 15.0], [-90.0, 15.0], [-90.0, 25.0]]

Now, let's remove the custom GeoRegions we defined above

julia
deleteGeoRegions(path=pwd())
┌ Warning: 2024-10-01T07:17:39.881 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
+    Shape      (shape) : Point{2, Float64}[[-90.0, 25.0], [-60.0, 25.0], [-60.0, 15.0], [-90.0, 15.0], [-90.0, 25.0]]

Now, let's remove the custom GeoRegions we defined above

julia
deleteGeoRegions(path=pwd())
┌ Warning: 2024-10-01T16:22:55.873 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161
julia
julia> GeoRegion("CRB",path=pwd())
-ERROR: 2024-10-01T07:17:39.883 - GeoRegions.jl - CRB is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list.
- +ERROR: 2024-10-01T16:22:55.875 - GeoRegions.jl - CRB is not a valid GeoRegion identifier, use RectRegion(), TiltRegion() or PolyRegion() to add this GeoRegion to the list. + \ No newline at end of file diff --git a/dev/tutorials/projects/setup.html b/dev/tutorials/projects/setup.html index ad87086..577dd36 100644 --- a/dev/tutorials/projects/setup.html +++ b/dev/tutorials/projects/setup.html @@ -8,11 +8,11 @@ - + - + - + @@ -20,20 +20,20 @@
Skip to content

GeoRegions.jl for your Research Project

In previous version of GeoRegions.jl (≤v6), we assume that all user-defined GeoRegions were meant to be universally shared. However, we have come to realize that this can cause problems if different projects have similar identifiers (ID) for different regions.

Therefore in v7 and above, GeoRegions.jl explicitly works on a project basis. This means that: * Predefined GeoRegions (GF, SREX and AR6) will still be available as part of the GeoRegions package. * All user-defined GeoRegions for a project should entail specification of a project directory using the keyword path, so that the GeoRegion can be saved specifically for the project. * Retrieving a GeoRegion for a particular project will require specification of the project directory using path. * By default path is the variable homedir()

1. Setup GeoRegions.jl for your Project

The best way to get started, is to use setupGeoRegions(path = "<directory>") in order to copy over the necessary files that will store your custom user-defined GeoRegions.

julia
using GeoRegions
 setupGeoRegions(path=pwd())

This will copy over the following files: rectlist.txt, polylist.txt, tiltlist.txt, which will stored RectRegions, PolyRegions and TiltRegions respectively.

julia
isfile(joinpath(pwd(),"rectlist.txt")),
 isfile(joinpath(pwd(),"polylist.txt")),
-isfile(joinpath(pwd(),"tiltlist.txt"))
(true, true, true)

If any of these files already exist in path, they will not be overwritten. To specifically overwrite all preexisting user-defined GeoRegions, use the keyword overwrite = true.

julia
setupGeoRegions(path=pwd(),overwrite=true)
┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/rectlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/rectlist.txt ...
+isfile(joinpath(pwd(),"tiltlist.txt"))
(true, true, true)

If any of these files already exist in path, they will not be overwritten. To specifically overwrite all preexisting user-defined GeoRegions, use the keyword overwrite = true.

julia
setupGeoRegions(path=pwd(),overwrite=true)
┌ Warning: 2024-10-01T16:22:55.886 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/rectlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/rectlist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43
-┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/polylist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/polylist.txt ...
+┌ Warning: 2024-10-01T16:22:55.887 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/polylist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/polylist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43
-┌ Warning: 2024-10-01T07:17:39.895 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/tiltlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/tiltlist.txt ...
+┌ Warning: 2024-10-01T16:22:55.887 - GeoRegions.jl - Overwriting /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects/tiltlist.txt with original file in /home/runner/work/GeoRegions.jl/GeoRegions.jl/src/files/tiltlist.txt ...
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:43

See the API here

2. Listing out the custom GeoRegions for your Project

You can create a table of all the GeoRegions that have been saved to path using tableGeoRegions() as follows.

julia
tableGeoRegions(;path = ...)

For example, we create a table of user-defined and predefined GeoRegions for the current directory pwd().

Custom GeoRegions are always specified first

We always specify the custom user-defined GeoRegions first, because those are most relevant to a project.

julia
tableGeoRegions(path=pwd(),predefined=false)
 ----- ------------ ------- -------- --------------------------- ------------
   ID       Type      Name    Parent       Bounds [N,S,E,W]           File
  ----- ------------ ------- -------- --------------------------- ------------
   GLB   RectRegion   Globe    GLB     [90.0, -90.0, 360.0, 0.0]   global.txt
- ----- ------------ ------- -------- --------------------------- ------------

Note, we have no custom GeoRegions added, so there is nothing to list right now even though the files exist. If any of rectlist.txt, polylist.txt and tiltlist.txt are not present, a warning will be shown unless the keyword warn = false is set.

See the API here

3. Removing a the custom GeoRegions list from your Project

Say you want to completely clear your project of custom GeoRegions, replacing them with new lists. You can just delete the files directly, or you can do deleteGeoRegions().

Default path is pwd()

For deleteGeoRegions(), the default path is the current directory pwd().

julia
deleteGeoRegions()
┌ Warning: 2024-10-01T07:17:39.913 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
+ ----- ------------ ------- -------- --------------------------- ------------

Note, we have no custom GeoRegions added, so there is nothing to list right now even though the files exist. If any of rectlist.txt, polylist.txt and tiltlist.txt are not present, a warning will be shown unless the keyword warn = false is set.

See the API here

3. Removing a the custom GeoRegions list from your Project

Say you want to completely clear your project of custom GeoRegions, replacing them with new lists. You can just delete the files directly, or you can do deleteGeoRegions().

Default path is pwd()

For deleteGeoRegions(), the default path is the current directory pwd().

julia
deleteGeoRegions()
┌ Warning: 2024-10-01T16:22:55.901 - GeoRegions.jl - Removing custom GeoRegions.jl files from /home/runner/work/GeoRegions.jl/GeoRegions.jl/docs/build/tutorials/projects, all GeoRegion information saved into these files will be permanently lost.
 └ @ GeoRegions ~/work/GeoRegions.jl/GeoRegions.jl/src/georegions/project.jl:161

And then we see if rectlist.txt exists!

julia
isfile(joinpath(pwd(),"rectlist.txt")),
 isfile(joinpath(pwd(),"polylist.txt")),
 isfile(joinpath(pwd(),"tiltlist.txt"))
(false, false, false)

See the API here

- + \ No newline at end of file diff --git a/dev/tutorials/using/isin.html b/dev/tutorials/using/isin.html index 67854c4..1c5994f 100644 --- a/dev/tutorials/using/isin.html +++ b/dev/tutorials/using/isin.html @@ -8,24 +8,24 @@ - + - + - + -
Skip to content

Is it in a GeoRegion?

When dealing with geographic data, we often wish to check if a point or region is inside another region. GeoRegions.jl allows you to perform this check easily with the function isinGeoRegion.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is within a GeoRegion.

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

Is a Point in a GeoRegion?

As an example, let us test if a point is in GeoRegion AR6_EAO, defined in the blue bounding box below. We define the below points:

  • Point A at coordinates (-20,5)

  • Point B at coordinates (340,5)

  • Point C at coordinates (30,15)

julia
A = Point(-20,5)
+    
Skip to content

Is it in a GeoRegion?

When dealing with geographic data, we often wish to check if a point or region is inside another region. GeoRegions.jl allows you to perform this check easily with the function isinGeoRegion.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is within a GeoRegion.

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

Is a Point in a GeoRegion?

As an example, let us test if a point is in GeoRegion AR6_EAO, defined in the blue bounding box below. We define the below points:

  • Point A at coordinates (-20,5)

  • Point B at coordinates (340,5)

  • Point C at coordinates (30,15)

julia
A = Point(-20,5)
 B = Point(340,5)
 C = Point(-45,-7.5)
 geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
@@ -33,63 +33,63 @@
     Parent ID    (pID) : GLB
     Name        (name) : Equatorial Atlantic Ocean
     Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Here, we note that the coordinates of the GeoRegion (Equatorial Atlantic Ocean) are given in the bounds of (-180,180). It is trivial in this case to calculate if points A and C are within the bounds of the GeoRegion.

@example
slon,slat = coordinates(geo)
-aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
-fig = Figure()
-ax = Axis(
-    fig[1,1],width=750,height=750/aspect,
-    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
-)
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon,slat,linewidth=5)
-scatter!(ax,A,markersize=20)
-scatter!(ax,C,markersize=20)
-resize_to_layout!(fig)
-fig

By eye it is easy to see that Point A is inside the GeoRegion. However, C is not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function in()

julia
in(A,geo), # Point A
-in(C,geo)  # Point C
(true, false)

But what about Point B? Point B is also very obvious within the bounds of the GeoRegion, it is simply that the longitude of Point A is shifted by 360º such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
in(B,geo)
true

See the API here

Is a GeoRegion inside a GeoRegion?

Since any arbitrary geographic region can be defined as a GeoRegion, the natural extension now is to determine if a GeoRegion is wholly within another GeoRegion.

Let us consider an arbitrary GeoRegion BIG, and other smaller GeoRegions TS1-4 as defined below, and plot them on a map.

@example
geo_BIG = PolyRegion(
-    "BIG","GLB","A Big Region",
-    [-120,-100,-100,-80,-30,15,45,75,90,115,120,105,85,45,20,-5,-45,-80,-120],
-    [0,10,30,50,40,50,55,44,32,30,12,8,5,0,-10,-30,-40,-43,0]
-)
-geo_TS1 = RectRegion("TS1","GLB","Test Region 1",[45,20,20,-70])
-geo_TS2 = PolyRegion("TS2","GLB","Test Region 2",[60,90,110,90,60],[20,25,20,15,20])
-geo_TS3 = PolyRegion(
-    "TS3","GLB","Test Region 3",
-    [-110,-98,-95,-90,-80,-100,-110,-110],
-    [0,10,20,15,5,0,-20,0]
-)
-geo_TS4 = PolyRegion(
-    "TS4","GLB","Test Region 4",
-    [300,325,330,355,330,325,320,300],
-    [-10,-5,0,-10,-30,-35,-20,-10]
-)
-
-slon_b,slat_b = coordinates(geo_BIG)
-slon_1,slat_1 = coordinates(geo_TS1)
-slon_2,slat_2 = coordinates(geo_TS2)
-slon_3,slat_3 = coordinates(geo_TS3)
-slon_4,slat_4 = coordinates(geo_TS4)
-
-fig = Figure()
-
-ax = Axis(
-    fig[1,1],width=750,height=750/2,
-    limits=(-180,180,-90,90)
-)
-
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon_b,slat_b,linewidth=5,color=:blue)
-lines!(ax,slon_1,slat_1,linewidth=5,color=:red)
-lines!(ax,slon_2,slat_2,linewidth=5,color=:green)
-lines!(ax,slon_3,slat_3,linewidth=5,color=:red)
-lines!(ax,slon_4.-360,slat_4,linewidth=5,color=:green)
-
-resize_to_layout!(fig)
-fig

We see by eye that GeoRegion TS2 and TS4 are in the BIG region, but the other GeoRegions are not. Now let us verify this with in()

julia
in(geo_TS1,geo_BIG),
+    Shape      (shape) : Point{2, Float64}[[-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0], [8.0, -10.0], [-34.0, -10.0]]

Here, we note that the coordinates of the GeoRegion (Equatorial Atlantic Ocean) are given in the bounds of (-180,180). It is trivial in this case to calculate if points A and C are within the bounds of the GeoRegion.

julia
slon,slat = coordinates(geo)
+aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
+fig = Figure()
+ax = Axis(
+    fig[1,1],width=750,height=750/aspect,
+    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
+)
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon,slat,linewidth=5)
+scatter!(ax,A,markersize=20)
+scatter!(ax,C,markersize=20)
+resize_to_layout!(fig)
+fig

By eye it is easy to see that Point A is inside the GeoRegion. However, C is not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function in()

julia
in(A,geo), # Point A
+in(C,geo)  # Point C
(true, false)

But what about Point B? Point B is also very obvious within the bounds of the GeoRegion, it is simply that the longitude of Point A is shifted by 360º such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
in(B,geo)
true

See the API here

Is a GeoRegion inside a GeoRegion?

Since any arbitrary geographic region can be defined as a GeoRegion, the natural extension now is to determine if a GeoRegion is wholly within another GeoRegion.

Let us consider an arbitrary GeoRegion BIG, and other smaller GeoRegions TS1-4 as defined below, and plot them on a map.

julia
geo_BIG = PolyRegion(
+    "BIG","GLB","A Big Region",
+    [-120,-100,-100,-80,-30,15,45,75,90,115,120,105,85,45,20,-5,-45,-80,-120],
+    [0,10,30,50,40,50,55,44,32,30,12,8,5,0,-10,-30,-40,-43,0]
+)
+geo_TS1 = RectRegion("TS1","GLB","Test Region 1",[45,20,20,-70])
+geo_TS2 = PolyRegion("TS2","GLB","Test Region 2",[60,90,110,90,60],[20,25,20,15,20])
+geo_TS3 = PolyRegion(
+    "TS3","GLB","Test Region 3",
+    [-110,-98,-95,-90,-80,-100,-110,-110],
+    [0,10,20,15,5,0,-20,0]
+)
+geo_TS4 = PolyRegion(
+    "TS4","GLB","Test Region 4",
+    [300,325,330,355,330,325,320,300],
+    [-10,-5,0,-10,-30,-35,-20,-10]
+)
+
+slon_b,slat_b = coordinates(geo_BIG)
+slon_1,slat_1 = coordinates(geo_TS1)
+slon_2,slat_2 = coordinates(geo_TS2)
+slon_3,slat_3 = coordinates(geo_TS3)
+slon_4,slat_4 = coordinates(geo_TS4)
+
+fig = Figure()
+
+ax = Axis(
+    fig[1,1],width=750,height=750/2,
+    limits=(-180,180,-90,90)
+)
+
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon_b,slat_b,linewidth=5,color=:blue)
+lines!(ax,slon_1,slat_1,linewidth=5,color=:red)
+lines!(ax,slon_2,slat_2,linewidth=5,color=:green)
+lines!(ax,slon_3,slat_3,linewidth=5,color=:red)
+lines!(ax,slon_4.-360,slat_4,linewidth=5,color=:green)
+
+resize_to_layout!(fig)
+fig

We see by eye that GeoRegion TS2 and TS4 are in the BIG region, but the other GeoRegions are not. Now let us verify this with in()

julia
in(geo_TS1,geo_BIG),
 in(geo_TS2,geo_BIG),
 in(geo_TS3,geo_BIG),
 in(geo_TS4,geo_BIG)
(false, true, false, true)

And we see that this is indeed the case.

See the API here.

- + \ No newline at end of file diff --git a/dev/tutorials/using/ison.html b/dev/tutorials/using/ison.html index 5358636..96121ba 100644 --- a/dev/tutorials/using/ison.html +++ b/dev/tutorials/using/ison.html @@ -8,24 +8,24 @@ - + - + - + -
Skip to content

Is it on a GeoRegion Boundary?

Sometimes, we don't just want information on whether a point is inside a GeoRegion. Sometimes, it is important to know if something is on the boundary of a GeoRegion. This would prove useful in determining if the shapes of two different GeoRegions are equivalent to each other.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is on a GeoRegion boundary.

@example
using GeoRegions
-using DelimitedFiles
-using CairoMakie
-
-download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
-coast = readdlm("coast.cst",comments=true)
-clon  = coast[:,1]
-clat  = coast[:,2]
-nothing

Is a Point on a GeoRegion Boundary?

As an example, let us test if a point is on the perimeter of the GeoRegion AR6_EAO, defined in the blue bounding box below.

julia
geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
+    
Skip to content

Is it on a GeoRegion Boundary?

Sometimes, we don't just want information on whether a point is inside a GeoRegion. Sometimes, it is important to know if something is on the boundary of a GeoRegion. This would prove useful in determining if the shapes of two different GeoRegions are equivalent to each other.

Point2 Type

We use the Point2 Type from the package GeometryBasics.jl, which is reexported by GeoRegions.jl, as an easy way to denote points. This also allows us to use the package GeometryOps.jl to determine if a point is on a GeoRegion boundary.

julia
using GeoRegions
+using DelimitedFiles
+using CairoMakie
+
+download("https://raw.githubusercontent.com/natgeo-wong/GeoPlottingData/main/coastline_resl.txt","coast.cst")
+coast = readdlm("coast.cst",comments=true)
+clon  = coast[:,1]
+clat  = coast[:,2]
+nothing

Is a Point on a GeoRegion Boundary?

As an example, let us test if a point is on the perimeter of the GeoRegion AR6_EAO, defined in the blue bounding box below.

julia
geo = GeoRegion("AR6_EAO")
The Polygonal Region AR6_EAO has the following properties:
     Region ID     (ID) : AR6_EAO
     Parent ID    (pID) : GLB
     Name        (name) : Equatorial Atlantic Ocean
@@ -35,22 +35,22 @@
 C = Point(-20,5)
 D = Point(-45,-7.5)
2-element Point{2, Float64} with indices SOneTo(2):
  -45.0
-  -7.5

Here, we note that A and B

@example
slon,slat = coordinates(geo)
-aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
-fig = Figure()
-ax = Axis(
-    fig[1,1],width=750,height=750/aspect,
-    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
-)
-lines!(ax,clon,clat,color=:black,linewidth=3)
-lines!(ax,slon,slat,linewidth=5)
-scatter!(ax,A,markersize=20)
-scatter!(ax,C,markersize=20)
-scatter!(ax,D,markersize=20)
-resize_to_layout!(fig)
-fig

By eye it is easy to see that Point A is on the GeoRegion perimeter. However, C and D are not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function on()

julia
on(A,geo), # Point A
-on(C,geo), # Point C
-on(D,geo)  # Point D
(true, false, false)

But what about Point B? Point B is also very obviously on the bounds of the GeoRegion, it is simply that the longitude of Point B is shifted by 360º from A such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

julia
on(B,geo)
true

See the API here

Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)

We can also use the on() function to determine if the perimeter of a GeoRegion is on the perimeter of another. Or, in simpler terms, if two GeoRegions define the same shape. For example:

julia
on(geo,geo)
true

See the API here

Which is obvious because we are comparing a GeoRegion against itself. However, let us try something a bit more complicated.

1. circshift() the points defining the GeoRegion

In this test case, we use circshift() to change the starting and ending coordinates of the shape. Therefore, we are defining the same region, just with different start and ending points.

julia
lon,lat = coordinates(geo)
+  -7.5

Here, we note that A and B

julia
slon,slat = coordinates(geo)
+aspect = (maximum(slon)-minimum(slon))/(maximum(slat)-minimum(slat))
+fig = Figure()
+ax = Axis(
+    fig[1,1],width=750,height=750/aspect,
+    limits=(minimum(slon)-2,maximum(slon)+2,minimum(slat)-2,maximum(slat)+2)
+)
+lines!(ax,clon,clat,color=:black,linewidth=3)
+lines!(ax,slon,slat,linewidth=5)
+scatter!(ax,A,markersize=20)
+scatter!(ax,C,markersize=20)
+scatter!(ax,D,markersize=20)
+resize_to_layout!(fig)
+fig

By eye it is easy to see that Point A is on the GeoRegion perimeter. However, C and D are not. Let us now see if we are able to corroborate this with GeoRegions.jl using the function on()

@example
on(A,geo), # Point A
+on(C,geo), # Point C
+on(D,geo)  # Point D

But what about Point B? Point B is also very obviously on the bounds of the GeoRegion, it is simply that the longitude of Point B is shifted by 360º from A such that it is now in the (0,360) coordinates frame. We see that this is of no concern to GeoRegions.jl, which can detect that it is within the bounds of the GeoRegion anyway.

@example
on(B,geo)

See the API here

Is a GeoRegion on a GeoRegion? (i.e., Are their Shapes the Same?)

We can also use the on() function to determine if the perimeter of a GeoRegion is on the perimeter of another. Or, in simpler terms, if two GeoRegions define the same shape. For example:

@example
on(geo,geo)

See the API here

Which is obvious because we are comparing a GeoRegion against itself. However, let us try something a bit more complicated.

1. circshift() the points defining the GeoRegion

In this test case, we use circshift() to change the starting and ending coordinates of the shape. Therefore, we are defining the same region, just with different start and ending points.

julia
lon,lat = coordinates(geo)
 pop!(lon); lon = circshift(lon,2); lon = vcat(lon,lon[1])
 pop!(lat); lat = circshift(lat,2); lat = vcat(lat,lat[1])
 geo2 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
@@ -58,15 +58,15 @@
     Parent ID    (pID) : 
     Name        (name) : 
     Bounds   (N,S,E,W) : [7.6, -10.0, 8.0, -50.0]
-    Shape      (shape) : Point{2, Float64}[[8.0, 0.0], [8.0, -10.0], [-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0]]

So here, we have circshifted the lon and lat values used to define the GeoRegion such that instead of the start/end points being at (-34,-10), now the start/end points are at (-50,0).

We compare the shapes of the two GeoRegions:

julia
on(geo,geo2),
-on(geo2,geo)
(true, true)

And see that the GeoRegions define the same area.

Order of GeoRegions does not matter in on()

The order should not matter, because in the on() function, the GeoRegions are both compared against each other. So on(geo,geo2) = on(geo2,geo). If you find any edge cases where this is not the case, please let me know and I will look into it.

2. Shifting the GeoRegion by 360º

In this test case, we shift the lon of geo by 360º, so that it is on a (0,360) grid instead of a (-180,180) grid.

julia
lon,lat = coordinates(geo); lon = lon .+ 360
+    Shape      (shape) : Point{2, Float64}[[8.0, 0.0], [8.0, -10.0], [-34.0, -10.0], [-34.0, 0.0], [-50.0, 0.0], [-50.0, 7.6], [-20.0, 7.6], [8.0, 0.0]]

So here, we have circshifted the lon and lat values used to define the GeoRegion such that instead of the start/end points being at (-34,-10), now the start/end points are at (-50,0).

We compare the shapes of the two GeoRegions:

@example
on(geo,geo2),
+on(geo2,geo)

And see that the GeoRegions define the same area.

Order of GeoRegions does not matter in on()

The order should not matter, because in the on() function, the GeoRegions are both compared against each other. So on(geo,geo2) = on(geo2,geo). If you find any edge cases where this is not the case, please let me know and I will look into it.

2. Shifting the GeoRegion by 360º

In this test case, we shift the lon of geo by 360º, so that it is on a (0,360) grid instead of a (-180,180) grid.

julia
lon,lat = coordinates(geo); lon = lon .+ 360
 geo3 = PolyRegion("","","",lon,lat)
The Polygonal Region  has the following properties:
     Region ID     (ID) : 
     Parent ID    (pID) : 
     Name        (name) : 
     Bounds   (N,S,E,W) : [7.6, -10.0, 368.0, 310.0]
-    Shape      (shape) : Point{2, Float64}[[326.0, -10.0], [326.0, 0.0], [310.0, 0.0], [310.0, 7.6], [340.0, 7.6], [368.0, 0.0], [368.0, -10.0], [326.0, -10.0]]

We compare the shapes of the two GeoRegions:

julia
on(geo,geo3)
true

And we see that the GeoRegions define the same area.

- + Shape (shape) : Point{2, Float64}[[326.0, -10.0], [326.0, 0.0], [310.0, 0.0], [310.0, 7.6], [340.0, 7.6], [368.0, 0.0], [368.0, -10.0], [326.0, -10.0]]

We compare the shapes of the two GeoRegions:

@example
on(geo,geo3)

And we see that the GeoRegions define the same area.

+ \ No newline at end of file