MarkerCoordinates
Initialization
EarthBox.Markers.MarkerCoordinates.initialize! — Function
initialize!(
model::ModelData;
marker_distribution::Union{Int, String, Symbol, Nothing}=nothing
)::NothingInitialize marker coordinates.
Arguments
model::ModelData: The model data object containing model parameters and arrays.marker_distribution::Union{Int, String, Symbol, Nothing}: Controls the type of initial marker distribution. The marker distribution type is stored in the model data container as an integer ID (iuse_random). Ifmarker_distributionis nothing the current marker distribution type defined in the model data container will be used.
Available options for marker_distribution are as follows:
"Regular",:Regular, or0- Initial marker distribution is regular.
"Randomized",:Randomized, or1- Initial marker distribution is randomized.
Marker distribution type can be accessed from the model data container as follows:
iuse_random = model.markers.parameters.distribution.iuse_random.value
Returns
Nothing
Accessing Option Names
Available marker distribution options can be accessed programmatically:
Markers.MarkerCoordinates.option_names.RegularMarkers.MarkerCoordinates.option_names.Randomized
Example: Initializing a model with a randomized marker distribution
using EarthBox
using CairoMakie
eb = EarthBoxState(
xnum = 100, ynum = 100,
xsize = 100000.0, ysize = 100000.0,
dx_marker = 1000.0, dy_marker = 1000.0);
model = eb.model_manager.model;
option_names = Markers.MarkerCoordinates.option_names;
Markers.MarkerCoordinates.initialize!(model, marker_distribution=option_names.Randomized);
marker_x = model.markers.arrays.location.marker_x.array;
marker_y = model.markers.arrays.location.marker_y.array;
fig, ax, plt = scatter(
marker_x ./ 1000.0, marker_y ./ 1000.0;
color = :dodgerblue, markersize = 2,
axis = (; aspect = 1, xlabel = "X (km)", ylabel = "Y (km)", limits=(0.0, 100.0, 0.0, 100.0)),
);
fig