diff --git a/src/ADRIA.jl b/src/ADRIA.jl index e8ced49c4..bd9b2ca4f 100644 --- a/src/ADRIA.jl +++ b/src/ADRIA.jl @@ -103,7 +103,7 @@ export ReefModDomain # export dims, ndims # List out compatible domain datapackages -const COMPAT_DPKG = ["0.4.0-rc", "0.4.0", "0.5.0-rc", "0.5.0"] +const COMPAT_DPKG = ["0.5.0-rc", "0.5.0"] # This adds ~30 seconds to package load times if ccall(:jl_generating_output, Cint, ()) == 1 diff --git a/src/Domain.jl b/src/Domain.jl index c09f20329..8d9f86959 100644 --- a/src/Domain.jl +++ b/src/Domain.jl @@ -9,7 +9,7 @@ mutable struct EnvLayer{S<:AbstractString,TF} dpkg_path::S site_data_fn::S const site_id_col::S - const unique_site_id_col::S + const cluster_id_col::S init_coral_cov_fn::S connectivity_fn::S DHW_fn::S @@ -31,7 +31,7 @@ function load_domain(path::String)::Domain end function unique_sites(d::Domain)::Vector{String} - return d.site_data[:, d.unique_site_id_col] + return d.site_data[:, d.cluster_id_col] end """ diff --git a/src/ExtInterface/ADRIA/Domain.jl b/src/ExtInterface/ADRIA/Domain.jl index b85ae1069..9dcc48358 100644 --- a/src/ExtInterface/ADRIA/Domain.jl +++ b/src/ExtInterface/ADRIA/Domain.jl @@ -20,7 +20,7 @@ mutable struct ADRIADomain{ const strong_pred::Vector{Int64} # strongest predecessor site_data::D # table of site data (depth, carrying capacity, etc) const site_id_col::String # column to use as site ids, also used by the connectivity dataset (indicates order of `conn`) - const unique_site_id_col::String # column of unique site ids + const cluster_id_col::String # column of unique site ids init_coral_cover::M # initial coral cover dataset const coral_growth::CoralGrowth # coral const site_ids::Vector{String} # Site IDs that are represented (i.e., subset of site_data[:, site_id_col], after missing sites are filtered) @@ -47,7 +47,7 @@ function Domain( strongest_predecessor::Vector{Int64}, site_data::DataFrame, site_id_col::String, - unique_site_id_col::String, + cluster_id_col::String, init_coral_cover::NamedDimsArray, coral_growth::CoralGrowth, site_ids::Vector{String}, @@ -91,7 +91,7 @@ function Domain( strongest_predecessor, site_data, site_id_col, - unique_site_id_col, + cluster_id_col, init_coral_cover, coral_growth, site_ids, @@ -105,7 +105,7 @@ function Domain( end """ - Domain(name::String, rcp::String, timeframe::Vector, site_data_fn::String, site_id_col::String, unique_site_id_col::String, init_coral_fn::String, conn_path::String, dhw_fn::String, wave_fn::String, cyclone_mortality_fn::String)::Domain + Domain(name::String, rcp::String, timeframe::Vector, site_data_fn::String, site_id_col::String, cluster_id_col::String, init_coral_fn::String, conn_path::String, dhw_fn::String, wave_fn::String, cyclone_mortality_fn::String)::Domain Convenience constructor for Domain. @@ -116,7 +116,7 @@ Convenience constructor for Domain. - `timeframe` : Time steps represented - `site_data_fn` : File name of spatial data used - `site_id_col` : Column holding name of reef the site is associated with (non-unique) -- `unique_site_id_col` : Column holding unique site names/ids +- `cluster_id_col` : Column holding unique site names/ids - `init_coral_fn` : Name of file holding initial coral cover values - `conn_path` : Path to directory holding connectivity data - `dhw_fn` : Filename of DHW data cube in use @@ -130,7 +130,7 @@ function Domain( timeframe::Vector, site_data_fn::String, site_id_col::String, - unique_site_id_col::String, + cluster_id_col::String, init_coral_fn::String, conn_path::String, dhw_fn::String, @@ -148,16 +148,18 @@ function Domain( end end - if unique_site_id_col ∉ names(site_data) - @warn "Unique location ID column $(unique_site_id_col) not found. Defaulting to UNIQUE_ID." - unique_site_id_col = "UNIQUE_ID" + if cluster_id_col ∉ names(site_data) + @warn "Cluster ID column $(cluster_id_col) not found. Defaulting to UNIQUE_ID." + cluster_id_col = "UNIQUE_ID" end + site_data[!, cluster_id_col] .= string.(Int64.(site_data[:, cluster_id_col])) + env_layer_md::EnvLayer = EnvLayer( dpkg_path, site_data_fn, site_id_col, - unique_site_id_col, + cluster_id_col, init_coral_fn, conn_path, dhw_fn, @@ -247,7 +249,7 @@ function Domain( conns.strongest_predecessor, site_data, site_id_col, - unique_site_id_col, + cluster_id_col, coral_cover, coral_growth, site_conn.site_ids, diff --git a/src/ExtInterface/ReefMod/Domain.jl b/src/ExtInterface/ReefMod/Domain.jl index beb902213..5b71d9a3e 100644 --- a/src/ExtInterface/ReefMod/Domain.jl +++ b/src/ExtInterface/ReefMod/Domain.jl @@ -17,7 +17,7 @@ mutable struct ReefModDomain <: Domain const strong_pred const site_data const site_id_col - const unique_site_id_col + const cluster_id_col init_coral_cover const coral_growth::CoralGrowth const site_ids @@ -56,8 +56,8 @@ function load_domain(::Type{ReefModDomain}, fn_path::String, RCP::String)::ReefM site_data_path = joinpath(data_files, "region", "reefmod_gbr.gpkg") site_data = GDF.read(site_data_path) site_id_col = "LOC_NAME_S" - unique_site_id_col = "LOC_NAME_S" - site_ids = site_data[:, unique_site_id_col] + cluster_id_col = "LOC_NAME_S" + site_ids = site_data[:, site_id_col] id_list = CSV.read( joinpath(data_files, "id", "id_list_2023_03_30.csv"), @@ -132,7 +132,7 @@ function load_domain(::Type{ReefModDomain}, fn_path::String, RCP::String)::ReefM fn_path, site_data_path, site_id_col, - unique_site_id_col, + cluster_id_col, "", "", "", @@ -158,7 +158,7 @@ function load_domain(::Type{ReefModDomain}, fn_path::String, RCP::String)::ReefM strong_pred, site_data, site_id_col, - unique_site_id_col, + cluster_id_col, init_coral_cover, CoralGrowth(nrow(site_data)), site_ids, diff --git a/src/io/ResultSet.jl b/src/io/ResultSet.jl index 46a85ee41..924d877d1 100644 --- a/src/io/ResultSet.jl +++ b/src/io/ResultSet.jl @@ -147,7 +147,7 @@ function combine_results(result_sets...)::ResultSet envlayer.dpkg_path, envlayer.site_data_fn, envlayer.site_id_col, - envlayer.unique_site_id_col, + envlayer.cluster_id_col, envlayer.init_coral_cov_fn, envlayer.connectivity_fn, dirname(envlayer.DHW_fn), @@ -458,15 +458,15 @@ function Base.show(io::IO, mime::MIME"text/plain", rs::ResultSet) println(""" Domain: $(rs.name) - + Run with ADRIA $(vers_id) on $(rs.invoke_time) Results stored at: $(result_location(rs)) - + RCP(s) represented: $(rcps) Scenarios run: $(scens) Number of sites: $(sites) Timesteps: $(tf) - + Input layers ------------""") diff --git a/src/io/result_io.jl b/src/io/result_io.jl index f34164e6c..b38939cf6 100644 --- a/src/io/result_io.jl +++ b/src/io/result_io.jl @@ -155,7 +155,7 @@ function scenario_attributes( :ADRIA_VERSION => "v" * string(PkgVersion.Version(@__MODULE__)), :site_data_file => env_layer.site_data_fn, :site_id_col => env_layer.site_id_col, - :unique_site_id_col => env_layer.unique_site_id_col, + :cluster_id_col => env_layer.cluster_id_col, :init_coral_cover_file => env_layer.init_coral_cov_fn, :connectivity_file => env_layer.connectivity_fn, :DHW_file => env_layer.DHW_fn, @@ -607,7 +607,7 @@ function load_results(result_loc::String)::ResultSet # Spatial data site_data = GDF.read(joinpath(result_loc, SITE_DATA, input_set.attrs["name"] * ".gpkg")) - sort!(site_data, [Symbol(input_set.attrs["unique_site_id_col"])]) + sort!(site_data, [Symbol(input_set.attrs["site_id_col"])]) # Model specification model_spec = CSV.read( @@ -642,7 +642,7 @@ function load_results(result_loc::String)::ResultSet result_loc, input_set.attrs["site_data_file"], input_set.attrs["site_id_col"], - input_set.attrs["unique_site_id_col"], + input_set.attrs["cluster_id_col"], input_set.attrs["init_coral_cover_file"], input_set.attrs["connectivity_file"], input_set.attrs["DHW_file"],