From 0f6c5f788a1d4d92d9db14fc96de01f241ccecdc Mon Sep 17 00:00:00 2001 From: Anshul Singhvi Date: Fri, 12 Jul 2024 11:04:44 +0200 Subject: [PATCH 1/3] Make Raster-in-45-min a Quarto file --- ...in-julia.md => Raster-in-45-min-julia.qmd} | 124 +++++++++--------- 1 file changed, 62 insertions(+), 62 deletions(-) rename Raster-in-45-min/{Raster-in-45-min-julia.md => Raster-in-45-min-julia.qmd} (94%) diff --git a/Raster-in-45-min/Raster-in-45-min-julia.md b/Raster-in-45-min/Raster-in-45-min-julia.qmd similarity index 94% rename from Raster-in-45-min/Raster-in-45-min-julia.md rename to Raster-in-45-min/Raster-in-45-min-julia.qmd index 7844787..1d99aa6 100644 --- a/Raster-in-45-min/Raster-in-45-min-julia.md +++ b/Raster-in-45-min/Raster-in-45-min-julia.qmd @@ -27,7 +27,7 @@ using Pkg Pkg.activate(@__DIR__) ``` -```@example raster +```{julia} using Rasters using NCDatasets @@ -51,14 +51,14 @@ The RasterStack is a special case of a DimStack with some geospatial information The DimArray s in the DimStack can share dimensions butdon't have all the same dimensionality. If layers share a dimension name, this dimension is only stored once for the whole DimStack. -```@example raster +```{julia} # pull out "air" dataarray with dictionary syntax ds["air"] ``` You can save some typing by using the "attribute" or "dot" notation and using tab completion. -```@example raster +```{julia} # pull out dataarray using dot notation ds.air ``` @@ -69,7 +69,7 @@ ds.air ### Name (optional) -```@example raster +```{julia} da = ds.air Rasters.name(da) @@ -81,13 +81,13 @@ Rasters.name(da) In this case we have 2 spatial dimensions (`X` and `Y`) and one temporal dimension (`Ti`). -```@example raster +```{julia} dims(da) ``` You can also extract a single dimension. -```@example raster +```{julia} # extracting coordinate variables dims(da, X) ``` @@ -100,11 +100,11 @@ grid at which you have data. `metadata` is a metadata object that can hold arbitrary attributes that describe the underlying data. -```@example raster +```{julia} metadata(da) ``` -```@example raster +```{julia} # assign your own attributes! metadata(da)["myattrs"] = "Mine" ``` @@ -115,11 +115,11 @@ A DimensionalData data structures wrap underlying simpler array-like data struct To access the underlying data use the `parent` function: -```@example raster +```{julia} parent(da) ``` -```@example raster +```{julia} # what is the type of the underlying data typeof(parent(da)) ``` @@ -127,15 +127,15 @@ typeof(parent(da)) We can change the underlying data type by using the lazy keyword for opening the data. This is especially helpful for very large data or data that is hosted online where we would not want to download the whole dataset before starting the analysis. -```@example raster +```{julia} dsl = RasterStack(path, lazy=true) ``` -```@example raster +```{julia} dal = dsl.air ``` -```@example raster +```{julia} typeof(parent(dal)) ``` @@ -160,19 +160,19 @@ Metadata provides context and provides code that is more legible. This reduces t ### Analysis without named dimensions: -```@example raster +```{julia} # plot the first timestep lon = ds.air.dims[1].val.data # Vector lat = ds.air.dims[2].val.data # Vector temp = parent(da) # vector ``` -```@example raster +```{julia} using GLMakie heatmap(lon, lat, temp[1, :, :]) ``` -```@example raster +```{julia} using Statistics mean(temp, dims=3)# On what dimensions did we apply the reduction? I can't tell by looking at this line. ``` @@ -181,13 +181,13 @@ mean(temp, dims=3)# On what dimensions did we apply the reduction? I can't tell How readable is this code? -```@example raster +```{julia} plot(ds.air[Ti=1]) ``` Use dimension names instead of axis numbers -```@example raster +```{julia} plot((mean(ds.air, dims=Ti)[Ti=1])) ``` @@ -206,32 +206,32 @@ See the [Documentation about Selectors](https://rafaqz.github.io/DimensionalData DimensionalData implements label based indexing where you can use the name of the dimension and also the labels for the entries in the dimension. -```@example raster +```{julia} # here's what our dataset looks like ds ``` -```@example raster +```{julia} # We can extract the Time dimension dims(ds, Ti) ``` -```@example raster +```{julia} # pull out data for all of 2013-May ds[Ti=Where(x->yearmonth(x) == (2013, 5))] ``` -```@example raster +```{julia} # demonstrate slicing, extract all time slices between to given dates ds[Ti=Date(2013,5,1)..Date(2013,8,1)] ``` -```@example raster +```{julia} # demonstrate "nearest" indexing ds[X=Near(240.2)] ``` -```@example raster +```{julia} # "nearest indexing at multiple points" ds[X=Near([240.125, 234]), Y=Near([40.1, 50.1])] ``` @@ -243,12 +243,12 @@ These selectors can be mixed for different dimensions. So that we could have a ` This is similar to usual array indexing `array[1, 2, 3]` but with the power of named dimensions! -```@example raster +```{julia} # pull out time index 0, lat index 2, and lon index 3 ds.air[Ti=1, Y=2, X=3] # much better than ds.air[3, 2, 1] ``` -```@example raster +```{julia} # demonstrate slicing ds.air[X=1:10] ``` @@ -267,11 +267,11 @@ where $\phi$ is latitude, $\delta \phi$ is the spacing of the points in latitude TODO: mention the `Rasters.coverage` function that does this for you. -```@example raster +```{julia} lon ``` -```@example raster +```{julia} # Earth's average radius in meters R = 6.371e6 @@ -282,12 +282,12 @@ dλ = deg2rad(2.5) dlat = fill(R * dϕ, dims(ds,X)) ``` -```@example raster +```{julia} dlonval = R .* dλ .* cos.(deg2rad.(dims(ds.air, Y))) dlon = DimArray(reshape(dlonval, (1, length(dlonval))), (X,dims(ds, Y))) ``` -```@example raster +```{julia} cell_area = dlat .* dlon ``` @@ -298,7 +298,7 @@ You can apply functions like `cos` and `deg2rad` elementwise on array types by u In DimensionalData the broadcast does not automatically expand the data therefore we have to reshape the underlying data into a row vector to get a 2D array from the two 1D vectors. -```@example raster +```{julia} cell_area = dlon .* dlat cell_area ``` @@ -313,26 +313,26 @@ lat, lon points we end up with a result with the same shape (25x53): -```@example raster +```{julia} ds.air[Ti=1] ./ cell_area ``` DimensionalData only compares the dimension name and would currently broadcast two arrays with the same size along each dimension together. -```@example raster +```{julia} # make a copy of cell_area # then add 1e-5 degrees to latitude cell_area_bad = similar(cell_area) ``` -```@example raster +```{julia} set(cell_area_bad, set(dims(cell_area_bad, X), 1:53)) ``` -```@example raster +```{julia} cell_area_bad .* ds.air[Ti=1] ``` @@ -363,47 +363,47 @@ Below we quickly demonstrate these patterns. See the user guide links above and ### groupby -```@example raster +```{julia} # here's ds ds ``` -```@example raster +```{julia} groups = groupby(ds, Ti=>seasons()) ``` -```@example raster +```{julia} # make a seasonal mean seasonal_mean = mean.(groups, dims=Ti) seasonal_mean ``` -```@example raster +```{julia} #TODO: Plot the mean map for every season ``` ### resample -```@example raster +```{julia} # Reduce the time dimension to monthly means monthlymeans = dropdims.(mean.(groupby(ds.air, Ti=>yearmonth), dims=Ti), dims=Ti) ``` ### weighted -```@example raster +```{julia} # weight by cell_area and take mean over (time, lon) #ds.weighted(cell_area).mean(["lon", "time"]).air.plot(y="lat"); weightedmean = dropdims(mean(ds.air, dims=(X, Ti)), dims=(X,Ti)) weightedmean ``` -```@example raster +```{julia} y = dims(weightedmean, Y) @show y ``` -```@example raster +```{julia} nx = X(reverse(Float32[75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0])) ny = Y(reverse(Float32[75.0, 72.5, 70.0, 67.5, 65.0, 62.5, 60.0, 57.5, 55.0, 52.5, 50.0, 47.5, 45.0, 42.5, 40.0, 37.5, 35.0, 32.5, 30.0, 27.5, 25.0, 22.5, 20.0, 17.5, 15.0])) @@ -411,15 +411,15 @@ narr = DimArray(rand(25,25), (ny, nx)) fig, ax, pl = plot(narr) ``` -```@example raster +```{julia} nsingle = DimArray(rand(25), ny) ``` -```@example raster +```{julia} fig, ax, pl = plot(nsingle) ``` -```@example raster +```{julia} ax.finallimits ``` @@ -433,17 +433,17 @@ We have seen very simple plots earlier. Xarray also lets you easily visualize 3D and 4D datasets by presenting multiple facets (or panels or subplots) showing variations across rows and/or columns. -```@example raster +```{julia} # facet the seasonal_mean seasonal_mean.air.plot(col="season", col_wrap=2); ``` -```@example raster +```{julia} # contours seasonal_mean.air.plot.contour(col="season", levels=20, add_colorbar=True); ``` -```@example raster +```{julia} # line plots too? wut seasonal_mean.air.mean("lon").plot.line(hue="season", y="lat"); ``` @@ -459,7 +459,7 @@ more see the [documentation](https://rafaqz.github.io/Rasters.jl/dev). Writing is done through the standard `Base` interface. -```@example raster +```{julia} # write to netCDF write("my-example-dataset.nc", ds) ``` @@ -469,14 +469,14 @@ write("my-example-dataset.nc", ds) TODO: change this to Rasters.jl syntax -```@example raster +```{julia} # read from disk fromdisk = Raster("my-example-dataset.nc") ``` You can also read these in lazily via the `lazy=true` keyword. -```@example raster +```{julia} # check that the two are identical ds == fromdisk ``` @@ -506,13 +506,13 @@ Now we will demonstrate some cool features. You can easily [convert](https://docs.xarray.dev/en/stable/pandas.html) between xarray and [pandas](https://pandas.pydata.org/) structures. This allows you to conveniently use the extensive pandas ecosystem of packages (like [seaborn](https://seaborn.pydata.org/)) for your work. -```@example raster +```{julia} # convert to pandas dataframe df = ds.isel(time=slice(10)).to_dataframe() df ``` -```@example raster +```{julia} # convert dataframe to xarray df.to_xarray() ``` @@ -539,7 +539,7 @@ these blocks -```@example raster +```{julia} # demonstrate dask dataset dasky = xr.tutorial.open_dataset( "air_temperature", @@ -552,7 +552,7 @@ dasky.air All computations with dask-backed xarray objects are lazy, allowing you to build up a complicated chain of analysis steps quickly -```@example raster +```{julia} # demonstrate lazy mean dasky.air.mean("lat") ``` @@ -561,7 +561,7 @@ To get concrete values, call `.compute` or `.load` -```@example raster +```{julia} # "compute" the mean dasky.air.mean("lat").compute() ``` @@ -574,7 +574,7 @@ The [`hvplot` package](https://hvplot.holoviz.org/user_guide/Gridded_Data.html) xarray objects under the `.hvplot` namespace. So instead of using `.plot` use `.hvplot` -```@example raster +```{julia} import hvplot.xarray ds.air.hvplot(groupby="time", clim=(270, 300), widget_location='bottom') @@ -597,12 +597,12 @@ long as the appropriate CF attributes are set. For example, the `"longitude"` dimension in different files might be labelled as: (lon, LON, long, x…), but cf_xarray let's you always refer to the logical name `"longitude"` in your code: -```@example raster +```{julia} import cf_xarray ``` -```@example raster +```{julia} # describe cf attributes in dataset ds.air.cf ``` @@ -613,13 +613,13 @@ attributes set that allow detection of the "latitude" variable (e.g. -```@example raster +```{julia} # demonstrate equivalent of .mean("lat") ds.air.cf.mean("latitude") ``` -```@example raster +```{julia} # demonstrate indexing ds.air.cf.sel(longitude=242.5, method="nearest") ``` From f2701da0aa49b4e2071def924d1b44e35c667c08 Mon Sep 17 00:00:00 2001 From: Anshul Singhvi Date: Fri, 12 Jul 2024 15:27:04 +0200 Subject: [PATCH 2/3] Improve .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 4054256..6e89977 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .ipynb_checkpoints +**/.DS_Store data/ +docs/build +docs/Manifest.toml \ No newline at end of file From 2785a65008f8eab9cf4342d15cc6510b6bed155d Mon Sep 17 00:00:00 2001 From: Anshul Singhvi Date: Fri, 12 Jul 2024 16:06:53 +0200 Subject: [PATCH 3/3] Add Project, Manifest, remove Python things --- .../Manifest.toml | 405 ++++++++++-------- Project.toml => Raster-in-45-min/Project.toml | 1 + ...julia.qmd => Raster-in-45-min-julia-3.qmd} | 33 +- docs/make.jl | 20 + 4 files changed, 278 insertions(+), 181 deletions(-) rename Manifest.toml => Raster-in-45-min/Manifest.toml (87%) rename Project.toml => Raster-in-45-min/Project.toml (89%) rename Raster-in-45-min/{Raster-in-45-min-julia.qmd => Raster-in-45-min-julia-3.qmd} (98%) create mode 100644 docs/make.jl diff --git a/Manifest.toml b/Raster-in-45-min/Manifest.toml similarity index 87% rename from Manifest.toml rename to Raster-in-45-min/Manifest.toml index 065c768..53133c3 100644 --- a/Manifest.toml +++ b/Raster-in-45-min/Manifest.toml @@ -1,13 +1,13 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.2" +julia_version = "1.10.4" manifest_format = "2.0" -project_hash = "e055a85d99ccb9b4e0a8075d7fba17af33e79dd2" +project_hash = "a7849d6c0be0447889cf3482798f9206a9ffbc53" [[deps.ASCIIrasters]] -git-tree-sha1 = "0cb0046798af8ac8561334c5a2a31f015e53c2b1" +git-tree-sha1 = "1880b17ca0e1c0edd3fa8a968fca20516af7436a" uuid = "81770e7c-c736-4fa5-8129-46dd21831640" -version = "0.1.1" +version = "0.1.2" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -41,10 +41,10 @@ weakdeps = ["StaticArrays"] AdaptStaticArraysExt = "StaticArrays" [[deps.AliasTables]] -deps = ["Random"] -git-tree-sha1 = "ca95b2220ef440817963baa71525a8f2f4ae7f8f" +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" -version = "1.0.0" +version = "1.1.3" [[deps.Animations]] deps = ["Colors"] @@ -64,9 +64,9 @@ version = "1.1.1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "133a240faec6e074e07c31ee75619c90544179cf" +git-tree-sha1 = "5c9b74c973181571deb6442d41e5c902e6b9f38e" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.10.0" +version = "7.12.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -101,9 +101,9 @@ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.Automa]] deps = ["PrecompileTools", "TranscodingStreams"] -git-tree-sha1 = "588e0d680ad1d7201d4c6a804dcb1cd9cba79fbb" +git-tree-sha1 = "014bc22d6c400a7703c0f5dc1fdc302440cf88be" uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" -version = "1.0.3" +version = "1.0.4" [[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] @@ -121,9 +121,9 @@ version = "0.4.7" uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.BitFlags]] -git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.8" +version = "0.1.9" [[deps.Blosc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Lz4_jll", "Zlib_jll", "Zstd_jll"] @@ -159,9 +159,9 @@ version = "1.0.1+0" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "a4c43f59baa34011e303e76f5c8c91bf58415aaf" +git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.0+1" +version = "1.18.0+2" [[deps.Calculus]] deps = ["LinearAlgebra"] @@ -171,9 +171,9 @@ version = "0.5.1" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" +git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.23.0" +version = "1.24.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -181,9 +181,9 @@ weakdeps = ["SparseArrays"] [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +git-tree-sha1 = "b8fe8546d52ca154ac556809e10c75e6e7430ac8" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.4" +version = "0.7.5" [[deps.ColorBrewer]] deps = ["Colors", "JSON", "Test"] @@ -193,9 +193,9 @@ version = "0.4.0" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +git-tree-sha1 = "4b270d6465eb21ae89b732182c20dc165f8bf9f2" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.24.0" +version = "3.25.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -215,9 +215,9 @@ weakdeps = ["SpecialFunctions"] [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" +version = "0.12.11" [[deps.Combinatorics]] git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" @@ -232,9 +232,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.14.0" +version = "4.15.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -243,13 +243,13 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.0+0" +version = "1.1.1+0" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "6cbbd4d241d7e6579ab354737f4dd95ca43946e1" +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.4.1" +version = "2.4.2" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -339,9 +339,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "22c595ca4146c07b16bcf9c8bea86f731f7109d2" +git-tree-sha1 = "9c405847cc7ecda2dc921ccf18b47ca150d7317e" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.108" +version = "0.25.109" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -381,6 +381,12 @@ git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + [[deps.ExactPredicates]] deps = ["IntervalArithmetic", "Random", "StaticArrays"] git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" @@ -395,14 +401,14 @@ version = "0.1.10" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.5.0+0" +version = "2.6.2+0" [[deps.Extents]] -git-tree-sha1 = "2140cd04483da90b2da7f99b2add0750504fc39c" +git-tree-sha1 = "94997910aca72897524d2237c41eb852153b0f65" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.2" +version = "0.1.3" [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] @@ -450,9 +456,9 @@ uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.FillArrays]] deps = ["LinearAlgebra"] -git-tree-sha1 = "57f08d5665e76397e96b168f9acc12ab17c84a68" +git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.10.2" +version = "1.11.0" weakdeps = ["PDMats", "SparseArrays", "Statistics"] [deps.FillArrays.extensions] @@ -478,9 +484,9 @@ version = "2.23.1" [[deps.FixedPointNumbers]] deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" +version = "0.8.5" [[deps.Flatten]] deps = ["ConstructionBase", "FieldMetadata"] @@ -489,10 +495,10 @@ uuid = "4c728ea3-d9ee-5c9a-9642-b6f7d7dc04fa" version = "0.4.3" [[deps.Fontconfig_jll]] -deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.93+0" +version = "2.13.96+0" [[deps.Format]] git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" @@ -517,9 +523,9 @@ version = "4.1.1" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.13.1+0" +version = "2.13.2+0" [[deps.FreeTypeAbstraction]] deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] @@ -528,10 +534,10 @@ uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" version = "0.10.3" [[deps.FriBidi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.10+0" +version = "1.0.14+0" [[deps.Future]] deps = ["Random"] @@ -544,28 +550,28 @@ uuid = "add2ef01-049f-52c4-9ee2-e494f65e021a" version = "1.7.1" [[deps.GDAL_jll]] -deps = ["Arrow_jll", "Artifacts", "Expat_jll", "GEOS_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "LibPQ_jll", "Libdl", "Libtiff_jll", "NetCDF_jll", "OpenJpeg_jll", "PROJ_jll", "SQLite_jll", "Zlib_jll", "Zstd_jll", "libgeotiff_jll"] -git-tree-sha1 = "179af3b113804043e5b8c8dc574fc83b819989c6" +deps = ["Arrow_jll", "Artifacts", "Blosc_jll", "Expat_jll", "GEOS_jll", "Giflib_jll", "HDF5_jll", "JLLWrappers", "LibCURL_jll", "LibPQ_jll", "Libdl", "Libtiff_jll", "Lz4_jll", "NetCDF_jll", "OpenJpeg_jll", "PCRE2_jll", "PROJ_jll", "Qhull_jll", "SQLite_jll", "XML2_jll", "XZ_jll", "Zlib_jll", "Zstd_jll", "libgeotiff_jll", "libpng_jll", "libwebp_jll"] +git-tree-sha1 = "c725b2f30315649f4138f3787ba892e06aef82e7" uuid = "a7073274-a066-55f0-b90d-d619367d196c" -version = "301.800.500+0" +version = "301.901.100+0" [[deps.GEOS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e143352a8a1b1c7236d05bc9e0982420099c46af" +git-tree-sha1 = "a190d1f793963b93be8fd37cf36d319ac682d2dd" uuid = "d604d12d-fa86-5845-992e-78dc15976526" -version = "3.12.0+0" +version = "3.12.2+0" [[deps.GLFW]] deps = ["GLFW_jll"] -git-tree-sha1 = "35dbc482f0967d8dceaa7ce007d16f9064072166" +git-tree-sha1 = "7ed24cfc4cb29fb10c0e8cca871ddff54c32a4c3" uuid = "f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98" -version = "3.4.1" +version = "3.4.3" [[deps.GLFW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] -git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "3f74912a156096bd8fdbef211eff66ab446e7297" uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" -version = "3.3.9+0" +version = "3.4.0+0" [[deps.GLMakie]] deps = ["ColorTypes", "Colors", "FileIO", "FixedPointNumbers", "FreeTypeAbstraction", "GLFW", "GeometryBasics", "LinearAlgebra", "Makie", "Markdown", "MeshIO", "ModernGL", "Observables", "PrecompileTools", "Printf", "ShaderAbstractions", "StaticArrays"] @@ -585,9 +591,9 @@ version = "0.4.2" [[deps.GeoInterface]] deps = ["Extents"] -git-tree-sha1 = "801aef8228f7f04972e596b09d4dba481807c913" +git-tree-sha1 = "9fff8990361d5127b770e3454488360443019bb3" uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.4" +version = "1.3.5" [[deps.GeoInterfaceRecipes]] deps = ["GeoInterface", "RecipesBase"] @@ -597,9 +603,9 @@ version = "1.0.2" [[deps.GeometryBasics]] deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] -git-tree-sha1 = "5694b56ccf9d15addedc35e9a4ba9c317721b788" +git-tree-sha1 = "b62f2b2d76cee0d61a2ef2b3118cd2a3215d3134" uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" -version = "0.4.10" +version = "0.4.11" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] @@ -607,11 +613,17 @@ git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" version = "0.21.0+0" +[[deps.Giflib_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0224cce99284d997f6880a42ef715a37c99338d1" +uuid = "59f7168a-df46-5410-90c8-f2779963d0ec" +version = "5.2.2+0" + [[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" +git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.80.0+0" +version = "2.80.2+0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -649,9 +661,9 @@ version = "1.14.3+3" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "2c3ec1f90bb4a8f7beafb0cffea8a4c3f4e636ab" +git-tree-sha1 = "d1d712be3164d61d1fb98e7ce9bcbc6cc06b45ed" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.6" +version = "1.10.8" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -661,9 +673,9 @@ version = "2.8.1+1" [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +git-tree-sha1 = "1d334207121865ac8c1c97eb7f42d0339e4635bf" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.10.0+0" +version = "2.11.0+0" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] @@ -697,9 +709,9 @@ version = "0.10.2" [[deps.ImageIO]] deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] -git-tree-sha1 = "bca20b2f5d00c4fbc192c3212da8fa79f4688009" +git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" -version = "0.6.7" +version = "0.6.8" [[deps.ImageMetadata]] deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] @@ -709,9 +721,9 @@ version = "0.9.9" [[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3d09a9f60edf77f8a4d99f9e015e8fbf9989605d" +git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52" uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" -version = "3.1.7+0" +version = "3.1.11+0" [[deps.IndirectArrays]] git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" @@ -719,9 +731,9 @@ uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" version = "1.0.0" [[deps.Inflate]] -git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.4" +version = "0.1.5" [[deps.IntegerMathUtils]] git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" @@ -730,9 +742,9 @@ version = "0.1.2" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "be50fe8df3acbffa0274a744f1a99d29c45a57f4" +git-tree-sha1 = "14eb2b542e748570b56446f4c50fbfb2306ebc45" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.1.0+0" +version = "2024.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -752,9 +764,9 @@ version = "0.15.1" [[deps.IntervalArithmetic]] deps = ["CRlibm_jll", "MacroTools", "RoundingEmulator"] -git-tree-sha1 = "23ddd329f4a2a65c7a55b91553b60849bd038575" +git-tree-sha1 = "433b0bb201cd76cb087b017e49244f10394ebe9c" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.22.11" +version = "0.22.14" weakdeps = ["DiffRules", "ForwardDiff", "RecipesBase"] [deps.IntervalArithmetic.extensions] @@ -819,9 +831,9 @@ version = "0.1.5" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.2+0" +version = "3.0.3+0" [[deps.Kerberos_krb5_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -831,15 +843,15 @@ version = "1.19.3+0" [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] -git-tree-sha1 = "fee018a29b60733876eb557804b5b109dd3dd8a7" +git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" -version = "0.6.8" +version = "0.6.9" [[deps.LAME_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.1+0" +version = "3.100.2+0" [[deps.LERC_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -863,10 +875,10 @@ weakdeps = ["Serialization"] SerializationExt = ["Serialization"] [[deps.LZO_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.1+0" +version = "2.10.2+0" [[deps.LaTeXStrings]] git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" @@ -934,10 +946,10 @@ uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" version = "1.6.0+0" [[deps.Libgpg_error_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.42.0+0" +version = "1.49.0+0" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -947,21 +959,21 @@ version = "1.17.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.39.3+0" +version = "2.40.1+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] -git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +git-tree-sha1 = "6355fb9a4d22d867318db186fd09b09b35bd2ed7" uuid = "89763e89-9b03-5906-acba-b20f662cd828" -version = "4.5.1+1" +version = "4.6.0+0" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.39.3+1" +version = "2.40.1+0" [[deps.LightXML]] deps = ["Libdl", "XML2_jll"] @@ -987,15 +999,15 @@ version = "0.2.7" [[deps.LittleCMS_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll"] -git-tree-sha1 = "08ed30575ffc5651a50d3291beaf94c3e7996e55" +git-tree-sha1 = "fa7fd067dca76cadd880f1ca937b4f387975a9f5" uuid = "d3a379c0-f9a3-5b72-a4c0-6bf4d2e8af0f" -version = "2.15.0+0" +version = "2.16.0+0" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.27" +version = "0.3.28" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1024,27 +1036,27 @@ version = "1.9.4+0" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "80b2833b56d466b3858d565adcd16a4a05f2089b" +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.1.0+0" +version = "2024.2.0+0" [[deps.MPICH_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "d8a7bf80c88326ebc98b7d38437208c3a0f20725" +git-tree-sha1 = "4099bb6809ac109bfc17d521dad33763bcf026b7" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.2.1+0" +version = "4.2.1+1" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +git-tree-sha1 = "c105fe467859e7f6e9a852cb15cb4301126fac07" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.10" +version = "0.1.11" [[deps.MPItrampoline_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "3f884417b47a96d87e7c6219f8f7b30ce67f4f2c" +git-tree-sha1 = "8c35d5420193841b2f367e658540e8d9e0601ed0" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.3+0" +version = "5.4.0+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] @@ -1092,9 +1104,9 @@ version = "2.28.2+1" [[deps.MeshIO]] deps = ["ColorTypes", "FileIO", "GeometryBasics", "Printf"] -git-tree-sha1 = "8c26ab950860dfca6767f2bbd90fdf1e8ddc678b" +git-tree-sha1 = "dc182956229ff16d5a4d90a562035e633bd2561d" uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118" -version = "0.4.11" +version = "0.4.12" [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1163,9 +1175,9 @@ version = "0.11.8" [[deps.NetCDF_jll]] deps = ["Artifacts", "Blosc_jll", "Bzip2_jll", "HDF5_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "TOML", "XML2_jll", "Zlib_jll", "Zstd_jll", "libzip_jll"] -git-tree-sha1 = "ef30054d4e6eab74228cc7beae0c0873129bc078" +git-tree-sha1 = "4686378c4ae1d1948cfbe46c002a11a4265dcb07" uuid = "7243133f-43d8-5620-bbf4-c2c921802cf3" -version = "400.902.211+0" +version = "400.902.211+1" [[deps.Netpbm]] deps = ["FileIO", "ImageCore", "ImageMetadata"] @@ -1189,9 +1201,9 @@ uuid = "510215fc-4207-5dde-b226-833fc4488ee2" version = "0.5.5" [[deps.OffsetArrays]] -git-tree-sha1 = "e64b4f5ea6b7389f6f046d13d4896a8f9c1ba71e" +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.14.0" +version = "1.14.1" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] @@ -1205,15 +1217,15 @@ version = "1.3.5+1" [[deps.OnlineStats]] deps = ["AbstractTrees", "Dates", "Distributions", "LinearAlgebra", "OnlineStatsBase", "OrderedCollections", "Random", "RecipesBase", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"] -git-tree-sha1 = "d3f41f18b9abaa2c64e8e0c43921df9b61ec8d02" +git-tree-sha1 = "29f0e2b369c22190f2500b4fe5af49052c3f0c3b" uuid = "a15396b6-48d5-5d58-9928-6d29437db91e" -version = "1.6.3" +version = "1.7.0" [[deps.OnlineStatsBase]] deps = ["AbstractTrees", "Dates", "LinearAlgebra", "OrderedCollections", "Statistics", "StatsBase"] -git-tree-sha1 = "6aa22dda15d3387639210d382fafc4f2a84b4fb9" +git-tree-sha1 = "9a067a4ea67d1ebab4554b73792dd429f098387c" uuid = "925886fa-5bf2-5e8e-b522-a9147a512338" -version = "1.6.3" +version = "1.7.0" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] @@ -1228,15 +1240,15 @@ version = "0.3.2" [[deps.OpenEXR_jll]] deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "a4ca623df1ae99d09bc9868b008262d0c0ac1e4f" +git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e" uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" -version = "3.1.4+0" +version = "3.2.4+0" [[deps.OpenJpeg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libtiff_jll", "LittleCMS_jll", "libpng_jll"] -git-tree-sha1 = "8d4c87ffaf09dbdd82bcf8c939843e94dd424df2" +git-tree-sha1 = "f4cb457ffac5f5cf695699f82c537073958a6a6c" uuid = "643b3616-a352-519d-856d-80112ee9badc" -version = "2.5.0+0" +version = "2.5.2+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -1257,9 +1269,9 @@ version = "1.4.3" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3da7367955dcc5c54c1ba4d402ccdc09a1a3e046" +git-tree-sha1 = "a028ee3cb5641cccc4c24e90c36b0a4f7707bdf5" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.13+1" +version = "3.0.14+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -1351,15 +1363,15 @@ version = "2.8.1" [[deps.Permutations]] deps = ["Combinatorics", "LinearAlgebra", "Random"] -git-tree-sha1 = "eb3f9df2457819bf0a9019bd93cc451697a0751e" +git-tree-sha1 = "4ca430561cf37c75964c8478eddae2d79e96ca9b" uuid = "2ae35dd2-176d-5d53-8349-f30d82d94d4f" -version = "0.4.20" +version = "0.4.21" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] -git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.42.2+0" +version = "0.43.4+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] @@ -1384,10 +1396,10 @@ uuid = "647866c9-e3ac-4575-94e7-e3d426903924" version = "0.1.2" [[deps.Polynomials]] -deps = ["LinearAlgebra", "RecipesBase", "Setfield", "SparseArrays"] -git-tree-sha1 = "81a2a9462003a423fdc59e2a3ff84cde93c4637b" +deps = ["LinearAlgebra", "RecipesBase", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "1a9cfb2dc2c2f1bd63f1906d72af39a79b49b736" uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "4.0.7" +version = "4.0.11" [deps.Polynomials.extensions] PolynomialsChainRulesCoreExt = "ChainRulesCore" @@ -1435,12 +1447,23 @@ git-tree-sha1 = "763a8ceb07833dd51bb9e3bbca372de32c0605ad" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" version = "1.10.0" +[[deps.PtrArrays]] +git-tree-sha1 = "f011fbb92c4d401059b2212c05c0601b70f8b759" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.2.0" + [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" version = "1.0.0" +[[deps.Qhull_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "be2449911f4d6cfddacdf7efc895eceda3eee5c1" +uuid = "784f63db-0788-585a-bace-daefebcd302b" +version = "8.0.1003+0" + [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" @@ -1534,10 +1557,10 @@ uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" version = "0.7.1" [[deps.Rmath_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d483cd324ce5cf5d61b77930f0bbd6cb61927d21" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" -version = "0.4.0+0" +version = "0.4.2+0" [[deps.RoundingEmulator]] git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" @@ -1548,11 +1571,17 @@ version = "0.2.1" uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" +[[deps.SIMD]] +deps = ["PrecompileTools"] +git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.5.0" + [[deps.SQLite_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "75e28667a36b5650b5cc4baa266c5760c3672275" +git-tree-sha1 = "004fffbe2711abdc7263a980bbb1af9620781dd9" uuid = "76ed43ae-9a5d-5a62-8c75-30186b810ce8" -version = "3.45.0+0" +version = "3.45.3+0" [[deps.Scratch]] deps = ["Dates"] @@ -1648,9 +1677,9 @@ version = "1.10.0" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.3.1" +version = "2.4.0" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -1670,9 +1699,9 @@ version = "0.1.1" [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.3" +version = "1.9.7" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -1680,9 +1709,9 @@ weakdeps = ["ChainRulesCore", "Statistics"] StaticArraysStatisticsExt = "Statistics" [[deps.StaticArraysCore]] -git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.2" +version = "1.4.3" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -1781,15 +1810,15 @@ uuid = "e0b8ae26-5307-5830-91fd-398402328850" version = "0.16.0+0" [[deps.TiffImages]] -deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "34cc045dd0aaa59b8bbe86c644679bc57f1d5bd0" +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.8" +version = "0.10.0" [[deps.TranscodingStreams]] -git-tree-sha1 = "71509f04d045ec714c4748c785a59045c3736349" +git-tree-sha1 = "60df3f8126263c0d6b357b9a1017bb94f53e3582" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.7" +version = "0.11.0" weakdeps = ["Random", "Test"] [deps.TranscodingStreams.extensions] @@ -1823,6 +1852,18 @@ git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + [[deps.WeightedOnlineStats]] deps = ["LinearAlgebra", "OnlineStats", "OnlineStatsBase", "Statistics", "StatsBase"] git-tree-sha1 = "97af6ba86935292d5ed4a76cfee6e47d7ce02366" @@ -1843,15 +1884,15 @@ version = "1.0.0" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "532e22cf7be8462035d092ff21fada7527e2c488" +git-tree-sha1 = "d9717ce3518dc68a99e6b96300813760d887a01d" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.6+0" +version = "2.13.1+0" [[deps.XSLT_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] -git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" -version = "1.1.34+0" +version = "1.1.41+0" [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1884,10 +1925,10 @@ uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.4+0" [[deps.Xorg_libXext_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.4+4" +version = "1.3.6+0" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] @@ -1914,10 +1955,10 @@ uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" version = "1.5.2+4" [[deps.Xorg_libXrender_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] -git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.10+4" +version = "0.9.11+0" [[deps.Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1927,9 +1968,27 @@ version = "0.1.1+0" [[deps.Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.15.0+0" +version = "1.17.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" [[deps.Xorg_xtrans_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1985,10 +2044,10 @@ uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" version = "1.1.2+0" [[deps.libaom_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.4.0+0" +version = "3.9.0+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] @@ -2009,9 +2068,9 @@ version = "2.0.2+0" [[deps.libgeotiff_jll]] deps = ["Artifacts", "JLLWrappers", "LibCURL_jll", "Libdl", "Libtiff_jll", "PROJ_jll"] -git-tree-sha1 = "725d54dbc56fd1a21ca4917affe2197206b39d3e" +git-tree-sha1 = "c48ca6e850d4190dcb8e0ccd220380c2bc678403" uuid = "06c338fa-64ff-565b-ac2f-249532af990e" -version = "100.701.100+1" +version = "100.701.300+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] @@ -2031,6 +2090,12 @@ git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" version = "1.3.7+1" +[[deps.libwebp_jll]] +deps = ["Artifacts", "Giflib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libglvnd_jll", "Libtiff_jll", "libpng_jll"] +git-tree-sha1 = "ccbb625a89ec6195856a50aa2b668a5c08712c94" +uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2" +version = "1.4.0+0" + [[deps.libzip_jll]] deps = ["Artifacts", "Bzip2_jll", "GnuTLS_jll", "JLLWrappers", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] git-tree-sha1 = "3282b7d16ae7ac3e57ec2f3fa8fafb564d8f9f7f" @@ -2054,10 +2119,10 @@ uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+2" [[deps.snappy_jll]] -deps = ["Artifacts", "JLLWrappers", "LZO_jll", "Libdl", "Lz4_jll", "Zlib_jll"] -git-tree-sha1 = "8bc7ddafc0a7339b82a06c1dde849cd5039324d6" +deps = ["Artifacts", "JLLWrappers", "LZO_jll", "Libdl", "Zlib_jll"] +git-tree-sha1 = "ab27636e7c8222f14b9318a983fcd89cf130d419" uuid = "fe1e1685-f7be-5f59-ac9f-4ca204017dfd" -version = "1.2.0+0" +version = "1.1.10+0" [[deps.x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2070,3 +2135,9 @@ deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/Project.toml b/Raster-in-45-min/Project.toml similarity index 89% rename from Project.toml rename to Raster-in-45-min/Project.toml index 392552d..62285d5 100644 --- a/Project.toml +++ b/Raster-in-45-min/Project.toml @@ -1,5 +1,6 @@ [deps] ArchGDAL = "c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DimensionalData = "0703355e-b756-11e9-17c0-8b28908087d0" GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" diff --git a/Raster-in-45-min/Raster-in-45-min-julia.qmd b/Raster-in-45-min/Raster-in-45-min-julia-3.qmd similarity index 98% rename from Raster-in-45-min/Raster-in-45-min-julia.qmd rename to Raster-in-45-min/Raster-in-45-min-julia-3.qmd index 1d99aa6..038db92 100644 --- a/Raster-in-45-min/Raster-in-45-min-julia.qmd +++ b/Raster-in-45-min/Raster-in-45-min-julia-3.qmd @@ -1,4 +1,8 @@ -# Raster analysis in Julia in 45 minutes +--- +title: "Raster analysis in Julia in 45 minutes" +format: gfm +engine: julia +--- This tutorial is based on the xarray in 45 minutes https://tutorial.xarray.dev/overview/xarray-in-45-min.html @@ -34,7 +38,7 @@ using NCDatasets path = "data/air_temperature.nc" # First we download the data locally if needed. if !isfile(path) - path = download("https://github.com/pydata/xarray-data/blob/master/air_temperature.nc", "air_temperature.nc") + path = download("https://github.com/pydata/xarray-data/raw/master/air_temperature.nc", "air_temperature.nc") end # Now we can open the data as a RasterStack @@ -217,6 +221,7 @@ dims(ds, Ti) ``` ```{julia} +using Dates # pull out data for all of 2013-May ds[Ti=Where(x->yearmonth(x) == (2013, 5))] ``` @@ -420,7 +425,7 @@ fig, ax, pl = plot(nsingle) ``` ```{julia} -ax.finallimits +ax.finallimits[] ``` --- @@ -433,17 +438,17 @@ We have seen very simple plots earlier. Xarray also lets you easily visualize 3D and 4D datasets by presenting multiple facets (or panels or subplots) showing variations across rows and/or columns. -```{julia} +```python # facet the seasonal_mean seasonal_mean.air.plot(col="season", col_wrap=2); ``` -```{julia} +```python # contours seasonal_mean.air.plot.contour(col="season", levels=20, add_colorbar=True); ``` -```{julia} +```python # line plots too? wut seasonal_mean.air.mean("lon").plot.line(hue="season", y="lat"); ``` @@ -539,7 +544,7 @@ these blocks -```{julia} +```python # demonstrate dask dataset dasky = xr.tutorial.open_dataset( "air_temperature", @@ -552,7 +557,7 @@ dasky.air All computations with dask-backed xarray objects are lazy, allowing you to build up a complicated chain of analysis steps quickly -```{julia} +```python # demonstrate lazy mean dasky.air.mean("lat") ``` @@ -561,7 +566,7 @@ To get concrete values, call `.compute` or `.load` -```{julia} +```python # "compute" the mean dasky.air.mean("lat").compute() ``` @@ -574,7 +579,7 @@ The [`hvplot` package](https://hvplot.holoviz.org/user_guide/Gridded_Data.html) xarray objects under the `.hvplot` namespace. So instead of using `.plot` use `.hvplot` -```{julia} +```python import hvplot.xarray ds.air.hvplot(groupby="time", clim=(270, 300), widget_location='bottom') @@ -597,12 +602,12 @@ long as the appropriate CF attributes are set. For example, the `"longitude"` dimension in different files might be labelled as: (lon, LON, long, x…), but cf_xarray let's you always refer to the logical name `"longitude"` in your code: -```{julia} +```python import cf_xarray ``` -```{julia} +```python # describe cf attributes in dataset ds.air.cf ``` @@ -613,13 +618,13 @@ attributes set that allow detection of the "latitude" variable (e.g. -```{julia} +```python # demonstrate equivalent of .mean("lat") ds.air.cf.mean("latitude") ``` -```{julia} +```python # demonstrate indexing ds.air.cf.sel(longitude=242.5, method="nearest") ``` diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..8e89d52 --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,20 @@ +using Documenter, DocumenterVitepress + +using Literate + +# build Quarto notebooks + +for folder in ("Raster-in-45-min",) + for qmd_file in filter(endswith(".qmd"), readdir(joinpath(dirname(@__DIR__), folder); join = true)) + dir, file = splitdir(qmd_file) + cd(dir) do + run(`quarto render $(qmd_file)`) + end + md_file = replace(qmd_file, ".qmd" => ".md") + cp( + md_file, + joinpath(@__DIR__, "src", "content", folder, splitdir(md_file)[2]); + force = true + ) + end +end \ No newline at end of file