### A Pluto.jl notebook ### # v0.20.21 using Markdown using InteractiveUtils # This Pluto notebook uses @bind for interactivity. When running this notebook outside of Pluto, the following 'mock version' of @bind gives bound variables a default value (instead of an error). macro bind(def, element) #! format: off return quote local iv = try Base.loaded_modules[Base.PkgId(Base.UUID("6e696c72-6542-2067-7265-42206c756150"), "AbstractPlutoDingetjes")].Bonds.initial_value catch; b -> missing; end local el = $(esc(element)) global $(esc(def)) = Core.applicable(Base.get, el) ? Base.get(el) : iv(el) el end #! format: on end # ╔═╡ 3c88aa50-47ec-4a23-bdbd-da04ac05100a begin using ClimateModels, PlutoUI, CairoMakie import IniFile md"""_Done with loading packages_""" end # ╔═╡ b5caddd5-4b34-4a28-af7d-aaea247bd2a5 md"""# Hector Global Climate (C++) Here we setup, run and plot a simple global climate carbon-cycle model called [Hector](https://jgcri.github.io/hector/index.html). Hector reproduces the global historical trends of atmospheric [CO2], radiative forcing, and surface temperatures. It simulates various [Shared Socioeconomic Pathways (SSPs)](https://en.wikipedia.org/wiki/Shared_Socioeconomic_Pathways) defined by the Intergovernmental Panel on Climate Change (IPCC). Documentation about Hector can be found [here](https://jgcri.github.io/hector/articles/manual/), [here](https://pyhector.readthedocs.io/en/latest/index.html), and [here](https://jgcri.github.io/hectorui/index.html). """ # ╔═╡ fbd107dd-56e9-4a86-9737-18fd89d6fb37 md"""#### Source Code""" # ╔═╡ 67365028-7acd-4974-aaeb-c472981346f5 # ╔═╡ d048aac3-42c3-447a-8221-6d5ba6299369 # ╔═╡ 8e2c86e7-f561-4157-af76-410f85897b46 md"""## The Four Scenarios""" # ╔═╡ 37a9f083-d9ae-4506-b33c-2f9c6da5314e md"""## Model Interface Here we define a new concrete type called `Hector_config`. The rest of the `ClimateModels.jl` interface implementation for this new type is documented below (see `Model Interface details`). """ # ╔═╡ 448424ee-c2d0-4957-9763-4fa467f68992 begin H=HectorConfig() setup(H) exe=joinpath(tempdir(),"hector") if isfile(exe) build(H; exe=exe) else build(H) exe=joinpath(pathof(H),"hector","src","hector") end md"""The compiled Hector executable is at $(exe) """ end # ╔═╡ 91c60316-8689-4443-b439-eacb95efb26f #readdir(MC) exe # ╔═╡ 95fcd1a0-60ad-465f-b5c0-35bb8ea044c2 md"""## Setup, Build, and Launch""" # ╔═╡ 7f7cb33a-e02a-4450-8d58-eadbb5f29297 begin MC=HectorConfig() setup(MC) build(MC; exe=exe) launch(MC) "Done with setup, build, launch sequence." end # ╔═╡ 1bc9b369-1233-46e2-9cfc-8c0db286d352 let (store,list)=Hector.calc_all_scenarios(H) f_all=ClimateModels.plot_examples(:Hector_scenarios,store,list) save(joinpath(pathof(MC),"tas_scenarios.png"), f_all) f_all end # ╔═╡ 5a731e2b-ff27-45fc-bc63-4988e484d7d2 PlutoUI.with_terminal() do show(MC) end # ╔═╡ 5c2381dc-55d6-4f4b-a1c0-a7a777283621 MC # ╔═╡ 3e66a5bb-338c-49fb-b169-a6edb4c43949 md"""## Read Output And Plot""" # ╔═╡ a5336163-72e5-48b4-8156-224728ccd518 begin tmp=HectorConfig(configuration="hector_ssp245.ini",folder=MC.folder,ID=MC.ID) put!(tmp,Hector.Hector_launch) launch(tmp) f,a,year,tas=ClimateModels.plot_examples(:Hector,MC) Legend(f[1, 2], a) f end # ╔═╡ d033d4f3-409a-4b6e-bdc7-f881989b0653 md"""## Inspect Model Parameters""" # ╔═╡ 3706903e-10b4-11ec-3eaf-8df6df1c23c3 begin nml=Hector.read_IniFile(MC) PlutoUI.with_terminal() do show(nml) end end # ╔═╡ 909a8669-9324-4982-bac7-9d7d112b5ab8 begin 𝑷=ClimateModels.DataFrame(group=String[],name=String[],default=Float64[],factors=StepRangeLen[], long_name=String[],unit=String[]) push!(𝑷,("simpleNbox","beta",0.36,0.2:0.2:2,"CO2 fertilization factor","unitless")) push!(𝑷,("temperature","alpha",1,0.2:0.2:2,"Aerosol forcing scaling factor","unitless")) push!(𝑷,("temperature","diff",2.3,0.2:0.2:2,"Ocean heat diffusivity","cm2/s")) push!(𝑷,("temperature","S",3.5,0.2:0.2:2,"Equilibrium climate sensitivity","degC")) push!(𝑷,("simpleNbox","C0",588.071/2.13,0.2:0.2:2,"Preindustrial CO2 conc,","ppmv CO2")) #- atmos_c=588.071 ; Pg C in CO2, from Murakami et al. (2010) #- ;C0=276 ; another way to specify, in ppmv #- 1 ppm by volume of atmosphere CO2 = 2.13 Gt C push!(𝑷,("simpleNbox","q10_rh",2.0,0.2:0.2:2,"Temp. sensitivity factor (Q10)","unitless")) push!(𝑷,("temperature","volscl",1,0.2:0.2:2,"Volcanic forcing scaling factor","unitless")) 𝑉=[𝑷.default[i]*𝑷.factors[i] for i in 1:length(𝑷.default)] 𝑷 md"""## Modify Parameters & Rerun Let's consider the same sbuset of model parameters as done in [HectorUI](https://jgcri.github.io/hectorui/index.html). Here, we start from $(MC.configuration) but with a `Equilibrium climate sensitivity` of 3.5 instead of 3. """ end # ╔═╡ cf70e31c-e95a-4768-b11b-0c25eba2a736 md""" Parameter name | Value | unit ----|----|---- $(𝑷.long_name[1]) | $(@bind 𝑄_1 NumberField(𝑉[1]; default=𝑷.default[1])) | $(𝑷.unit[1]) $(𝑷.long_name[2]) | $(@bind 𝑄_2 NumberField(𝑉[2]; default=𝑷.default[2])) | $(𝑷.unit[2]) $(𝑷.long_name[3]) | $(@bind 𝑄_3 NumberField(𝑉[3]; default=𝑷.default[3])) | $(𝑷.unit[3]) $(𝑷.long_name[4]) | $(@bind 𝑄_4 NumberField(𝑉[4]; default=𝑷.default[4])) | $(𝑷.unit[4]) $(𝑷.long_name[5]) | $(@bind 𝑄_5 NumberField(𝑉[5]; default=𝑷.default[5])) | $(𝑷.unit[5]) $(𝑷.long_name[6]) | $(@bind 𝑄_6 NumberField(𝑉[6]; default=𝑷.default[6])) | $(𝑷.unit[6]) $(𝑷.long_name[7]) | $(@bind 𝑄_7 NumberField(𝑉[7]; default=𝑷.default[7])) | $(𝑷.unit[7]) $(@bind update_param PlutoUI.Button("Update & Rerun Model")) """ # ╔═╡ 95301453-5c24-4884-9eab-098f8ce40c0f begin #modify parameter values within nml 𝑄=(𝑄_1,𝑄_2,𝑄_3,𝑄_4,𝑄_5,𝑄_6,𝑄_7) [nml.sections[𝑷.group[i]][𝑷.name[i]]=𝑄[i] for i in 1:length(𝑄)] [nml.sections[𝑷.group[i]][𝑷.name[i]] for i in 1:length(𝑄)] md"""Would rerun with parameters : $(𝑄)""" end # ╔═╡ 3711d123-0e16-486b-a4ba-c5ac6de93692 begin #rerun model with updated parameter file update_param pth1=pathof(MC) conf=joinpath(pth1,"log","custom_parameters.nml") open(conf, "w+") do io write(io, nml) end log(MC,"update custom_parameters.nml (or skip)",fil="custom_parameters.nml") myconf=joinpath(pth1,"hector","inst","input","custom_parameters.nml") cp(conf,myconf;force=true) myMC=HectorConfig(configuration="custom_parameters.nml",folder=MC.folder,ID=MC.ID) put!(myMC,Hector.Hector_launch) launch(myMC) "rerun completed" end # ╔═╡ c23c4065-faf5-4822-a082-ff05e63e180b myconf # ╔═╡ 76763a71-a8d3-472a-bb27-577a88ff637c begin g,b,_,_=ClimateModels.plot_examples(:Hector,myMC) lines!(b,year,tas,label=MC.configuration,linewidth=3) Legend(g[1, 2], b) save(joinpath(pathof(MC),"tas_custom.png"), g) g end # ╔═╡ 68e4cf96-c335-4db1-b527-07043cacbc00 md"""## Workflow Log (~git log)""" # ╔═╡ 2c2ec4ba-e9ed-4695-a695-4549ee84e314 Dump(log(MC)) # ╔═╡ acd184ff-dfce-496a-afa2-0cac1fc5fa98 TableOfContents() # ╔═╡ 00000000-0000-0000-0000-000000000001 PLUTO_PROJECT_TOML_CONTENTS = """ [deps] ClimateModels = "f6adb021-9183-4f40-84dc-8cea6f651bb0" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" IniFile = "83e8ac13-25f8-5344-8a64-a9f2b223428f" PlutoUI = "7f904dfe-b85e-4ff6-b463-dae2292396a8" Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb" [compat] ClimateModels = "~0.3.5" IniFile = "~0.5.1" PlutoUI = "~0.7.59" Suppressor = "~0.2.7" """ # ╔═╡ 00000000-0000-0000-0000-000000000002 PLUTO_MANIFEST_TOML_CONTENTS = """ # This file is machine-generated - editing it directly is not advised julia_version = "1.12.1" manifest_format = "2.0" project_hash = "bf49d66943f96ec42940de3959cfc01184f9038d" [[deps.AbstractPlutoDingetjes]] deps = ["Pkg"] git-tree-sha1 = "6e1d2a35f2f90a4bc7c2ed98079b2ba09c35b83a" uuid = "6e696c72-6542-2067-7265-42206c756150" version = "1.3.2" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.2" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" version = "1.11.0" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" version = "1.11.0" [[deps.BitFlags]] git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" version = "0.1.9" [[deps.CFTime]] deps = ["Dates", "Printf"] git-tree-sha1 = "0836c647014903bedccf23ba72b5ebb8c89a7db8" uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.2.5" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] git-tree-sha1 = "deddd8725e5e1cc49ee205a1964256043720a6c3" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" version = "0.10.15" [[deps.ChunkCodecCore]] git-tree-sha1 = "1a3ad7e16a321667698a19e77362b35a1e94c544" uuid = "0b6fb165-00bc-4d37-ab8b-79f91016dbe1" version = "1.0.1" [[deps.ChunkCodecLibZlib]] deps = ["ChunkCodecCore", "Zlib_jll"] git-tree-sha1 = "cee8104904c53d39eb94fd06cbe60cb5acde7177" uuid = "4c0bbee4-addc-4d73-81a0-b6caacae83c8" version = "1.0.0" [[deps.ChunkCodecLibZstd]] deps = ["ChunkCodecCore", "Zstd_jll"] git-tree-sha1 = "34d9873079e4cb3d0c62926a225136824677073f" uuid = "55437552-ac27-4d47-9aa3-63184e8fd398" version = "1.0.0" [[deps.ClimateModels]] deps = ["CFTime", "CSV", "DataDeps", "DataFrames", "Dataverse", "Dates", "Downloads", "Git", "Glob", "JLD2", "OffsetArrays", "OrderedCollections", "Pkg", "Printf", "Random", "Statistics", "Suppressor", "TOML", "Test", "UUIDs"] git-tree-sha1 = "9716feba9e5ae7c6910e8b240b53185b30034611" uuid = "f6adb021-9183-4f40-84dc-8cea6f651bb0" version = "0.3.15" [deps.ClimateModels.extensions] ClimateModelsCondaExt = ["Conda"] ClimateModelsIniFileExt = ["IniFile"] ClimateModelsMakieExt = ["Makie"] ClimateModelsNetCDFExt = ["NetCDF"] ClimateModelsOceananigansExt = ["Oceananigans"] ClimateModelsPyCallExt = ["PyCall"] ClimateModelsZarrExt = ["Zarr"] [deps.ClimateModels.weakdeps] Conda = "8f4d0f93-b110-5947-807f-2305c1781a2d" IniFile = "83e8ac13-25f8-5344-8a64-a9f2b223428f" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" NetCDF = "30363a11-5582-574a-97bb-aa9a979735b9" Oceananigans = "9e8cae18-63c1-5223-a75c-80ca9d6e9a09" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" Zarr = "0a941bbe-ad1d-11e8-39d9-ab76183a1d99" [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.8" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "67e11ee83a43eb71ddc950302c53bf33f0690dfe" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.12.1" weakdeps = ["StyledStrings"] [deps.ColorTypes.extensions] StyledStringsExt = "StyledStrings" [[deps.Compat]] deps = ["TOML", "UUIDs"] git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" version = "4.18.1" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] CompatLinearAlgebraExt = "LinearAlgebra" [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" version = "1.3.0+1" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] git-tree-sha1 = "d9d26935a0bcffc87d2613ce14c527c99fc543fd" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" version = "2.5.0" [[deps.Crayons]] git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" [[deps.DataAPI]] git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.16.0" [[deps.DataDeps]] deps = ["HTTP", "Libdl", "Reexport", "SHA", "Scratch", "p7zip_jll"] git-tree-sha1 = "8ae085b71c462c2cb1cfedcb10c3c877ec6cf03f" uuid = "124859b0-ceae-595e-8997-d05f6a7a8dfe" version = "0.7.13" [[deps.DataFrames]] deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] git-tree-sha1 = "d8928e9169ff76c6281f39a659f9bca3a573f24c" uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" version = "1.8.1" [[deps.DataStructures]] deps = ["OrderedCollections"] git-tree-sha1 = "e357641bb3e0638d353c4b29ea0e40ea644066a6" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.19.3" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" version = "1.0.0" [[deps.Dataverse]] deps = ["CSV", "CodecZlib", "DataFrames", "Downloads", "HTTP", "JSON", "NetworkOptions", "Tar", "ZipFile"] git-tree-sha1 = "84ad16bc3c21a8d13e07c55287f7049cda236349" uuid = "9c0b9be8-e31e-490f-90fe-77697562404d" version = "0.2.7" [deps.Dataverse.extensions] DataverseCondaPkgExt = ["CondaPkg"] DataversePythonCallExt = ["PythonCall"] [deps.Dataverse.weakdeps] CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" version = "1.11.0" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" [[deps.ExceptionUnwrapping]] deps = ["Test"] git-tree-sha1 = "d36f682e590a83d63d1c7dbd287573764682d12a" uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" version = "0.1.11" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "27af30de8b5445644e8ffe3bcb0d72049c089cf1" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.7.3+0" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "d60eb76f37d7e5a40cc2e7c36974d864b82dc802" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.17.1" weakdeps = ["HTTP"] [deps.FileIO.extensions] HTTPExt = "HTTP" [[deps.FilePathsBase]] deps = ["Compat", "Dates"] git-tree-sha1 = "3bab2c5aa25e7840a4b065805c0cdfc01f3068d2" uuid = "48062228-2e41-5def-b9a4-89aafe57970f" version = "0.9.24" weakdeps = ["Mmap", "Test"] [deps.FilePathsBase.extensions] FilePathsBaseMmapExt = "Mmap" FilePathsBaseTestExt = "Test" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" version = "1.11.0" [[deps.FixedPointNumbers]] deps = ["Statistics"] git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.5" [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" version = "1.11.0" [[deps.Git]] deps = ["Git_LFS_jll", "Git_jll", "JLLWrappers", "OpenSSH_jll"] git-tree-sha1 = "824a1890086880696fc908fe12a17bcf61738bd8" uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" version = "1.5.0" [[deps.Git_LFS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "bb8471f313ed941f299aa53d32a94ab3bee08844" uuid = "020c3dae-16b3-5ae5-87b3-4cb189e250b2" version = "3.7.0+0" [[deps.Git_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] git-tree-sha1 = "46bd50c245fe49ed87377c014a928a549b9ef7ed" uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" version = "2.52.0+0" [[deps.Glob]] git-tree-sha1 = "83cb0092e2792b9e3a865b6655e88f5b862607e2" uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" version = "1.4.0" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "5e6fe50ae7f23d171f44e311c2960294aaa0beb5" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "1.10.19" [[deps.HashArrayMappedTries]] git-tree-sha1 = "2eaa69a7cab70a52b9687c8bf950a5a93ec895ae" uuid = "076d061b-32b6-4027-95e0-9a2c6f6d7e74" version = "0.2.0" [[deps.Hyperscript]] deps = ["Test"] git-tree-sha1 = "179267cfa5e712760cd43dcae385d7ea90cc25a4" uuid = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" version = "0.0.5" [[deps.HypertextLiteral]] deps = ["Tricks"] git-tree-sha1 = "7134810b1afce04bbc1045ca1985fbe81ce17653" uuid = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" version = "0.9.5" [[deps.IOCapture]] deps = ["Logging", "Random"] git-tree-sha1 = "0ee181ec08df7d7c911901ea38baf16f755114dc" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" version = "1.0.0" [[deps.IniFile]] git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625" uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" version = "0.5.1" [[deps.InlineStrings]] git-tree-sha1 = "8f3d257792a522b4601c24a577954b0a8cd7334d" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.5" [deps.InlineStrings.extensions] ArrowTypesExt = "ArrowTypes" ParsersExt = "Parsers" [deps.InlineStrings.weakdeps] ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" Parsers = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" version = "1.11.0" [[deps.InvertedIndices]] git-tree-sha1 = "6da3c4316095de0f5ee2ebd875df8721e7e0bdbe" uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" version = "1.3.1" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] deps = ["ChunkCodecLibZlib", "ChunkCodecLibZstd", "FileIO", "MacroTools", "Mmap", "OrderedCollections", "PrecompileTools", "ScopedValues"] git-tree-sha1 = "8f8ff711442d1f4cfc0d86133e7ee03d62ec9b98" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" version = "0.6.3" [deps.JLD2.extensions] UnPackExt = "UnPack" [deps.JLD2.weakdeps] UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.7.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.4" [[deps.JuliaSyntaxHighlighting]] deps = ["StyledStrings"] uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011" version = "1.12.0" [[deps.LaTeXStrings]] git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.4.0" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.4" [[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "8.11.1+1" [[deps.LibGit2]] deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" version = "1.11.0" [[deps.LibGit2_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" version = "1.9.0+0" [[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "OpenSSL_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.11.3+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" version = "1.11.0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" version = "1.18.0+0" [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" version = "1.12.0" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" version = "1.11.0" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] git-tree-sha1 = "f00544d95982ea270145636c181ceda21c4e2575" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.2.0" [[deps.MIMEs]] git-tree-sha1 = "c64d943587f7187e751162b3b84445bbbd79f691" uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" version = "1.1.0" [[deps.MacroTools]] git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.16" [[deps.Markdown]] deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" version = "1.11.0" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" version = "1.1.9" [[deps.MbedTLS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "ff69a2b1330bcb730b9ac1ab7dd680176f5896b8" uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.1010+0" [[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" version = "1.11.0" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2025.5.20" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.3.0" [[deps.OffsetArrays]] git-tree-sha1 = "117432e406b5c023f665fa73dc26e79ec3630151" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" version = "1.17.0" [deps.OffsetArrays.extensions] OffsetArraysAdaptExt = "Adapt" [deps.OffsetArrays.weakdeps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" version = "0.3.29+0" [[deps.OpenSSH_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"] git-tree-sha1 = "301412a644646fdc0ad67d0a87487466b491e53d" uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b" version = "10.2.1+0" [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "NetworkOptions", "OpenSSL_jll", "Sockets"] git-tree-sha1 = "1d1aaa7d449b58415f97d2839c318b70ffb525a0" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" version = "1.6.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "Libdl"] uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "3.5.1+0" [[deps.OrderedCollections]] git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.8.1" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.44.0+1" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.8.3" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.12.0" weakdeps = ["REPL"] [deps.Pkg.extensions] REPLExt = "REPL" [[deps.PlutoUI]] deps = ["AbstractPlutoDingetjes", "Base64", "ColorTypes", "Dates", "Downloads", "FixedPointNumbers", "Hyperscript", "HypertextLiteral", "IOCapture", "InteractiveUtils", "Logging", "MIMEs", "Markdown", "Random", "Reexport", "URIs", "UUIDs"] git-tree-sha1 = "6122f9423393a2294e26a4efdf44960c5f8acb70" uuid = "7f904dfe-b85e-4ff6-b463-dae2292396a8" version = "0.7.78" [[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" version = "1.4.3" [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "07a921781cab75691315adc645096ed5e370cb77" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" version = "1.3.3" [[deps.Preferences]] deps = ["TOML"] git-tree-sha1 = "522f093a29b31a93e34eaea17ba055d850edea28" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.5.1" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "REPL", "Reexport", "StringManipulation", "Tables"] git-tree-sha1 = "c5a07210bd060d6a8491b0ccdee2fa0235fc00bf" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" version = "3.1.2" [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" version = "1.11.0" [[deps.REPL]] deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" version = "1.11.0" [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" version = "1.11.0" [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" [[deps.Requires]] deps = ["UUIDs"] git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.1" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" [[deps.ScopedValues]] deps = ["HashArrayMappedTries", "Logging"] git-tree-sha1 = "c3b2323466378a2ba15bea4b2f73b081e022f473" uuid = "7e506255-f358-4e82-b7e4-beb19740aa63" version = "1.5.0" [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109" uuid = "6c6a2e73-6563-6170-7368-637461726353" version = "1.3.0" [[deps.SentinelArrays]] deps = ["Dates", "Random"] git-tree-sha1 = "ebe7e59b37c400f694f52b58c93d26201387da70" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" version = "1.4.9" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" version = "1.11.0" [[deps.SimpleBufferStream]] git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" version = "1.2.0" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" version = "1.11.0" [[deps.SortingAlgorithms]] deps = ["DataStructures"] git-tree-sha1 = "64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" version = "1.2.2" [[deps.Statistics]] deps = ["LinearAlgebra"] git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" version = "1.11.1" [deps.Statistics.extensions] SparseArraysExt = ["SparseArrays"] [deps.Statistics.weakdeps] SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.StringManipulation]] deps = ["PrecompileTools"] git-tree-sha1 = "a3c1536470bf8c5e02096ad4853606d7c8f62721" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.4.2" [[deps.StyledStrings]] uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" version = "1.11.0" [[deps.Suppressor]] deps = ["Logging"] git-tree-sha1 = "6dbb5b635c5437c68c28c2ac9e39b87138f37c0a" uuid = "fd094767-a336-5f1f-9728-57cf17d0bbfb" version = "0.2.8" [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" [[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" version = "1.12.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" version = "1.11.0" [[deps.TranscodingStreams]] git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.11.3" [[deps.Tricks]] git-tree-sha1 = "311349fd1c93a31f783f977a71e8b062a57d4101" uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" version = "0.1.13" [[deps.URIs]] git-tree-sha1 = "bef26fb046d031353ef97a82e3fdb6afe7f21b1a" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" version = "1.6.1" [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" version = "1.11.0" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" version = "1.11.0" [[deps.WeakRefStrings]] deps = ["DataAPI", "InlineStrings", "Parsers"] git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" version = "1.4.2" [[deps.WorkerUtilities]] git-tree-sha1 = "cd1659ba0d57b71a464a29e64dbc67cfe83d54e7" uuid = "76eceee3-57b5-4d4a-8e66-0e911cebbf60" version = "1.6.1" [[deps.ZipFile]] deps = ["Libdl", "Printf", "Zlib_jll"] git-tree-sha1 = "f492b7fe1698e623024e873244f10d89c95c340a" uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" version = "0.10.1" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.3.1+2" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.7+1" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" version = "5.15.0+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.64.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.5.0+2" """ # ╔═╡ Cell order: # ╟─b5caddd5-4b34-4a28-af7d-aaea247bd2a5 # ╟─fbd107dd-56e9-4a86-9737-18fd89d6fb37 # ╟─3c88aa50-47ec-4a23-bdbd-da04ac05100a # ╟─67365028-7acd-4974-aaeb-c472981346f5 # ╟─d048aac3-42c3-447a-8221-6d5ba6299369 # ╟─8e2c86e7-f561-4157-af76-410f85897b46 # ╟─1bc9b369-1233-46e2-9cfc-8c0db286d352 # ╟─91c60316-8689-4443-b439-eacb95efb26f # ╟─37a9f083-d9ae-4506-b33c-2f9c6da5314e # ╟─448424ee-c2d0-4957-9763-4fa467f68992 # ╟─95fcd1a0-60ad-465f-b5c0-35bb8ea044c2 # ╟─7f7cb33a-e02a-4450-8d58-eadbb5f29297 # ╟─5a731e2b-ff27-45fc-bc63-4988e484d7d2 # ╟─5c2381dc-55d6-4f4b-a1c0-a7a777283621 # ╟─3e66a5bb-338c-49fb-b169-a6edb4c43949 # ╟─a5336163-72e5-48b4-8156-224728ccd518 # ╟─d033d4f3-409a-4b6e-bdc7-f881989b0653 # ╟─3706903e-10b4-11ec-3eaf-8df6df1c23c3 # ╟─909a8669-9324-4982-bac7-9d7d112b5ab8 # ╟─cf70e31c-e95a-4768-b11b-0c25eba2a736 # ╟─c23c4065-faf5-4822-a082-ff05e63e180b # ╟─95301453-5c24-4884-9eab-098f8ce40c0f # ╟─3711d123-0e16-486b-a4ba-c5ac6de93692 # ╟─76763a71-a8d3-472a-bb27-577a88ff637c # ╟─68e4cf96-c335-4db1-b527-07043cacbc00 # ╟─2c2ec4ba-e9ed-4695-a695-4549ee84e314 # ╟─acd184ff-dfce-496a-afa2-0cac1fc5fa98 # ╟─00000000-0000-0000-0000-000000000001 # ╟─00000000-0000-0000-0000-000000000002