From bb1d8a575aa2aa9ff180446caa324e2dc498ed1f Mon Sep 17 00:00:00 2001 From: Bryan Weber Date: Tue, 12 Mar 2024 19:38:23 -0400 Subject: [PATCH] misc updates formatting (#23) * Add mise tasks * Fix a few typos in references * Add a config option to remove a deprecation warning * Bump to Python 3.12 and package versions * Update markdownling config * Run one job at once for linting/formatting * Formatting pyproject.toml * Formatting * Add julia to mise * Add requests dependency explicitly * Get the devcontainer working again * Update install instructions for Julia --- .devcontainer/Dockerfile.math-api | 8 +- .devcontainer/Dockerfile.workspace | 86 +- .devcontainer/devcontainer.json | 26 +- .devcontainer/docker-compose.yml | 2 +- .devcontainer/packages.jl | 16 - .github/workflows/deploy-book.yml | 2 +- .markdownlint-cli2.jsonc | 15 +- .mise.toml | 22 +- .mise/tasks/build | 6 + .vscode/settings.json | 3 +- INSTALL.md | 4 +- Manifest.toml | 2237 +++++++++++++++++ Project.toml | 10 + _config.yml | 2 +- .../7-effects-of-the-earths-oblateness.md | 4 + .../orbital-elements-and-the-state-vector.md | 7 + .../definition_of_argument_of_periapsis.py | 13 +- .../scripts/definition_of_inclination.py | 8 +- .../scripts/definition_of_raan.py | 13 +- .../orbital_elements_and_the_state_vector.py | 4 +- .../angular-momentum-is-conserved.md | 1 + .../energy-is-conserved-in-orbital-motion.md | 1 + dodo.py | 5 +- .../definition-of-argument-of-periapsis.ipynb | 779 +++--- .../definition-of-inclination.ipynb | 854 ++++--- ...definition-of-mean-eccentric-anomaly.ipynb | 43 +- drawing-scripts/definition-of-raan.ipynb | 1013 ++++---- intro/reference-frames.md | 1 + .../nonimpulsive-maneuver-example.ipynb | 46 +- orbital-maneuvers/plane-change-maneuvers.md | 2 +- pdm.lock | 1033 ++++---- pyproject.toml | 54 +- raw_svg/render_math_svg.py | 19 +- reference/planetary-ephemeris.md | 4 +- reference/planetary-parameters.md | 1 + reference/scripts/planet-orbital-elements.py | 15 +- reference/scripts/planet-radii.py | 9 +- .../standard-gravitational-parameter.py | 7 +- references.bib | 14 +- .../Equations-of-Motion-CR3BP.ipynb | 343 +-- .../Lagrange-points-example.ipynb | 195 +- .../circular-restricted-three-body-problem.md | 8 +- the-n-body-problem/jacobi-constant.md | 2 +- the-n-body-problem/lagrange-points.md | 8 +- .../two-body-inertial-numerical-solution.py | 19 +- .../two-body-relative-numerical-solution.py | 6 +- .../scripts/two-body-relative.npz | Bin 24756 -> 24756 bytes the-orbit-equation/hyperbolic_trajectory.py | 10 +- the-orbit-equation/orbital-nomenclature.md | 2 +- .../time-since-periapsis.md | 1 + 50 files changed, 4749 insertions(+), 2234 deletions(-) delete mode 100644 .devcontainer/packages.jl create mode 100755 .mise/tasks/build create mode 100644 Manifest.toml create mode 100644 Project.toml diff --git a/.devcontainer/Dockerfile.math-api b/.devcontainer/Dockerfile.math-api index ce48e7fe..0f130e8e 100644 --- a/.devcontainer/Dockerfile.math-api +++ b/.devcontainer/Dockerfile.math-api @@ -1,11 +1,11 @@ -# syntax=docker/dockerfile:1.5-labs -FROM node:18-alpine AS deps +# syntax=docker/dockerfile:1 +FROM node:20-alpine AS deps WORKDIR /usr/src/app ADD https://github.com/bryanwweber/math-api.git . RUN yarn install --frozen-lockfile -FROM node:18-alpine AS builder +FROM node:20-alpine AS builder WORKDIR /usr/src/app COPY --from=deps /usr/src/app/server.ts . COPY --from=deps /usr/src/app/index.ts . @@ -15,7 +15,7 @@ COPY --from=deps /usr/src/app/package.json . COPY --from=deps /usr/src/app/node_modules ./node_modules RUN npm run build -FROM node:18-alpine as runner +FROM node:20-alpine as runner WORKDIR /usr/src/app ENV NODE_ENV=production diff --git a/.devcontainer/Dockerfile.workspace b/.devcontainer/Dockerfile.workspace index 01fb584e..0306701e 100644 --- a/.devcontainer/Dockerfile.workspace +++ b/.devcontainer/Dockerfile.workspace @@ -1,71 +1,51 @@ -FROM python:3.10-alpine as pdm +FROM julia:1.10-bookworm as julia-builder -RUN mkdir -p /tmp/pdm -COPY pyproject.toml pdm.lock /tmp/pdm/ +COPY Project.toml Manifest.toml /root/.julia/environments/v1.10/ -WORKDIR /tmp/pdm +RUN julia -e "using Pkg; Pkg.instantiate(); Pkg.precompile();" + +FROM python:3.12-slim-bookworm as python-builder + +ENV PIP_ROOT_USER_ACTION=ignore RUN --mount=type=cache,target=/root/.cache \ - pip3 --disable-pip-version-check install pdm \ - && pdm export -f requirements > /tmp/pdm/requirements.txt - -FROM alpine:3 as julia -ARG JULIA_VERSION=1.9.0-rc1 -ARG JULIA_ARCH="x86_64" - -RUN mkdir -p /tmp/julia -WORKDIR /tmp - -RUN set -x && \ - if [ "$JULIA_ARCH" == "aarm64" ]; then \ - JULIA_ARCH="aarch64"; \ - S3_ARCH="aarch64"; \ - elif [ "$JULIA_ARCH" == "aarch64" ]; then \ - S3_ARCH="aarch64"; \ - elif [ "$JULIA_ARCH" == "x86_64" ]; then \ - S3_ARCH="x64"; \ - fi; \ - JULIA_INSTALLER="julia-${JULIA_VERSION}-linux-${JULIA_ARCH}.tar.gz" \ - && wget --quiet "https://julialang-s3.julialang.org/bin/checksums/julia-${JULIA_VERSION}.sha256" \ - && wget --quiet "https://julialang-s3.julialang.org/bin/linux/${S3_ARCH}/${JULIA_VERSION:0:3}/${JULIA_INSTALLER}" \ - && grep ${JULIA_INSTALLER} "julia-${JULIA_VERSION}.sha256" | sha256sum -cs \ - && tar -xf "${JULIA_INSTALLER}" -C /tmp/julia --strip-components=1 \ - && rm "${JULIA_INSTALLER}" - -FROM python:3.10-bullseye as workspace + python -m pip install pdm + +COPY pyproject.toml pdm.lock /project/ +WORKDIR /project +RUN --mount=type=cache,target=/root/.cache \ + mkdir __pypackages__ \ + && pdm sync + +FROM python:3.12-bookworm as workspace ARG USERNAME=vscode ARG USER_UID=1000 ARG USER_GID=$USER_UID -ARG JULIA_DIR=/opt/julia -ENV PATH="${JULIA_DIR}/bin:${PATH}" \ - HOME="/home/${USERNAME}" +ENV HOME="/home/${USERNAME}" \ + PYTHONPATH=/project/pkgs \ + JULIA_PATH=/usr/local/julia \ + JULIA_HOME=/home/${USERNAME}/.julia + +# Has to be a separate instruction to get the JULIA_PATH variable +ENV PATH="${JULIA_PATH}/bin:${PATH}" + COPY .devcontainer/fix-permissions /usr/local/bin/fix-permissions RUN chmod a+rx /usr/local/bin/fix-permissions -# Create USERNAME with name vscode user with UID=1000 and in the 'users' group -# and make sure these dirs are writable by the `users` group. +# Create USERNAME with name vscode with UID=1000 and in the 'users' group RUN groupadd --gid ${USER_GID} ${USERNAME} \ - && useradd --uid $USER_UID --gid ${USERNAME} --shell /bin/bash --create-home ${USERNAME} \ - && mkdir -p "${JULIA_DIR}" \ - && chown "${USER_UID}:${USER_GID}" "${JULIA_DIR}" \ - && chmod g+w /etc/passwd \ - && fix-permissions "${HOME}" \ - && fix-permissions "${JULIA_DIR}" - -COPY --from=pdm /tmp/pdm/requirements.txt /tmp/pip-tmp/ -RUN --mount=type=cache,target=/root/.cache \ - pip3 --disable-pip-version-check install -r /tmp/pip-tmp/requirements.txt \ - && rm -rf /tmp/pip-tmp + && useradd --uid ${USER_UID} --gid ${USER_GID} --shell /bin/bash --create-home ${USERNAME} -USER ${USERNAME} +COPY --from=python-builder /project/__pypackages__/3.12/lib /project/pkgs +COPY --from=python-builder /project/__pypackages__/3.12/bin/* /bin/ +COPY --from=julia-builder /usr/local/julia ${JULIA_PATH} +COPY --from=julia-builder /root/.julia ${HOME}/.julia -COPY --from=julia /tmp/julia/ "${JULIA_DIR}/" -COPY .devcontainer/packages.jl /tmp/packages.jl +RUN chown -R "${USER_UID}:${USER_GID}" "${JULIA_HOME}" \ + && fix-permissions "${JULIA_HOME}" -RUN fix-permissions "${JULIA_DIR}" -RUN julia "/tmp/packages.jl" \ - && fix-permissions "${HOME}/.julia" +USER ${USERNAME} WORKDIR /workspaces/orbital-mechanics-notes diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4e5a942f..affc648c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,28 +2,28 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-docker-compose { "name": "Orbital Mechanics Notes", - // Update the 'dockerComposeFile' list if you have more compose files or use different names. // The .devcontainer/docker-compose.yml file contains any overrides you need/want to make. - "dockerComposeFile": ["docker-compose.yml"], - + "dockerComposeFile": [ + "docker-compose.yml" + ], // The 'service' property is the name of the service for the container that VS Code should // use. Update this value and .devcontainer/docker-compose.yml to the real service name. "service": "workspace", - // The optional 'workspaceFolder' property is the path VS Code should open by default when // connected. This is typically a file mount in .devcontainer/docker-compose.yml "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", - // Use 'forwardPorts' to make a list of ports inside the container available locally. - "forwardPorts": [8080], - + "forwardPorts": [ + 8080 + ], // Uncomment the next line if you want start specific services in your Docker Compose config. - "runServices": ["http-server", "math-api"], - + "runServices": [ + "http-server", + "math-api" + ], // Uncomment the next line if you want to keep your containers running after VS Code shuts down. "shutdownAction": "stopCompose", - // Configure tool-specific properties. "customizations": { "vscode": { @@ -31,19 +31,15 @@ "DavidAnson.vscode-markdownlint", "ms-python.python", "ms-toolsai.jupyter", - "redhat.vscode-yaml", "streetsidesoftware.code-spell-checker", "tamasfe.even-better-toml", "VisualStudioExptTeam.vscodeintellicode" ], - "settings": { - } + "settings": {} } }, - // Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root. "containerUser": "vscode", "remoteUser": "vscode", "updateRemoteUserUID": true - } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 5d0ed79d..62648133 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -41,7 +41,7 @@ services: - ..:/workspaces/orbital-mechanics-notes:cached command: /bin/sh -c "while sleep 1000; do :; done" http-server: - image: python:3.10-alpine + image: python:3.12-alpine ports: ["8080:8080"] command: python3 -m http.server 8080 -d /html volumes: diff --git a/.devcontainer/packages.jl b/.devcontainer/packages.jl deleted file mode 100644 index 5f5a946a..00000000 --- a/.devcontainer/packages.jl +++ /dev/null @@ -1,16 +0,0 @@ -using Pkg - -dependencies = [ - "Luxor", - "IJulia", - "Thebes", - "LightXML", - "NLsolve", - "DifferentialEquations", - "Plots", - "Colors", - "Rotations", -] - -Pkg.add(dependencies) -Pkg.precompile() diff --git a/.github/workflows/deploy-book.yml b/.github/workflows/deploy-book.yml index 7fd2df17..c672fe51 100644 --- a/.github/workflows/deploy-book.yml +++ b/.github/workflows/deploy-book.yml @@ -20,7 +20,7 @@ jobs: uses: pdm-project/setup-pdm@v4 with: cache: true - python-version: "3.11" + python-version: "3.12" - name: Install dependencies run: pdm sync --prod # Build the book diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index 9b305b25..94a61fe7 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -1,7 +1,18 @@ { - "globs": ["**/*.md", "!.venv"], + "globs": [ + "**/*.md", + "!.venv", + "!_build", + "!_static" + ], "config": { + "MD003": false, "MD013": false, - "MD037": false + "MD024": false, + "MD033": false, + "MD037": false, + "MD041": false, + "MD055": false, + "MD056": false } } diff --git a/.mise.toml b/.mise.toml index 350f455e..5b6fdf1f 100644 --- a/.mise.toml +++ b/.mise.toml @@ -1,8 +1,28 @@ [tools] -python = { version = "3.11", virtualenv = ".venv" } +python = { version = "3.12", virtualenv = ".venv" } markdownlint-cli2 = "latest" pdm = "latest" +julia = "latest" [plugins] pdm = "https://github.com/1oglop1/asdf-pdm" markdownlint-cli2 = "https://github.com/paulo-ferraz-oliveira/asdf-markdownlint-cli2" +julia = "https://github.com/rkyleg/asdf-julia.git" + +[tasks] +lint = { depends = [ + "ruff_check_lint", + "ruff_format_lint", + "markdownlint_lint", +], description = "Run all the linter tools", env = { MISE_JOBS = "1" } } +ruff_check_lint = { description = "Run the ruff linter", run = "ruff check ." } +ruff_format_lint = { run = "ruff format --check .", description = "Run the ruff formatter in check mode" } +markdownlint_lint = { run = "markdownlint-cli2", description = "Run markdownlint" } +ruff_check_format = { run = "ruff check --fix .", description = "Run the ruff linter in fix mode" } +ruff_format_format = { run = "ruff format .", description = "Run the ruff formatter" } +markdownlint_format = { run = "markdownlint-cli2 --fix", description = "Run markdownlint in fix mode" } +format = { depends = [ + "ruff_check_format", + "ruff_format_format", + "markdownlint_format", +], description = "Run all the formatting tools", env = { MISE_JOBS = "1" } } diff --git a/.mise/tasks/build b/.mise/tasks/build new file mode 100755 index 00000000..653182c9 --- /dev/null +++ b/.mise/tasks/build @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# mise description="Build the book" +# mise env={PYDEVD_DISABLE_FILE_VALIDATION = "1"} +# mise source=["**/*.md", "**/*.ipynb", "**/*.svg"] +# mise outputs=["_build/html/**/*.html"] +jupyter-book build -W . diff --git a/.vscode/settings.json b/.vscode/settings.json index e638ce01..7aa38fd6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,6 +25,7 @@ // "---([\\n\\(\\)]|[^(\\$\\$)])*---" // ] } - ] + ], + "editor.formatOnSave": true } diff --git a/INSTALL.md b/INSTALL.md index dcdf9924..7fa4b9bc 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,5 +1,7 @@ # Install/Build the Book -The repo is set up to use [mise](https://mise.jdx.dev) to install required tools. Once `mise` is installed, changing into this directory should install the correct tools with the right versions. +The repo is set up to use [mise](https://mise.jdx.dev) to install required tools. Once `mise` is installed, changing into this directory should install the correct tools with the right versions. If not, run `mise install` to install everything. After that, running `pdm install` should install the dependencies. Then `doit build_jb` will build the book. + +If you want to work on the book, you may also need to install Julia dependencies. `mise` should install Julia. Running `julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.precompile();'` should install dependencies in a local project. diff --git a/Manifest.toml b/Manifest.toml new file mode 100644 index 00000000..3e55ee5e --- /dev/null +++ b/Manifest.toml @@ -0,0 +1,2237 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.2" +manifest_format = "2.0" +project_hash = "c58a762052c2959d818e0fa9f26be5bfad7d33fb" + +[[deps.ADTypes]] +git-tree-sha1 = "016833eb52ba2d6bea9fcb50ca295980e728ee24" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "0.2.7" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "cea4ac3f5b4bc4b3000aa55afb6e5626518948fa" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.0.3" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.2.0" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "44691067188f6bd1b2289552a23e4b7572f4528d" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.9.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceChainRulesExt = "ChainRules" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "e46675dbc095ddfdf2b5fba247d5a25f34e1f8a2" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.6.1" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.BandedMatrices]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] +git-tree-sha1 = "fe7ed7b33416db994f706f66e31bbd1b378f71b7" +uuid = "aae01518-5342-5314-be14-df237901396f" +version = "1.6.0" +weakdeps = ["SparseArrays"] + + [deps.BandedMatrices.extensions] + BandedMatricesSparseArraysExt = "SparseArrays" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.5.0" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.5" + +[[deps.BoundaryValueDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "BandedMatrices", "ConcreteStructs", "DiffEqBase", "FastAlmostBandedMatrices", "ForwardDiff", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays", "SparseDiffTools", "Tricks", "TruncatedStacktraces", "UnPack"] +git-tree-sha1 = "3ff968887be48760b0e9e8650c2d05c96cdea9d8" +uuid = "764a87c0-6b3e-53db-9096-fe964310641d" +version = "5.6.3" + + [deps.BoundaryValueDiffEq.extensions] + BoundaryValueDiffEqODEInterfaceExt = "ODEInterface" + BoundaryValueDiffEqOrdinaryDiffEqExt = "OrdinaryDiffEq" + + [deps.BoundaryValueDiffEq.weakdeps] + ODEInterface = "54ca160b-1b9f-5127-a996-1867f4bc2a2c" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "601f7e7b3d36f18790e2caf83a882d88e9b71ff1" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.4" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.0.5" + +[[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" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.0+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "575cd02e080939a33b6df6c5853d14924c08e35b" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.23.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.12" + +[[deps.CodecBzip2]] +deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] +git-tree-sha1 = "9b1ca1aa6ce3f71b3d1840c538a8210a043625eb" +uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" +version = "0.8.2" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.14.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.1.0+0" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "87944e19ea747808b73178ce5ebb74081fdf2d35" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.4.0" + +[[deps.Conda]] +deps = ["Downloads", "JSON", "VersionParsing"] +git-tree-sha1 = "51cab8e982c5b598eea9c8ceaced4b58d9dd37c9" +uuid = "8f4d0f93-b110-5947-807f-2305c1781a2d" +version = "1.10.0" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + + [deps.ConstructionBase.weakdeps] + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.18" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelayDiffEq]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] +git-tree-sha1 = "bfae672496149b369172eae6296290a381df2bdf" +uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" +version = "5.47.1" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffEqBase]] +deps = ["ArrayInterface", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces"] +git-tree-sha1 = "b19b2bb1ecd1271334e4b25d605e50f75e68fcae" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.148.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffEqCallbacks]] +deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NonlinearSolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "a731383bbafb87d496fb5e66f60c40e4a5f8f726" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "3.4.0" +weakdeps = ["OrdinaryDiffEq", "Sundials"] + +[[deps.DiffEqNoiseProcess]] +deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "65cbbe1450ced323b4b17228ccd96349d96795a7" +uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" +version = "5.21.0" + + [deps.DiffEqNoiseProcess.extensions] + DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" + + [deps.DiffEqNoiseProcess.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DifferentialEquations]] +deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] +git-tree-sha1 = "81042254a307980b8ab5b67033aca26c2e157ebb" +uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +version = "7.13.0" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.EnzymeCore]] +git-tree-sha1 = "59c44d8fbc651c0395d8a6eda64b05ce316f58b4" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.5" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.ExponentialUtilities]] +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "8e18940a5ba7f4ddb41fe2b79b6acaac50880a86" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.26.1" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[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"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FastAlmostBandedMatrices]] +deps = ["ArrayInterface", "ArrayLayouts", "BandedMatrices", "ConcreteStructs", "LazyArrays", "LinearAlgebra", "MatrixFactorizations", "PrecompileTools", "Reexport"] +git-tree-sha1 = "178316d87f883f0702e79d9c83a8049484c9f619" +uuid = "9d29842c-ecb8-4973-b1e9-a27b1157504e" +version = "0.1.0" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "a6e756a880fc419c8b41592010aebe6a5ce09136" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.2.8" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "0a59c7d1002f3131de53dc4568a47d15a44daef7" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.2" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.2" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "bc0c5092d6caaea112d3c8e3b238d61563c58d5f" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.23.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Format]] +git-tree-sha1 = "f3cf88025f6d03c194d73f5d13fee9004a108329" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.6" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "8ae30e786837ce0a24f5e2186938bf3251ab94b2" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.8" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[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" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "3437ade7073682993e092ca570ad68a2aba26983" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.3" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a96d5c713e6aa28c242b0d25c1347e258d6541ab" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.3+0" + +[[deps.GenericSchur]] +deps = ["LinearAlgebra", "Printf"] +git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" +uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" +version = "0.5.3" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "359a1ba2e320790ddbe4ee8b4d54a305c0ea2aff" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.80.0+0" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Graphs]] +deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "899050ace26649433ef1af25bc17a815b3db52b7" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.9.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "db864f2d91f68a5912937af80327d288ea1f3aee" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.3" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "eb8fed28f4994600e29beef49744639d985a04b2" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.16" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IJulia]] +deps = ["Base64", "Conda", "Dates", "InteractiveUtils", "JSON", "Libdl", "Logging", "Markdown", "MbedTLS", "Pkg", "Printf", "REPL", "Random", "SoftGlobalScope", "Test", "UUIDs", "ZMQ"] +git-tree-sha1 = "47ac8cc196b81001a711f4b2c12c97372338f00c" +uuid = "7073ff75-c697-5162-941a-fcdaad2a7d2a" +version = "1.24.2" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.Inflate]] +git-tree-sha1 = "ea8031dea4aff6bd41f1df8f2fdfb25b33626381" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.4" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.0.2+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3336abae9a713d2210bb57ab484b1e065edd7d23" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.2+0" + +[[deps.JumpProcesses]] +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "UnPack"] +git-tree-sha1 = "c451feb97251965a9fe40bacd62551a72cc5902c" +uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" +version = "9.10.1" +weakdeps = ["FastBroadcast"] + + [deps.JumpProcesses.extensions] + JumpProcessFastBroadcastExt = "FastBroadcast" + +[[deps.Juno]] +deps = ["Base64", "Logging", "Media", "Profile"] +git-tree-sha1 = "07cb43290a840908a771552911a6274bc6c072c7" +uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" +version = "0.8.4" + +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "07649c499349dad9f08dde4243a4c597064663e9" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.6.0" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "8a6837ec02fe5fb3def1abc907bb802ef11a0729" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.5" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "cad560042a7cc108f5a4c24ea1431a9221f22c1b" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.2" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "62edfee3211981241b57ff1cedf4d74d79519277" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.15" + +[[deps.LazyArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "MatrixFactorizations", "SparseArrays"] +git-tree-sha1 = "9cfca23ab83b0dfac93cb1a1ef3331ab9fe596a5" +uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" +version = "1.8.3" +weakdeps = ["StaticArrays"] + + [deps.LazyArrays.extensions] + LazyArraysStaticArraysExt = "StaticArrays" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LevyArea]] +deps = ["LinearAlgebra", "Random", "SpecialFunctions"] +git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" +uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" +version = "1.0.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", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "dae976433497a2f841baadea93d27e68f1a12a97" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.39.3+0" + +[[deps.Librsvg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pango_jll", "Pkg", "gdk_pixbuf_jll"] +git-tree-sha1 = "ae0923dab7324e6bc980834f709c4cd83dd797ed" +uuid = "925c91fb-5dd6-59dd-8e8c-345e74382d89" +version = "2.54.5+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0a04a1318df1bf510beb2562cf90fb0c386f58c4" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.39.3+1" + +[[deps.LightXML]] +deps = ["Libdl", "XML2_jll"] +git-tree-sha1 = "3a994404d3f6709610701c7dabfc03fed87a81f8" +uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +version = "0.9.1" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.2.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LinearSolve]] +deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "73d8f61f8d27f279edfbafc93faaea93ea447e94" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.27.0" + + [deps.LinearSolve.extensions] + LinearSolveBandedMatricesExt = "BandedMatrices" + LinearSolveBlockDiagonalsExt = "BlockDiagonals" + LinearSolveCUDAExt = "CUDA" + LinearSolveEnzymeExt = ["Enzyme", "EnzymeCore"] + LinearSolveFastAlmostBandedMatricesExt = ["FastAlmostBandedMatrices"] + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKernelAbstractionsExt = "KernelAbstractions" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMetalExt = "Metal" + LinearSolvePardisoExt = "Pardiso" + LinearSolveRecursiveArrayToolsExt = "RecursiveArrayTools" + + [deps.LinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.27" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "0f5648fbae0d015e3abe5867bca2b362f67a5894" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.166" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Luxor]] +deps = ["Base64", "Cairo", "Colors", "DataStructures", "Dates", "FFMPEG", "FileIO", "Juno", "LaTeXStrings", "PrecompileTools", "Random", "Requires", "Rsvg"] +git-tree-sha1 = "aa3eb624552373a6204c19b00e95ce62ea932d32" +uuid = "ae8d54c2-7ccd-5906-9d76-62fc9837b5bc" +version = "3.8.0" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.0.0+0" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathOptInterface]] +deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] +git-tree-sha1 = "679c1aec6934d322783bd15db4d18f898653be4f" +uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" +version = "1.27.0" + +[[deps.MatrixFactorizations]] +deps = ["ArrayLayouts", "LinearAlgebra", "Printf", "Random"] +git-tree-sha1 = "78f6e33434939b0ac9ba1df81e6d005ee85a7396" +uuid = "a3b82374-2e81-5b9e-98ce-41277c0e4c87" +version = "2.1.0" + +[[deps.MaybeInplace]] +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "SparseArrays"] +git-tree-sha1 = "a85c6a98c9e5a2a7046bc1bb89f28a3241e1de4d" +uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" +version = "0.1.1" + +[[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", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Media]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58" +uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27" +version = "0.5.0" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "302fd161eb1c439e4115b51ae456da4e9984f130" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.4.1" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NLsolve]] +deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] +git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" +uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +version = "4.5.1" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.NonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "TimerOutputs"] +git-tree-sha1 = "d52bac2b94358b4b960cbfb896d5193d67f3ff09" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "3.8.0" + + [deps.NonlinearSolve.extensions] + NonlinearSolveBandedMatricesExt = "BandedMatrices" + NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" + NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration" + NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim" + NonlinearSolveMINPACKExt = "MINPACK" + NonlinearSolveNLSolversExt = "NLSolvers" + NonlinearSolveNLsolveExt = "NLsolve" + NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" + NonlinearSolveSpeedMappingExt = "SpeedMapping" + NonlinearSolveSymbolicsExt = "Symbolics" + NonlinearSolveZygoteExt = "Zygote" + + [deps.NonlinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" + FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" + LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891" + MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9" + NLSolvers = "337daf1e-9722-11e9-073e-8b9effe078ba" + NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" + SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" + SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.OffsetArrays]] +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+4" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "af81a32750ebc831ee28bdaaba6e1067decef51e" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.2" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "MathOptInterface", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "d024bfb56144d947d4fafcd9cb5cafbe3410b133" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.9.2" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.OrdinaryDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "287159684e32db56c82dbf545004a7884c6e5198" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "6.74.0" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "526f5a03792669e4187e584e8ec9d534248ca765" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.52.1+0" + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.1" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "3c403c6590dd93b36752634115e20137e79ab4df" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.2" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PoissonRandom]] +deps = ["Random"] +git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" +uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" +version = "0.4.4" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "fca25670784a1ae44546bcb17288218310af2778" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.9" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.1" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff"] +git-tree-sha1 = "b6665214f2d0739f2d09a17474dd443b9139784a" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.20" + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + + [deps.PreallocationTools.weakdeps] + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.1" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.Quaternions]] +deps = ["LinearAlgebra", "Random", "RealDot"] +git-tree-sha1 = "994cc27cdacca10e68feb291673ec3a76aa2fae9" +uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" +version = "0.7.6" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.7.0" + +[[deps.RandomNumbers]] +deps = ["Random", "Requires"] +git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.5.3" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "SparseArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "a94d22ca9ad49a7a169ecbc5419c59b9793937cc" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.12.0" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "8bc86c78c7d8e2a5fe559e3721c0f9c9e303b2ed" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.21" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.ResettableStacks]] +deps = ["StaticArrays"] +git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" +uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" +version = "1.1.1" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.Rotations]] +deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] +git-tree-sha1 = "2a0a5d8569f481ff8840e3b7c84bbf188db6a3fe" +uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" +version = "1.7.0" +weakdeps = ["RecipesBase"] + + [deps.Rotations.extensions] + RotationsRecipesBaseExt = "RecipesBase" + +[[deps.Rsvg]] +deps = ["Cairo", "Glib_jll", "Librsvg_jll"] +git-tree-sha1 = "3d3dc66eb46568fb3a5259034bfc752a0eb0c686" +uuid = "c4c386cf-5103-5370-be45-f3a111cca3b8" +version = "1.0.0" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "6aacc5eefe8415f47b3e34214c1d79d2674a0ba2" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.12" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "3aac6d68c5e57449f5b9b865c9ba50ac2970c4cf" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.42" + +[[deps.SciMLBase]] +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "3a281a9fce9cd62b849d7f16e412933a5fe755cb" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.29.0" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseMakieExt = "Makie" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLOperators]] +deps = ["ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools", "Setfield", "SparseArrays", "StaticArraysCore"] +git-tree-sha1 = "10499f619ef6e890f3f4a38914481cc868689cd5" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.8" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.SimpleNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DiffResults", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "a535ae5083708f59e75d5bb3042c36d1be9bc778" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "1.6.0" + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" + SimpleNonlinearSolvePolyesterForwardDiffExt = "PolyesterForwardDiff" + SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" + SimpleNonlinearSolveStaticArraysExt = "StaticArrays" + SimpleNonlinearSolveTrackerExt = "Tracker" + SimpleNonlinearSolveZygoteExt = "Zygote" + + [deps.SimpleNonlinearSolve.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.SimpleUnPack]] +git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" +uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SoftGlobalScope]] +deps = ["REPL"] +git-tree-sha1 = "986ec2b6162ccb95de5892ed17832f95badf770c" +uuid = "b85f4697-e234-5449-a836-ec8e2f98b302" +version = "1.1.0" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "a616ac46c38da60ac05cecf52064d44732edd05e" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.17.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterExt = "Polyester" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Static]] +deps = ["IfElse"] +git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "0.8.10" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.5.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.3" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.1" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SteadyStateDiffEq]] +deps = ["ConcreteStructs", "DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "Reexport", "SciMLBase"] +git-tree-sha1 = "3875ef009bc726f12c8af2ea9a8bb115ff545d6d" +uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" +version = "2.1.0" + +[[deps.StochasticDiffEq]] +deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "97e5d0b7e5ec2e68eec6626af97c59e9f6b6c3d0" +uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +version = "6.65.1" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "d6415f66f3d89c615929af907fdc6a3e17af0d8c" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.2" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.Sundials]] +deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] +git-tree-sha1 = "e15f5a73f0d14b9079b807a9d1dac13e4302e997" +uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" +version = "4.24.0" + +[[deps.Sundials_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "SuiteSparse_jll", "libblastrampoline_jll"] +git-tree-sha1 = "ba4d38faeb62de7ef47155ed321dce40a549c305" +uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" +version = "5.2.2+0" + +[[deps.SymbolicIndexingInterface]] +deps = ["MacroTools", "RuntimeGeneratedFunctions"] +git-tree-sha1 = "f7b1fc9fc2bc938436b7684c243be7d317919056" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.11" + +[[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", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.Thebes]] +deps = ["Colors", "Luxor", "PackageExtensionCompat", "Random", "Rotations", "StaticArrays"] +git-tree-sha1 = "52be2beb73e37ff3f010b5e4135295d7872e1e27" +uuid = "8b424ff8-82f5-59a4-86a6-de3761897198" +version = "1.0.0" + + [deps.Thebes.extensions] + LaTeXExt = ["LaTeXStrings", "MathTeXEngine"] + + [deps.Thebes.weakdeps] + LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" + MathTeXEngine = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.23" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.4" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "fadebab77bf3ae041f77346dd1c290173da5a443" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.1.20" + +[[deps.Tricks]] +git-tree-sha1 = "eae1bb484cd63b36999ee58be2de6c178105112f" +uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" +version = "0.1.8" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "7209df901e6ed7489fe9b7aa3e46fb788e15db85" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.65" + +[[deps.VersionParsing]] +git-tree-sha1 = "58d6e80b4ee071f5efd07fda82cb9fbe17200868" +uuid = "81def892-9a0e-5fdd-b105-ffc91e053289" +version = "1.3.0" + +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[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.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.5+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "31c421e5516a6248dfb22c194519e37effbf1f30" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.6.1+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +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" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +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" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +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" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.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_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[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"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.ZMQ]] +deps = ["FileWatching", "Sockets", "ZeroMQ_jll"] +git-tree-sha1 = "356d2bdcc0bce90aabee1d1c0f6d6f301eda8f77" +uuid = "c2297ded-f4af-51ae-bb23-16f91089e4e1" +version = "1.2.2" + +[[deps.ZeroMQ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "libsodium_jll"] +git-tree-sha1 = "42f97fb27394378591666ab0e9cee369e6d0e1f9" +uuid = "8f1865be-045e-5c20-9c9f-bfbfb0764568" +version = "4.3.5+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gdk_pixbuf_jll]] +deps = ["Artifacts", "Glib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Xorg_libX11_jll", "libpng_jll"] +git-tree-sha1 = "86e7731be08b12fa5e741f719603ae740e16b666" +uuid = "da03df04-f53b-5353-a52f-6a8b0620ced0" +version = "2.42.10+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.43+1" + +[[deps.libsodium_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "848ab3d00fe39d6fbc2a8641048f8f272af1c51e" +uuid = "a9144af2-ca23-56d9-984f-0d03f7b5ccf8" +version = "1.0.20+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +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/Project.toml new file mode 100644 index 00000000..2335096a --- /dev/null +++ b/Project.toml @@ -0,0 +1,10 @@ +[deps] +Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" +DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" +LightXML = "9c8b4983-aa76-5018-a973-4c85ecc9e179" +Luxor = "ae8d54c2-7ccd-5906-9d76-62fc9837b5bc" +NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +Rotations = "6038ab10-8711-5258-84ad-4b1120ba62dc" +Thebes = "8b424ff8-82f5-59a4-86a6-de3761897198" diff --git a/_config.yml b/_config.yml index 2b304ae2..a858f0d6 100644 --- a/_config.yml +++ b/_config.yml @@ -29,6 +29,7 @@ sphinx: html_show_copyright: false html_extra_path: ["assets"] html_theme_options: + navigation_with_keys: false logo: image_light: "_static/hohmann-light.svg" image_dark: "_static/hohmann-dark.svg" @@ -59,7 +60,6 @@ parse: - colon_fence - dollarmath - html: baseurl: "https://orbital-mechanics.space" favicon: "_static/favicon-16x16.png" diff --git a/chapter-4/7-effects-of-the-earths-oblateness.md b/chapter-4/7-effects-of-the-earths-oblateness.md index 7aec4eea..e70d3246 100644 --- a/chapter-4/7-effects-of-the-earths-oblateness.md +++ b/chapter-4/7-effects-of-the-earths-oblateness.md @@ -30,6 +30,7 @@ Therefore, it is sufficient to define any two of $a$, $b$, or $f$ to define the The parameters specified in the WGS84 standard are: + | Parameter | Value | |----------------|----------------------------------------------------------------------------------| | $a$ | 6,378,137.0 m | @@ -38,6 +39,7 @@ The parameters specified in the WGS84 standard are: | Zero Longitude | [IERS Reference Meridian](https://en.wikipedia.org/wiki/IERS_Reference_Meridian) | | $\mu$ | 3986004.418×108 m³/s². | | $\omega_E$ | 72.92115×10−6 rad/s | + For even more accurate orbit calculations, particularly over longer time scales, it is necessary to map the variations in the earth's gravitational field due to things such as the tides, mountain ranges, oceans, and more. These effects are represented in a model called the [**Earth Gravitational Model**](https://en.wikipedia.org/wiki/Earth_Gravitational_Model) (EGM). The most recent EGM is from 2008 and relies on high accuracy satellite measurements of Earth's gravitational field. @@ -45,7 +47,9 @@ For even more accurate orbit calculations, particularly over longer time scales, ## Effect of Oblateness on Orbits + The effect of planetary oblateness on orbits is captured in the dimensionless parameter called $J_2$, the **second zonal harmonic**. The zonal harmonics are values that depend on the particular planet. For Earth, $J_2 =$ 1.08263×10-3 {cite}`Vallado2013` (Page 1039). + The effect of oblateness is to cause the right ascension of the ascending node and the argument of the periapsis to change as a function of time. The average rate of change of these variables is: diff --git a/classical-orbital-elements/orbital-elements-and-the-state-vector.md b/classical-orbital-elements/orbital-elements-and-the-state-vector.md index 7ab1cc69..82ff4942 100644 --- a/classical-orbital-elements/orbital-elements-and-the-state-vector.md +++ b/classical-orbital-elements/orbital-elements-and-the-state-vector.md @@ -83,7 +83,9 @@ Next, we need to calculate the orbital angular momentum. By definition, $\vector ::: :::: + We find $\vector{h} =$ {glue:text}`orbital-elements-h_vec-I:.0f` $\uvec{I}$ + {glue:text}`orbital-elements-h_vec-J:.0f` $\uvec{J}$ - {glue:text}`orbital-elements-h_vec-K:.0f` $\uvec{K}$ km2/s and $h =$ {glue:text}`orbital-elements-h:.3f` km2/s. Notice that the $Z$ component of the angular momentum is negative. This means the momentum vector is pointing down and the orbit is retrograde. The magnitude of the orbital angular momentum is the first orbital element. + ### Step 3—Inclination @@ -328,8 +330,10 @@ The sequence of rotations to convert from the perifocal frame to the inertial fr ::::{grid} 1 --- + gutter: 2 --- + :::{grid-item-card} Step 2.1—Rotate Until $\uvec{p}$ is Aligned With the Node Line By definition, the $\uvec{p}$ vector points towards periapsis. Therefore, it is also aligned with the eccentricity vector. If we rotate the frame around the $\uvec{w}$ axis until $\uvec{p}$ is aligned with the node line, this will align $\vector{e}$ with $\vector{N}$. This rotation is the negative of the argument of periapsis, $\omega$. @@ -353,6 +357,7 @@ These three angles ($\omega$, $i$, and $\Omega$) are called [**Euler angles**](h ::::{tab-item} PYTHON --- + sync: PYTHON --- @@ -371,8 +376,10 @@ To actually perform the rotation, we need to multiply the position and velocity ::::{tab-item} MATLAB --- + sync: MATLAB --- + :::{literalinclude} scripts/orbital_elements_and_the_state_vector.m :start-after: "[section-9]" :end-before: "[section-10]" diff --git a/classical-orbital-elements/scripts/definition_of_argument_of_periapsis.py b/classical-orbital-elements/scripts/definition_of_argument_of_periapsis.py index d6eee381..bee57d68 100644 --- a/classical-orbital-elements/scripts/definition_of_argument_of_periapsis.py +++ b/classical-orbital-elements/scripts/definition_of_argument_of_periapsis.py @@ -1,18 +1,17 @@ #!/usr/bin/env python -# coding: utf-8 -# **The canonical version of this is in `classical-orbital-elements/scripts/definition-of-raan.py`.** +# **The canonical version of this is in +# `classical-orbital-elements/scripts/definition-of-raan.py`.** # # This Notebook is here for interactive experimentation. # In[1]: -import plotly.graph_objects as go import numpy as np +import plotly.graph_objects as go from scipy.spatial.transform import Rotation as R - # In[2]: @@ -70,9 +69,9 @@ def arrow(start, end, fig=None, **kwargs): a = 100 e = 0.4 -b = a * np.sqrt(1 - e ** 2) +b = a * np.sqrt(1 - e**2) r_p = a * (1 - e) -p = a * (1 - e ** 2) +p = a * (1 - e**2) inclination = 30 raan = 30 @@ -83,7 +82,7 @@ def arrow(start, end, fig=None, **kwargs): theta = np.arange(0, 2 * np.pi, step=0.01) phi = 0 # https://math.stackexchange.com/a/819533 -r = a * (1 - e ** 2) / (1 - e * np.cos(theta - phi)) +r = a * (1 - e**2) / (1 - e * np.cos(theta - phi)) x = r * np.cos(theta) y = r * np.sin(theta) z = np.zeros_like(x) diff --git a/classical-orbital-elements/scripts/definition_of_inclination.py b/classical-orbital-elements/scripts/definition_of_inclination.py index fce76b3a..1f2e5af1 100644 --- a/classical-orbital-elements/scripts/definition_of_inclination.py +++ b/classical-orbital-elements/scripts/definition_of_inclination.py @@ -1,14 +1,12 @@ #!/usr/bin/env python -# coding: utf-8 # In[1]: -import plotly.graph_objects as go import numpy as np +import plotly.graph_objects as go from scipy.spatial.transform import Rotation as R - # In[2]: @@ -66,7 +64,7 @@ def arrow(start, end, fig=None, **kwargs): a = 100 e = 0.4 -b = a * np.sqrt(1 - e ** 2) +b = a * np.sqrt(1 - e**2) r_p = a * (1 - e) inclination = 30 @@ -77,7 +75,7 @@ def arrow(start, end, fig=None, **kwargs): theta = np.arange(0, 2 * np.pi, step=0.01) phi = 0 -r = a * (1 - e ** 2) / (1 - e * np.cos(theta - phi)) +r = a * (1 - e**2) / (1 - e * np.cos(theta - phi)) x = r * np.cos(theta) y = r * np.sin(theta) z = np.zeros_like(x) diff --git a/classical-orbital-elements/scripts/definition_of_raan.py b/classical-orbital-elements/scripts/definition_of_raan.py index 35959bcc..c27608ca 100644 --- a/classical-orbital-elements/scripts/definition_of_raan.py +++ b/classical-orbital-elements/scripts/definition_of_raan.py @@ -1,18 +1,17 @@ #!/usr/bin/env python -# coding: utf-8 -# **The canonical version of this is in `classical-orbital-elements/scripts/definition-of-raan.py`.** +# **The canonical version of this is in +# `classical-orbital-elements/scripts/definition-of-raan.py`.** # # This Notebook is here for interactive experimentation. # In[1]: -import plotly.graph_objects as go import numpy as np +import plotly.graph_objects as go from scipy.spatial.transform import Rotation as R - # In[2]: @@ -70,9 +69,9 @@ def arrow(start, end, fig=None, **kwargs): a = 100 e = 0.4 -b = a * np.sqrt(1 - e ** 2) +b = a * np.sqrt(1 - e**2) r_p = a * (1 - e) -p = a * (1 - e ** 2) +p = a * (1 - e**2) inclination = 30 raan = 30 @@ -83,7 +82,7 @@ def arrow(start, end, fig=None, **kwargs): theta = np.arange(0, 2 * np.pi, step=0.01) phi = 0 # https://math.stackexchange.com/a/819533 -r = a * (1 - e ** 2) / (1 - e * np.cos(theta - phi)) +r = a * (1 - e**2) / (1 - e * np.cos(theta - phi)) x = r * np.cos(theta) y = r * np.sin(theta) z = np.zeros_like(x) diff --git a/classical-orbital-elements/scripts/orbital_elements_and_the_state_vector.py b/classical-orbital-elements/scripts/orbital_elements_and_the_state_vector.py index 2b65a477..58de8c44 100644 --- a/classical-orbital-elements/scripts/orbital_elements_and_the_state_vector.py +++ b/classical-orbital-elements/scripts/orbital_elements_and_the_state_vector.py @@ -8,7 +8,7 @@ r = np.linalg.norm(r_vec) v = np.linalg.norm(v_vec) v_r = np.dot(r_vec / r, v_vec) -v_p = np.sqrt(v ** 2 - v_r ** 2) +v_p = np.sqrt(v**2 - v_r**2) # [section-2] h_vec = np.cross(r_vec, v_vec) @@ -34,7 +34,7 @@ nu = np.arccos(np.dot(r_vec / r, e_vec / e)) # [section-8] -r_w = h ** 2 / mu / (1 + e * np.cos(nu)) * np.array((np.cos(nu), np.sin(nu), 0)) +r_w = h**2 / mu / (1 + e * np.cos(nu)) * np.array((np.cos(nu), np.sin(nu), 0)) v_w = mu / h * np.array((-np.sin(nu), e + np.cos(nu), 0)) # [section-9] diff --git a/constants-of-orbital-motion/angular-momentum-is-conserved.md b/constants-of-orbital-motion/angular-momentum-is-conserved.md index ec3a1676..cc813022 100644 --- a/constants-of-orbital-motion/angular-momentum-is-conserved.md +++ b/constants-of-orbital-motion/angular-momentum-is-conserved.md @@ -1,4 +1,5 @@ (sec:conservation-of-angular-momentum)= + # Angular Momentum Is Conserved In Orbital Motion The two masses $m_1$ and $m_2$ in the two-body problem form a _system_, so they must follow all of the conservation laws: diff --git a/constants-of-orbital-motion/energy-is-conserved-in-orbital-motion.md b/constants-of-orbital-motion/energy-is-conserved-in-orbital-motion.md index 6b0ea398..83c98701 100644 --- a/constants-of-orbital-motion/energy-is-conserved-in-orbital-motion.md +++ b/constants-of-orbital-motion/energy-is-conserved-in-orbital-motion.md @@ -1,4 +1,5 @@ (sec:conservation-of-energy)= + # Energy Is Conserved In Orbital Motion The two masses $m_1$ and $m_2$ in the two-body problem form a _system_, so they must follow all of the conservation laws: diff --git a/dodo.py b/dodo.py index 794aa11c..0d72b6e8 100644 --- a/dodo.py +++ b/dodo.py @@ -1,8 +1,9 @@ from pathlib import Path -from doit.action import CmdAction -import yaml from textwrap import dedent +import yaml +from doit.action import CmdAction + from raw_svg import render_math_svg HERE = Path(__file__).parent diff --git a/drawing-scripts/definition-of-argument-of-periapsis.ipynb b/drawing-scripts/definition-of-argument-of-periapsis.ipynb index 01c4ee10..73c61f84 100644 --- a/drawing-scripts/definition-of-argument-of-periapsis.ipynb +++ b/drawing-scripts/definition-of-argument-of-periapsis.ipynb @@ -17,8 +17,8 @@ "metadata": {}, "outputs": [], "source": [ - "import plotly.graph_objects as go\n", "import numpy as np\n", + "import plotly.graph_objects as go\n", "from scipy.spatial.transform import Rotation as R" ] }, @@ -62,7 +62,7 @@ " fig.add_trace(line)\n", " fig.add_trace(cone)\n", " else:\n", - " return line, cone\n" + " return line, cone" ] }, { @@ -99,9 +99,9 @@ "raan = 30\n", "omega = 60\n", "\n", - "rot = R.from_euler('ZYZ', [raan, inclination, omega], degrees=True)\n", + "rot = R.from_euler(\"ZYZ\", [raan, inclination, omega], degrees=True)\n", "\n", - "theta = np.arange(0, 2*np.pi, step=0.01)\n", + "theta = np.arange(0, 2 * np.pi, step=0.01)\n", "phi = 0\n", "# https://math.stackexchange.com/a/819533\n", "r = a * (1 - e**2) / (1 - e * np.cos(theta - phi))\n", @@ -129,15 +129,40 @@ " )\n", ")\n", "inclination_range = np.arange(0, np.radians(inclination), step=0.01)\n", - "arc = vector_scale / 2 * np.vstack((np.sin(inclination_range), np.zeros_like(inclination_range), np.cos(inclination_range))).T\n", + "arc = (\n", + " vector_scale\n", + " / 2\n", + " * np.vstack(\n", + " (\n", + " np.sin(inclination_range),\n", + " np.zeros_like(inclination_range),\n", + " np.cos(inclination_range),\n", + " )\n", + " ).T\n", + ")\n", "arc_rot = R.from_euler(\"Z\", [raan], degrees=True)\n", "arc = arc_rot.apply(arc)\n", - "arc_2 = -r_p * np.vstack((np.cos(inclination_range), np.zeros_like(inclination_range), -np.sin(inclination_range))).T\n", + "arc_2 = (\n", + " -r_p\n", + " * np.vstack(\n", + " (\n", + " np.cos(inclination_range),\n", + " np.zeros_like(inclination_range),\n", + " -np.sin(inclination_range),\n", + " )\n", + " ).T\n", + ")\n", "arc_2 = arc_rot.apply(arc_2)\n", "N_vec = np.cross([0, 0, 1], rot_vec[1, :])\n", "N = np.linalg.norm(N_vec)\n", "u_N = N_vec / N\n", - "node_line = np.vstack((np.linspace(-100, 100, 2), u_N[1] / u_N[0] * np.linspace(-100, 100, 2), np.zeros(2))).T\n", + "node_line = np.vstack(\n", + " (\n", + " np.linspace(-100, 100, 2),\n", + " u_N[1] / u_N[0] * np.linspace(-100, 100, 2),\n", + " np.zeros(2),\n", + " )\n", + ").T\n", "\n", "ascending_node = rotated[52]\n", "descending_node = rotated[367]\n", @@ -145,7 +170,11 @@ "# nodes = rot.apply(nodes)\n", "\n", "raan_range = np.arange(0, np.radians(90 + raan), step=0.01)\n", - "raan_arc = vector_scale / 2 * np.vstack((np.cos(raan_range), np.sin(raan_range), np.zeros_like(raan_range))).T\n", + "raan_arc = (\n", + " vector_scale\n", + " / 2\n", + " * np.vstack((np.cos(raan_range), np.sin(raan_range), np.zeros_like(raan_range))).T\n", + ")\n", "\n", "r_rot = np.linalg.norm(rotated, axis=1) + 5\n", "t_rot = np.arctan2(np.linalg.norm(rotated[:, :2], axis=1), rotated[:, 2])\n", @@ -178,7 +207,7 @@ "x": [ -8.121778264910676, -9.38036518844823, - -10.637221155606285, + -10.637221155606284, -11.891969765843314, -13.144235905644774, -14.39364605115673, @@ -194,7 +223,7 @@ -26.650219921378223, -27.844309499980604, -29.031290222357907, - -30.210835023504586, + -30.210835023504583, -31.382622198608946, -32.54633562203173, -33.70166495769521, @@ -228,7 +257,7 @@ -61.60100886395519, -62.409525088367715, -63.20368917896815, - -63.983421952962196, + -63.98342195296219, -64.74865169119127, -65.4993140492383, -66.23535196252205, @@ -414,7 +443,7 @@ -39.290340077951555, -38.761172628866674, -38.23131029326116, - -37.700775245747764, + -37.70077524574776, -37.16958921807414, -36.637773507908264, -36.10534898751826, @@ -433,11 +462,11 @@ -29.137202944859045, -28.5982282246596, -28.058912320569135, - -27.519270396510354, + -27.51927039651035, -26.97931732337251, -26.43906768596926, - -25.898535789912398, - -25.357735668403322, + -25.8985357899124, + -25.35773566840332, -24.816681088943117, -24.275385559963276, -23.733862337377747, @@ -455,18 +484,18 @@ -17.222331729324264, -16.678951350387006, -16.135505841780475, - -15.592005409176641, + -15.59200540917664, -15.048460101118126, -14.50487981446552, -13.961274299792862, - -13.417653166733261, + -13.41765316673326, -12.87402588927596, -12.330401811016111, -11.786790150359357, -11.243200005681912, - -10.699640360448479, + -10.69964036044848, -10.156120088288638, - -9.612647958034055, + -9.612647958034056, -9.069232638717097, -8.525882704533238, -7.982606639767834, @@ -482,7 +511,7 @@ -2.5557207717665733, -2.0137963571671875, -1.4720423622212286, - -0.9304665373919001, + -0.9304665373919, -0.3890766093329878, 0.15211971453716897, 0.693114741474099, @@ -490,7 +519,7 @@ 1.7744701796419675, 2.3148152378377285, 2.85492828396814, - 3.3948016305545154, + 3.394801630554515, 3.934427577595374, 4.47379840804971, 5.012906383320673, @@ -503,7 +532,7 @@ 8.778645608115545, 9.315368073643388, 9.851756320036644, - 10.387802143928491, + 10.387802143928493, 10.923497270372147, 11.45883334822546, 11.99380194551862, @@ -512,13 +541,13 @@ 13.596417224107665, 14.129829799688574, 14.662831358926866, - 15.195412886465471, - 15.727565253094243, + 15.195412886465473, + 15.727565253094244, 16.259279210930018, 16.790545388567473, 17.32135428619871, 17.851696270700916, - 18.381561570690078, + 18.38156157069008, 18.910940271540035, 19.43982231036488, 19.96819747096403, @@ -535,7 +564,7 @@ 25.74377946501179, 26.26521233536167, 26.78598918833549, - 27.306097106272006, + 27.30609710627201, 27.82552293694479, 28.34425328772479, 28.862274519683336, @@ -570,14 +599,14 @@ 43.504771741261955, 43.99369583100714, 44.48133051255338, - 44.967650735641556, + 44.96765073564155, 45.45263096858961, 45.93624518978281, 46.41846687907857, 46.89926900912519, 47.37862403659581, 47.85650389333687, - 48.332879977432604, + 48.33287997743261, 48.80772314418545, 49.28100369701332, 49.7526913782649, @@ -610,7 +639,7 @@ 61.75858658931413, 62.17080741325345, 62.58026997297789, - 62.986922574975836, + 62.98692257497584, 63.39071265091904, 63.79158674729722, 64.18949051510613, @@ -745,8 +774,8 @@ 59.451956798975026, 58.699695479586495, 57.93351631221121, - 57.153466421192476, - 56.359599611554124, + 57.15346642119248, + 56.35959961155413, 55.55197647521866, 54.73066449260617, 53.895738129321046, @@ -774,7 +803,7 @@ 32.32656932564533, 31.216073120943665, 30.09598306280602, - 28.966559728826454, + 28.966559728826457, 27.82807061761143, 26.680790023246225, 25.52499889989518, @@ -787,10 +816,10 @@ 17.221093455522876, 16.00807930918488, 14.789355819329622, - 13.565260997376953, + 13.565260997376951, 12.336137408538471, 11.102331929484569, - 9.864195498749385, + 9.864195498749384, 8.622082860229638, 7.376352300149914, 6.127365377889416, @@ -819,7 +848,7 @@ 135.12862241003344, 134.99611099527243, 134.84136638430348, - 134.66448104513987, + 134.6644810451399, 134.46555811627118, 134.24471127388938, 134.00206458714945, @@ -838,7 +867,7 @@ 128.93813895878873, 128.4087047929536, 127.86044833903767, - 127.29363201850819, + 127.2936320185082, 126.70852474879072, 126.10540165681562, 125.48454378948726, @@ -846,40 +875,40 @@ 124.19077576171884, 123.5184546565445, 122.82957629425826, - 122.12444690735525, + 122.12444690735524, 121.40337687544626, - 120.66668042850753, - 119.91467535104283, + 120.66668042850752, + 119.91467535104285, 119.14768268760892, - 118.36602645014315, - 117.57003332751593, + 118.36602645014317, + 117.57003332751592, 116.760032397716, 115.93635484306114, - 115.09933366880863, + 115.09933366880864, 114.2493034255251, - 113.38659993555517, - 112.51156002391271, - 111.62452125389929, + 113.38659993555515, + 112.51156002391272, + 111.62452125389927, 110.72582166773546, 109.8157995324737, 108.89479309144104, - 107.96314032144245, + 107.96314032144244, 107.02117869593648, 106.06924495437691, - 105.10767487789421, + 105.1076748778942, 104.13680307147489, 103.15696275277634, 102.16848554769923, 101.17170129282042, 100.16693784477432, 99.15452089665254, - 98.13477380147665, - 97.10801740278299, - 96.07456987234319, + 98.13477380147664, + 97.108017402783, + 96.0745698723432, 95.03474655503057, - 93.98885982082717, - 92.93721892395419, - 91.88012986909501, + 93.98885982082716, + 92.9372189239542, + 91.880129869095, 90.81789528466808, 89.75081430309574, 88.67918244800312, @@ -910,10 +939,10 @@ 61.19032522338667, 60.09050916495845, 58.992516596658625, - 57.896520746584436, - 56.802690431563796, + 57.89652074658443, + 56.80269043156379, 55.711190091365594, - 54.622179825427324, + 54.62217982542733, 53.535815431956195, 52.45224844926285, 51.37162619918973, @@ -938,7 +967,7 @@ 31.566079433607275, 30.569247445822644, 29.57757256847965, - 28.591123068138106, + 28.591123068138103, 27.60996430608498, 26.634158799658973, 25.66376628334793, @@ -957,9 +986,9 @@ 13.563731624957002, 12.673976944983908, 11.79023767462079, - 10.912536984114785, + 10.912536984114784, 10.040896226475752, - 9.175334988386433, + 9.175334988386432, 8.315871140343974, 7.462520886023131, 6.615298810852971, @@ -983,24 +1012,24 @@ -7.578639454857716, -8.308478831937368, -9.032170455718266, - -9.749723923794173, - -10.461149585418745, + -9.749723923794171, + -10.461149585418744, -11.166458510979034, -11.865662462182817, -12.55877386295032, -13.245805771000494, -13.926771850122032, - -14.601686343118903, - -15.270564045420203, + -14.601686343118905, + -15.270564045420205, -15.93342027934391, -16.590270869003973, -17.24113211585026, -17.886020774830477, -18.52495403116355, - -19.157949477713426, - -19.785025092952726, + -19.157949477713423, + -19.78502509295273, -20.406199219505176, - -21.021490543256242, + -21.02149054325624, -21.63091807302083, -22.234501120757564, -22.83225928231868, @@ -1019,7 +1048,7 @@ -30.08237382896159, -30.600758615811156, -31.113634947791873, - -31.621024741434038, + -31.62102474143404, -32.122949941776625, -32.61943251100657, -33.11049441744569, @@ -1063,7 +1092,7 @@ -47.96424866574614, -48.26015171480297, -48.55142593585872, - -48.838087334403916, + -48.83808733440392, -49.120151677711576, -49.39763449240222, -49.67055106210145, @@ -1090,7 +1119,7 @@ -54.37137589512737, -54.54718559896438, -54.71870927735793, - -54.885955870338876, + -54.88595587033888, -55.04893403847315, -55.207652162023514, -55.362118340142885, @@ -1100,7 +1129,7 @@ -55.93761569983894, -56.07093374647937, -56.20004249776619, - -56.324948064870796, + -56.3249480648708, -56.445656272382195, -56.562172657728205, -56.67450247061626, @@ -1125,10 +1154,10 @@ -58.01818105936971, -58.047434526532605, -58.07254438206654, - -58.093509435356516, + -58.09350943535651, -58.11032819912962, -58.12299888919474, - -58.131519424191204, + -58.1315194241912, -58.13588742534701, -58.13610021624629, -58.132154822606445, @@ -1157,7 +1186,7 @@ -56.88244395233546, -56.77703257124644, -56.66729142703484, - -56.553209763210596, + -56.55320976321059, -56.43477652466277, -56.311980357931226, -56.18480961151068, @@ -1186,7 +1215,7 @@ -52.02128356562391, -51.78486186787003, -51.54367919936883, - -51.297716415706596, + -51.29771641570659, -51.046954101955976, -50.791372574749545, -50.530951884458645, @@ -1218,7 +1247,7 @@ -41.99019104942883, -41.59068058264478, -41.18567730546668, - -40.775155130515564, + -40.77515513051557, -40.35908784193597, -39.9374491033619, -39.510212466175545, @@ -1241,7 +1270,7 @@ -31.364730565080933, -30.832139079528975, -30.293439263044053, - -29.748604685755478, + -29.74860468575548, -29.19760906270103, -28.640426270912375, -28.07703036702432, @@ -1264,10 +1293,10 @@ -17.524825298942527, -16.845482221081365, -16.15949489259133, - -15.466845574436105, + -15.466845574436103, -14.767517219520968, -14.061493504899056, - -13.348758864776299, + -13.3487588647763, -12.629298524326174, -11.903098534323476, -11.170145806608044, @@ -1275,7 +1304,7 @@ -9.683934309384943, -8.930653999850012, -8.170577949424455, - -7.4036979368867755, + -7.403697936886776, -6.630006832772203, -5.849498640878208, -5.062168540659459, @@ -1286,8 +1315,8 @@ -1.0231085218210367, -0.19481714509092285, 0.6402932154055773, - 1.4822163407159785, - 2.3309444141122198, + 1.4822163407159783, + 2.33094441411222, 3.186467969679341, 4.048775840013511, 4.9178551030377715, @@ -1296,7 +1325,7 @@ 7.565564566094615, 8.461563175494081, 9.364240325021138, - 10.273571399499755, + 10.273571399499756, 11.189529632980085, 12.112086048934234, 13.041209399708338, @@ -1308,11 +1337,11 @@ 18.751803523911384, 19.72581667542928, 20.70605753055607, - 21.692471568293758, + 21.69247156829376, 22.68500135680567, 23.683586486878195, 24.688163505108847, - 25.698665846877002, + 25.698665846877, 26.715023769159863, 27.7371642832571, 28.765011087493832, @@ -1337,7 +1366,7 @@ 49.25035064541515, 50.370615469424585, 51.49410398083709, - 52.620651022663836, + 52.62065102266384, 53.750086782673826, 54.88223675566007, 56.01692170859867, @@ -1346,7 +1375,7 @@ 59.4343225547893, 60.5772594971448, 61.72176334066524, - 62.867625936395676, + 62.86762593639568, 64.01463425852802, 65.1625703986977, 66.3112115646962, @@ -1371,53 +1400,53 @@ 87.93794291514564, 89.04658351773251, 90.15017593457942, - 91.24840063805755, - 92.34093477579249, + 91.24840063805756, + 92.34093477579248, 93.42745232046065, 94.5076242270617, 95.5811185976676, - 96.64760085363719, + 96.6476008536372, 97.70673391526738, - 98.75817838883907, + 98.75817838883908, 99.80159276099512, 100.83663360037498, 101.86295576641064, 102.88021262517216, 103.88805627213156, - 104.88613776169635, + 104.88613776169636, 105.87410734334485, - 106.85161470417687, + 106.85161470417688, 107.81830921767312, 108.77384019843842, - 109.71785716268393, - 110.65001009418485, - 111.56994971542997, - 112.47732776366077, + 109.71785716268391, + 110.65001009418484, + 111.56994971542996, + 112.47732776366075, 113.37179727147854, - 114.25301285168109, - 115.12063098596897, - 115.97431031714669, - 116.81371194442515, + 114.25301285168108, + 115.12063098596896, + 115.97431031714667, + 116.81371194442517, 117.63849972141556, - 118.44834055638917, + 118.44834055638916, 119.2429047143605, - 120.02186612054007, + 120.02186612054008, 120.78490266468482, - 121.53169650586739, + 121.5316965058674, 122.26193437716776, 122.97530788978534, 123.67151383605636, - 124.35025449085771, - 125.01123791086637, + 124.35025449085772, + 125.01123791086636, 125.65417823114298, - 126.27879595850065, - 126.88481826112081, - 127.47197925387263, + 126.27879595850064, + 126.8848182611208, + 127.47197925387265, 128.0400202787979, 128.58869018022105, 129.1177455739511, 129.62695111004487, - 130.11607972860907, + 130.1160797286091, 130.58491290812802, 131.03324090581202, 131.46086298947444, @@ -1443,7 +1472,7 @@ -33.77614215994599, -33.15592458760343, -32.5304319325651, - -31.899855321372346, + -31.899855321372343, -31.26438818107152, -30.624226078412683, -29.979566556838343, @@ -1455,7 +1484,7 @@ -26.028433253397477, -25.357954069989045, -24.684608913458177, - -24.008605560141238, + -24.00860556014124, -23.33015207501981, -22.64945664349768, -21.966727404414684, @@ -1467,14 +1496,14 @@ -17.83925061942567, -17.14807445064294, -16.456508484784354, - -15.764753258563763, - -15.073007715692137, - -14.381469069501417, + -15.764753258563765, + -15.073007715692135, + -14.381469069501415, -13.690332669474111, -12.999791871834404, -12.310037914344884, -11.621259795440908, - -10.933644157822705, + -10.933644157822703, -10.24737517661322, -9.562634452177626, -8.879600907688392, @@ -1491,9 +1520,9 @@ -1.527129453460724, -0.8774451438912898, -0.2315127205698244, - 0.41053437254085595, + 0.4105343725408559, 1.048566313945319, - 1.6824569289149853, + 1.682456928914985, 2.3120837092710036, 2.93732782874218, 3.5580741539957046, @@ -1506,9 +1535,9 @@ 7.768465791396116, 8.349528514195573, 8.925223244201916, - 9.495471511906821, + 9.49547151190682, 10.060198409127368, - 10.619332557315225, + 10.619332557315223, 11.172806073154444, 11.720554531583668, 12.262516926378591, @@ -1528,7 +1557,7 @@ 19.216033535617, 19.66606519934357, 20.109760086677696, - 20.547107549766878, + 20.54710754976688, 20.978099379400497, 21.402729742890525, 21.82099512181839, @@ -1550,7 +1579,7 @@ 27.65274302341002, 27.9642091567836, 28.26957287937874, - 28.568863156136402, + 28.5688631561364, 28.862110096286283, 29.149344902316695, 29.43059981988455, @@ -1679,10 +1708,10 @@ 31.251485505843068, 31.0919544644259, 30.93069536814094, - 30.767724199289926, + 30.76772419928993, 30.603056677470484, 30.436708262576506, - 30.268694157791302, + 30.268694157791305, 30.09902931257251, 29.927728425628004, 29.754805947881906, @@ -1693,7 +1722,7 @@ 28.866358506030565, 28.68399644790745, 28.50010726426635, - 28.314703529133894, + 28.314703529133897, 28.127797594896833, 27.93940159513618, 27.749527447445825, @@ -1711,9 +1740,9 @@ 25.35979742966682, 25.151698615030273, 24.942267359646628, - 24.731512668349822, + 24.731512668349826, 24.519443372830615, - 24.306068134171962, + 24.30606813417196, 24.091395445367905, 23.875433633826596, 23.658190863857264, @@ -1726,7 +1755,7 @@ 22.102277324043797, 21.87506203847438, 21.64663233662551, - 21.416994885290634, + 21.41699488529063, 21.18615621454839, 20.954122720080942, 20.720900665480308, @@ -1735,12 +1764,12 @@ 20.014163843567268, 19.77624762265046, 19.53717225815967, - 19.296943268972758, + 19.29694326897276, 19.055566057727567, 18.813045913049503, 18.569388011771533, 18.32459742114678, - 18.078679101054682, + 18.07867910105468, 17.831637906200736, 17.583478588310857, 17.33420579832047, @@ -1754,7 +1783,7 @@ 15.30046506128518, 15.041364762908248, 14.781192437462082, - 14.519951770805527, + 14.519951770805529, 14.25764637409596, 13.994279785967064, 13.729855474710448, @@ -1762,7 +1791,7 @@ 13.19784721739033, 12.93026987589863, 12.66164802482284, - 12.391984813644639, + 12.39198481364464, 12.12128333470951, 11.849546625453907, 11.576777670642104, @@ -1770,8 +1799,8 @@ 11.028154713538976, 10.752306437694592, 10.475437373740576, - 10.197550277019339, - 9.918647863865731, + 10.19755027701934, + 9.918647863865733, 9.63873281393269, 9.35780777253302, 9.075875352998128, @@ -1800,7 +1829,7 @@ 2.3191240795964543, 2.013758923208636, 1.7074486829847264, - 1.4001960462644225, + 1.4001960462644223, 1.0920037419740207, 0.7828745438597434, 0.4728112737687823, @@ -1809,7 +1838,7 @@ -0.46295395810329454, -0.7767242180111235, -1.091413600827456, - -1.4070189243787221, + -1.407018924378722, -1.7235369339860125, -2.040964298757403, -2.359297607821117, @@ -1817,7 +1846,7 @@ -2.998667992410828, -3.319697811532835, -3.641619054167571, - -3.9644278508650794, + -3.964427850865079, -4.288120228269281, -4.61269210489605, -4.938139286840713, @@ -1833,12 +1862,12 @@ -8.239740894114858, -8.574502963271698, -8.910079576481573, - -9.246464652829129, + -9.246464652829127, -9.583651930611612, - -9.921634961803859, - -10.260407106427957, + -9.92163496180386, + -10.260407106427955, -10.599961526826547, - -10.940291181837699, + -10.9402911818377, -11.281388820870376, -11.6232469778786, -11.96585796523288, @@ -1847,7 +1876,7 @@ -12.998127577701766, -13.343668358109564, -13.689919985098422, - -14.036873306908113, + -14.036873306908111, -14.384518904299608, -14.732847083553816, -15.08184786935498, @@ -1867,7 +1896,7 @@ -20.03216199070897, -20.389840190359138, -20.747986823272555, - -21.106585921246758, + -21.10658592124676, -21.465621085512037, -21.82507547725228, -22.184931807997703, @@ -1881,7 +1910,7 @@ -25.07602142894912, -25.438638117856343, -25.80145692608837, - -26.164454948929386, + -26.164454948929382, -26.527608707017063, -26.890894135161417, -27.25428657105679, @@ -1890,14 +1919,14 @@ -28.344850105509853, -28.70841160620576, -29.071947444197026, - -29.435429131843254, + -29.435429131843257, -29.79882750265998, - -30.162112699307198, - -30.525254161508894, + -30.1621126993072, + -30.525254161508897, -30.888220613909628, -31.25098005387448, -31.61349973923941, - -31.975746176018454, + -31.975746176018458, -32.33768510607595, -32.699281494771284, -33.06049951858514, @@ -1939,11 +1968,11 @@ -45.43734054496207, -45.75108198030181, -46.06238552373404, - -46.371176214791156, + -46.37117621479115, -46.67737796199391, -46.98091354445665, -47.2817046144115, - -47.579671700689204, + -47.5796717006892, -47.874734213195715, -48.166810448423576, -48.45581759603859, @@ -1951,8 +1980,8 @@ -49.02428790032543, -49.303579977331616, -49.57946082874255, - -49.851842249356636, - -50.120634991524916, + -49.85184224935664, + -50.12063499152491, -50.385748780412534, -50.64709233066676, -50.90457336453414, @@ -1984,9 +2013,9 @@ -55.92124949561557, -56.036714316266966, -56.14545698400639, - -56.247372203697644, + -56.24737220369765, -56.34235508278929, - -56.430301209815276, + -56.43030120981528, -56.51110673494933, -56.58466845257922, -56.650883885862235, @@ -1995,13 +2024,13 @@ -56.80444047224662, -56.84026364159026, -56.868242166019755, - -56.888279821664916, + -56.88827982166491, -56.900281756378575, - -56.904154588080196, + -56.90415458808019, -56.899806504477496, -56.887147364069214, -56.86608879832517, - -56.836544314934436, + -56.83654431493443, -56.79842940200553, -56.75166163309657, -56.69616077294693, @@ -2017,10 +2046,10 @@ -55.6449606629592, -55.48883375040303, -55.323220645765126, - -55.148079270130076, + -55.14807927013008, -54.963371204107965, -54.769061784895456, - -54.565120201273196, + -54.5651202012732, -54.35151958633623, -54.128237107753804, -53.89525405535315, @@ -2076,7 +2105,7 @@ "x": [ -8.121778264910676, -9.38036518844823, - -10.637221155606285, + -10.637221155606284, -11.891969765843314, -13.144235905644774, -14.39364605115673, @@ -2092,7 +2121,7 @@ -26.650219921378223, -27.844309499980604, -29.031290222357907, - -30.210835023504586, + -30.210835023504583, -31.382622198608946, -32.54633562203173, -33.70166495769521, @@ -2126,7 +2155,7 @@ -61.60100886395519, -62.409525088367715, -63.20368917896815, - -63.983421952962196, + -63.98342195296219, -64.74865169119127, -65.4993140492383, -66.23535196252205, @@ -2312,7 +2341,7 @@ -39.290340077951555, -38.761172628866674, -38.23131029326116, - -37.700775245747764, + -37.70077524574776, -37.16958921807414, -36.637773507908264, -36.10534898751826, @@ -2331,11 +2360,11 @@ -29.137202944859045, -28.5982282246596, -28.058912320569135, - -27.519270396510354, + -27.51927039651035, -26.97931732337251, -26.43906768596926, - -25.898535789912398, - -25.357735668403322, + -25.8985357899124, + -25.35773566840332, -24.816681088943117, -24.275385559963276, -23.733862337377747, @@ -2353,18 +2382,18 @@ -17.222331729324264, -16.678951350387006, -16.135505841780475, - -15.592005409176641, + -15.59200540917664, -15.048460101118126, -14.50487981446552, -13.961274299792862, - -13.417653166733261, + -13.41765316673326, -12.87402588927596, -12.330401811016111, -11.786790150359357, -11.243200005681912, - -10.699640360448479, + -10.69964036044848, -10.156120088288638, - -9.612647958034055, + -9.612647958034056, -9.069232638717097, -8.525882704533238, -7.982606639767834, @@ -2380,7 +2409,7 @@ -2.5557207717665733, -2.0137963571671875, -1.4720423622212286, - -0.9304665373919001, + -0.9304665373919, -0.3890766093329878, 0.15211971453716897, 0.693114741474099, @@ -2388,7 +2417,7 @@ 1.7744701796419675, 2.3148152378377285, 2.85492828396814, - 3.3948016305545154, + 3.394801630554515, 3.934427577595374, 4.47379840804971, 5.012906383320673, @@ -2401,7 +2430,7 @@ 8.778645608115545, 9.315368073643388, 9.851756320036644, - 10.387802143928491, + 10.387802143928493, 10.923497270372147, 11.45883334822546, 11.99380194551862, @@ -2410,13 +2439,13 @@ 13.596417224107665, 14.129829799688574, 14.662831358926866, - 15.195412886465471, - 15.727565253094243, + 15.195412886465473, + 15.727565253094244, 16.259279210930018, 16.790545388567473, 17.32135428619871, 17.851696270700916, - 18.381561570690078, + 18.38156157069008, 18.910940271540035, 19.43982231036488, 19.96819747096403, @@ -2433,7 +2462,7 @@ 25.74377946501179, 26.26521233536167, 26.78598918833549, - 27.306097106272006, + 27.30609710627201, 27.82552293694479, 28.34425328772479, 28.862274519683336, @@ -2468,14 +2497,14 @@ 43.504771741261955, 43.99369583100714, 44.48133051255338, - 44.967650735641556, + 44.96765073564155, 45.45263096858961, 45.93624518978281, 46.41846687907857, 46.89926900912519, 47.37862403659581, 47.85650389333687, - 48.332879977432604, + 48.33287997743261, 48.80772314418545, 49.28100369701332, 49.7526913782649, @@ -2508,7 +2537,7 @@ 61.75858658931413, 62.17080741325345, 62.58026997297789, - 62.986922574975836, + 62.98692257497584, 63.39071265091904, 63.79158674729722, 64.18949051510613, @@ -2643,8 +2672,8 @@ 59.451956798975026, 58.699695479586495, 57.93351631221121, - 57.153466421192476, - 56.359599611554124, + 57.15346642119248, + 56.35959961155413, 55.55197647521866, 54.73066449260617, 53.895738129321046, @@ -2672,7 +2701,7 @@ 32.32656932564533, 31.216073120943665, 30.09598306280602, - 28.966559728826454, + 28.966559728826457, 27.82807061761143, 26.680790023246225, 25.52499889989518, @@ -2685,10 +2714,10 @@ 17.221093455522876, 16.00807930918488, 14.789355819329622, - 13.565260997376953, + 13.565260997376951, 12.336137408538471, 11.102331929484569, - 9.864195498749385, + 9.864195498749384, 8.622082860229638, 7.376352300149914, 6.127365377889416, @@ -2717,7 +2746,7 @@ 135.12862241003344, 134.99611099527243, 134.84136638430348, - 134.66448104513987, + 134.6644810451399, 134.46555811627118, 134.24471127388938, 134.00206458714945, @@ -2736,7 +2765,7 @@ 128.93813895878873, 128.4087047929536, 127.86044833903767, - 127.29363201850819, + 127.2936320185082, 126.70852474879072, 126.10540165681562, 125.48454378948726, @@ -2744,40 +2773,40 @@ 124.19077576171884, 123.5184546565445, 122.82957629425826, - 122.12444690735525, + 122.12444690735524, 121.40337687544626, - 120.66668042850753, - 119.91467535104283, + 120.66668042850752, + 119.91467535104285, 119.14768268760892, - 118.36602645014315, - 117.57003332751593, + 118.36602645014317, + 117.57003332751592, 116.760032397716, 115.93635484306114, - 115.09933366880863, + 115.09933366880864, 114.2493034255251, - 113.38659993555517, - 112.51156002391271, - 111.62452125389929, + 113.38659993555515, + 112.51156002391272, + 111.62452125389927, 110.72582166773546, 109.8157995324737, 108.89479309144104, - 107.96314032144245, + 107.96314032144244, 107.02117869593648, 106.06924495437691, - 105.10767487789421, + 105.1076748778942, 104.13680307147489, 103.15696275277634, 102.16848554769923, 101.17170129282042, 100.16693784477432, 99.15452089665254, - 98.13477380147665, - 97.10801740278299, - 96.07456987234319, + 98.13477380147664, + 97.108017402783, + 96.0745698723432, 95.03474655503057, - 93.98885982082717, - 92.93721892395419, - 91.88012986909501, + 93.98885982082716, + 92.9372189239542, + 91.880129869095, 90.81789528466808, 89.75081430309574, 88.67918244800312, @@ -2808,10 +2837,10 @@ 61.19032522338667, 60.09050916495845, 58.992516596658625, - 57.896520746584436, - 56.802690431563796, + 57.89652074658443, + 56.80269043156379, 55.711190091365594, - 54.622179825427324, + 54.62217982542733, 53.535815431956195, 52.45224844926285, 51.37162619918973, @@ -2836,7 +2865,7 @@ 31.566079433607275, 30.569247445822644, 29.57757256847965, - 28.591123068138106, + 28.591123068138103, 27.60996430608498, 26.634158799658973, 25.66376628334793, @@ -2855,9 +2884,9 @@ 13.563731624957002, 12.673976944983908, 11.79023767462079, - 10.912536984114785, + 10.912536984114784, 10.040896226475752, - 9.175334988386433, + 9.175334988386432, 8.315871140343974, 7.462520886023131, 6.615298810852971, @@ -2881,24 +2910,24 @@ -7.578639454857716, -8.308478831937368, -9.032170455718266, - -9.749723923794173, - -10.461149585418745, + -9.749723923794171, + -10.461149585418744, -11.166458510979034, -11.865662462182817, -12.55877386295032, -13.245805771000494, -13.926771850122032, - -14.601686343118903, - -15.270564045420203, + -14.601686343118905, + -15.270564045420205, -15.93342027934391, -16.590270869003973, -17.24113211585026, -17.886020774830477, -18.52495403116355, - -19.157949477713426, - -19.785025092952726, + -19.157949477713423, + -19.78502509295273, -20.406199219505176, - -21.021490543256242, + -21.02149054325624, -21.63091807302083, -22.234501120757564, -22.83225928231868, @@ -2917,7 +2946,7 @@ -30.08237382896159, -30.600758615811156, -31.113634947791873, - -31.621024741434038, + -31.62102474143404, -32.122949941776625, -32.61943251100657, -33.11049441744569, @@ -2961,7 +2990,7 @@ -47.96424866574614, -48.26015171480297, -48.55142593585872, - -48.838087334403916, + -48.83808733440392, -49.120151677711576, -49.39763449240222, -49.67055106210145, @@ -2988,7 +3017,7 @@ -54.37137589512737, -54.54718559896438, -54.71870927735793, - -54.885955870338876, + -54.88595587033888, -55.04893403847315, -55.207652162023514, -55.362118340142885, @@ -2998,7 +3027,7 @@ -55.93761569983894, -56.07093374647937, -56.20004249776619, - -56.324948064870796, + -56.3249480648708, -56.445656272382195, -56.562172657728205, -56.67450247061626, @@ -3023,10 +3052,10 @@ -58.01818105936971, -58.047434526532605, -58.07254438206654, - -58.093509435356516, + -58.09350943535651, -58.11032819912962, -58.12299888919474, - -58.131519424191204, + -58.1315194241912, -58.13588742534701, -58.13610021624629, -58.132154822606445, @@ -3055,7 +3084,7 @@ -56.88244395233546, -56.77703257124644, -56.66729142703484, - -56.553209763210596, + -56.55320976321059, -56.43477652466277, -56.311980357931226, -56.18480961151068, @@ -3084,7 +3113,7 @@ -52.02128356562391, -51.78486186787003, -51.54367919936883, - -51.297716415706596, + -51.29771641570659, -51.046954101955976, -50.791372574749545, -50.530951884458645, @@ -3116,7 +3145,7 @@ -41.99019104942883, -41.59068058264478, -41.18567730546668, - -40.775155130515564, + -40.77515513051557, -40.35908784193597, -39.9374491033619, -39.510212466175545, @@ -3139,7 +3168,7 @@ -31.364730565080933, -30.832139079528975, -30.293439263044053, - -29.748604685755478, + -29.74860468575548, -29.19760906270103, -28.640426270912375, -28.07703036702432, @@ -3162,10 +3191,10 @@ -17.524825298942527, -16.845482221081365, -16.15949489259133, - -15.466845574436105, + -15.466845574436103, -14.767517219520968, -14.061493504899056, - -13.348758864776299, + -13.3487588647763, -12.629298524326174, -11.903098534323476, -11.170145806608044, @@ -3173,7 +3202,7 @@ -9.683934309384943, -8.930653999850012, -8.170577949424455, - -7.4036979368867755, + -7.403697936886776, -6.630006832772203, -5.849498640878208, -5.062168540659459, @@ -3184,8 +3213,8 @@ -1.0231085218210367, -0.19481714509092285, 0.6402932154055773, - 1.4822163407159785, - 2.3309444141122198, + 1.4822163407159783, + 2.33094441411222, 3.186467969679341, 4.048775840013511, 4.9178551030377715, @@ -3194,7 +3223,7 @@ 7.565564566094615, 8.461563175494081, 9.364240325021138, - 10.273571399499755, + 10.273571399499756, 11.189529632980085, 12.112086048934234, 13.041209399708338, @@ -3206,11 +3235,11 @@ 18.751803523911384, 19.72581667542928, 20.70605753055607, - 21.692471568293758, + 21.69247156829376, 22.68500135680567, 23.683586486878195, 24.688163505108847, - 25.698665846877002, + 25.698665846877, 26.715023769159863, 27.7371642832571, 28.765011087493832, @@ -3235,7 +3264,7 @@ 49.25035064541515, 50.370615469424585, 51.49410398083709, - 52.620651022663836, + 52.62065102266384, 53.750086782673826, 54.88223675566007, 56.01692170859867, @@ -3244,7 +3273,7 @@ 59.4343225547893, 60.5772594971448, 61.72176334066524, - 62.867625936395676, + 62.86762593639568, 64.01463425852802, 65.1625703986977, 66.3112115646962, @@ -3269,53 +3298,53 @@ 87.93794291514564, 89.04658351773251, 90.15017593457942, - 91.24840063805755, - 92.34093477579249, + 91.24840063805756, + 92.34093477579248, 93.42745232046065, 94.5076242270617, 95.5811185976676, - 96.64760085363719, + 96.6476008536372, 97.70673391526738, - 98.75817838883907, + 98.75817838883908, 99.80159276099512, 100.83663360037498, 101.86295576641064, 102.88021262517216, 103.88805627213156, - 104.88613776169635, + 104.88613776169636, 105.87410734334485, - 106.85161470417687, + 106.85161470417688, 107.81830921767312, 108.77384019843842, - 109.71785716268393, - 110.65001009418485, - 111.56994971542997, - 112.47732776366077, + 109.71785716268391, + 110.65001009418484, + 111.56994971542996, + 112.47732776366075, 113.37179727147854, - 114.25301285168109, - 115.12063098596897, - 115.97431031714669, - 116.81371194442515, + 114.25301285168108, + 115.12063098596896, + 115.97431031714667, + 116.81371194442517, 117.63849972141556, - 118.44834055638917, + 118.44834055638916, 119.2429047143605, - 120.02186612054007, + 120.02186612054008, 120.78490266468482, - 121.53169650586739, + 121.5316965058674, 122.26193437716776, 122.97530788978534, 123.67151383605636, - 124.35025449085771, - 125.01123791086637, + 124.35025449085772, + 125.01123791086636, 125.65417823114298, - 126.27879595850065, - 126.88481826112081, - 127.47197925387263, + 126.27879595850064, + 126.8848182611208, + 127.47197925387265, 128.0400202787979, 128.58869018022105, 129.1177455739511, 129.62695111004487, - 130.11607972860907, + 130.1160797286091, 130.58491290812802, 131.03324090581202, 131.46086298947444, @@ -3341,7 +3370,7 @@ -33.77614215994599, -33.15592458760343, -32.5304319325651, - -31.899855321372346, + -31.899855321372343, -31.26438818107152, -30.624226078412683, -29.979566556838343, @@ -3353,7 +3382,7 @@ -26.028433253397477, -25.357954069989045, -24.684608913458177, - -24.008605560141238, + -24.00860556014124, -23.33015207501981, -22.64945664349768, -21.966727404414684, @@ -3365,14 +3394,14 @@ -17.83925061942567, -17.14807445064294, -16.456508484784354, - -15.764753258563763, - -15.073007715692137, - -14.381469069501417, + -15.764753258563765, + -15.073007715692135, + -14.381469069501415, -13.690332669474111, -12.999791871834404, -12.310037914344884, -11.621259795440908, - -10.933644157822705, + -10.933644157822703, -10.24737517661322, -9.562634452177626, -8.879600907688392, @@ -3389,9 +3418,9 @@ -1.527129453460724, -0.8774451438912898, -0.2315127205698244, - 0.41053437254085595, + 0.4105343725408559, 1.048566313945319, - 1.6824569289149853, + 1.682456928914985, 2.3120837092710036, 2.93732782874218, 3.5580741539957046, @@ -3404,9 +3433,9 @@ 7.768465791396116, 8.349528514195573, 8.925223244201916, - 9.495471511906821, + 9.49547151190682, 10.060198409127368, - 10.619332557315225, + 10.619332557315223, 11.172806073154444, 11.720554531583668, 12.262516926378591, @@ -3426,7 +3455,7 @@ 19.216033535617, 19.66606519934357, 20.109760086677696, - 20.547107549766878, + 20.54710754976688, 20.978099379400497, 21.402729742890525, 21.82099512181839, @@ -3448,7 +3477,7 @@ 27.65274302341002, 27.9642091567836, 28.26957287937874, - 28.568863156136402, + 28.5688631561364, 28.862110096286283, 29.149344902316695, 29.43059981988455, @@ -3577,10 +3606,10 @@ 31.251485505843068, 31.0919544644259, 30.93069536814094, - 30.767724199289926, + 30.76772419928993, 30.603056677470484, 30.436708262576506, - 30.268694157791302, + 30.268694157791305, 30.09902931257251, 29.927728425628004, 29.754805947881906, @@ -3591,7 +3620,7 @@ 28.866358506030565, 28.68399644790745, 28.50010726426635, - 28.314703529133894, + 28.314703529133897, 28.127797594896833, 27.93940159513618, 27.749527447445825, @@ -3609,9 +3638,9 @@ 25.35979742966682, 25.151698615030273, 24.942267359646628, - 24.731512668349822, + 24.731512668349826, 24.519443372830615, - 24.306068134171962, + 24.30606813417196, 24.091395445367905, 23.875433633826596, 23.658190863857264, @@ -3624,7 +3653,7 @@ 22.102277324043797, 21.87506203847438, 21.64663233662551, - 21.416994885290634, + 21.41699488529063, 21.18615621454839, 20.954122720080942, 20.720900665480308, @@ -3633,12 +3662,12 @@ 20.014163843567268, 19.77624762265046, 19.53717225815967, - 19.296943268972758, + 19.29694326897276, 19.055566057727567, 18.813045913049503, 18.569388011771533, 18.32459742114678, - 18.078679101054682, + 18.07867910105468, 17.831637906200736, 17.583478588310857, 17.33420579832047, @@ -3652,7 +3681,7 @@ 15.30046506128518, 15.041364762908248, 14.781192437462082, - 14.519951770805527, + 14.519951770805529, 14.25764637409596, 13.994279785967064, 13.729855474710448, @@ -3660,7 +3689,7 @@ 13.19784721739033, 12.93026987589863, 12.66164802482284, - 12.391984813644639, + 12.39198481364464, 12.12128333470951, 11.849546625453907, 11.576777670642104, @@ -3668,8 +3697,8 @@ 11.028154713538976, 10.752306437694592, 10.475437373740576, - 10.197550277019339, - 9.918647863865731, + 10.19755027701934, + 9.918647863865733, 9.63873281393269, 9.35780777253302, 9.075875352998128, @@ -3698,7 +3727,7 @@ 2.3191240795964543, 2.013758923208636, 1.7074486829847264, - 1.4001960462644225, + 1.4001960462644223, 1.0920037419740207, 0.7828745438597434, 0.4728112737687823, @@ -3707,7 +3736,7 @@ -0.46295395810329454, -0.7767242180111235, -1.091413600827456, - -1.4070189243787221, + -1.407018924378722, -1.7235369339860125, -2.040964298757403, -2.359297607821117, @@ -3715,7 +3744,7 @@ -2.998667992410828, -3.319697811532835, -3.641619054167571, - -3.9644278508650794, + -3.964427850865079, -4.288120228269281, -4.61269210489605, -4.938139286840713, @@ -3731,12 +3760,12 @@ -8.239740894114858, -8.574502963271698, -8.910079576481573, - -9.246464652829129, + -9.246464652829127, -9.583651930611612, - -9.921634961803859, - -10.260407106427957, + -9.92163496180386, + -10.260407106427955, -10.599961526826547, - -10.940291181837699, + -10.9402911818377, -11.281388820870376, -11.6232469778786, -11.96585796523288, @@ -3745,7 +3774,7 @@ -12.998127577701766, -13.343668358109564, -13.689919985098422, - -14.036873306908113, + -14.036873306908111, -14.384518904299608, -14.732847083553816, -15.08184786935498, @@ -3765,7 +3794,7 @@ -20.03216199070897, -20.389840190359138, -20.747986823272555, - -21.106585921246758, + -21.10658592124676, -21.465621085512037, -21.82507547725228, -22.184931807997703, @@ -3779,7 +3808,7 @@ -25.07602142894912, -25.438638117856343, -25.80145692608837, - -26.164454948929386, + -26.164454948929382, -26.527608707017063, -26.890894135161417, -27.25428657105679, @@ -3788,14 +3817,14 @@ -28.344850105509853, -28.70841160620576, -29.071947444197026, - -29.435429131843254, + -29.435429131843257, -29.79882750265998, - -30.162112699307198, - -30.525254161508894, + -30.1621126993072, + -30.525254161508897, -30.888220613909628, -31.25098005387448, -31.61349973923941, - -31.975746176018454, + -31.975746176018458, -32.33768510607595, -32.699281494771284, -33.06049951858514, @@ -3837,11 +3866,11 @@ -45.43734054496207, -45.75108198030181, -46.06238552373404, - -46.371176214791156, + -46.37117621479115, -46.67737796199391, -46.98091354445665, -47.2817046144115, - -47.579671700689204, + -47.5796717006892, -47.874734213195715, -48.166810448423576, -48.45581759603859, @@ -3849,8 +3878,8 @@ -49.02428790032543, -49.303579977331616, -49.57946082874255, - -49.851842249356636, - -50.120634991524916, + -49.85184224935664, + -50.12063499152491, -50.385748780412534, -50.64709233066676, -50.90457336453414, @@ -3882,9 +3911,9 @@ -55.92124949561557, -56.036714316266966, -56.14545698400639, - -56.247372203697644, + -56.24737220369765, -56.34235508278929, - -56.430301209815276, + -56.43030120981528, -56.51110673494933, -56.58466845257922, -56.650883885862235, @@ -3893,13 +3922,13 @@ -56.80444047224662, -56.84026364159026, -56.868242166019755, - -56.888279821664916, + -56.88827982166491, -56.900281756378575, - -56.904154588080196, + -56.90415458808019, -56.899806504477496, -56.887147364069214, -56.86608879832517, - -56.836544314934436, + -56.83654431493443, -56.79842940200553, -56.75166163309657, -56.69616077294693, @@ -3915,10 +3944,10 @@ -55.6449606629592, -55.48883375040303, -55.323220645765126, - -55.148079270130076, + -55.14807927013008, -54.963371204107965, -54.769061784895456, - -54.565120201273196, + -54.5651202012732, -54.35151958633623, -54.128237107753804, -53.89525405535315, @@ -4230,11 +4259,11 @@ ], "type": "scatter3d", "x": [ - -63.983421952962196, + -63.98342195296219, 31.4412485376668 ], "y": [ - 111.62452125389929, + 111.62452125389927, -53.93785771076774 ], "z": [ @@ -4684,7 +4713,7 @@ -53.29456354190548, -52.75748958661442, -52.21881196716832, - -51.678566484760836, + -51.67856648476083, -51.13678833485194, -50.59351211782443, -50.04877184953401, @@ -4694,7 +4723,7 @@ -47.85583070410488, -47.304260683706346, -46.751419009195175, - -46.197335890961796, + -46.19733589096179, -45.64204103531637, -45.08556365404207, -44.52793247383603, @@ -4707,12 +4736,12 @@ -40.59452327470417, -40.028640680433305, -39.4618425009065, - -38.894153106609636, + -38.89415310660963, -38.32559647944443, -37.75619622084726, -37.18597555980264, -36.614957360751646, - -36.043164131396956, + -36.04316413139696, -35.47061803040492, -34.89734087500658, -34.32335414849751, @@ -4748,16 +4777,16 @@ -16.86862884500164, -16.281796899992646, -15.694806643737444, - -15.107672167770861, - -14.520407434585879, - -13.933026282495359, + -15.10767216777086, + -14.52040743458588, + -13.93302628249536, -13.345542430445466, -12.75796948278268, -12.170320933975274, - -11.582610173291641, + -11.58261017329164, -10.994850489436129, - -10.407055075144687, - -9.819237031741181, + -10.407055075144688, + -9.81923703174118, -9.231409373656454, -8.64358503291123, -8.055776863564663, @@ -4768,7 +4797,7 @@ -5.117423576342452, -4.5299785573042675, -3.942637872287561, - -3.3554139081663514, + -3.355413908166351, -2.7683190125868555, -2.181365498154174, -1.5945656466004434, @@ -4776,8 +4805,8 @@ -0.4214759295910008, 0.16478948947127767, 0.7508523446333961, - 1.3367004465283179, - 1.9223216119471407 + 1.336700446528318, + 1.922321611947141 ], "y": [ 115.9624117936202, @@ -4785,26 +4814,26 @@ 114.10983606155162, 113.16625740795422, 112.21160528251876, - 111.24621945862023, - 110.27043901811267, + 111.24621945862025, + 110.27043901811268, 109.28460212677656, 108.28904581625976, - 107.28410577264937, - 106.27011613179775, - 105.24740928150405, + 107.28410577264935, + 106.27011613179776, + 105.24740928150403, 104.21631567064058, 103.17716362529332, - 102.13027917197127, + 102.13027917197128, 101.07598586792398, - 100.01460463859067, + 100.01460463859068, 98.94645362219126, 97.87184802145408, 96.79109996246312, - 95.70451836059367, - 94.61240879349423, - 93.51507338106063, - 92.41281067233581, - 91.30591553926173, + 95.70451836059368, + 94.61240879349424, + 93.51507338106065, + 92.4128106723358, + 91.30591553926172, 90.19467907719677, 89.07938851210471, 87.96032711431303, @@ -4829,7 +4858,7 @@ 66.32743878266089, 65.18584890514327, 64.04543330061168, - 62.906378006867236, + 62.90637800686723, 61.76886461871357, 60.633070316296966, 59.49916789625737, @@ -4843,13 +4872,13 @@ 50.51537433165906, 49.4055700214355, 48.29915303948659, - 47.196250679952996, + 47.19625067995299, 46.09698639508329, 45.00147985042811, 43.90984698103842, 42.822200048564426, 41.73864769915611, - 40.659295022069124, + 40.65929502206912, 39.58424360888411, 38.51359161325067, 37.44743381107045, @@ -4864,9 +4893,9 @@ 28.0682966073275, 27.051593833636367, 26.040222280919227, - 25.034240944965134, + 25.034240944965138, 24.03370623357131, - 23.038672025795986, + 23.038672025795982, 22.04918973076067, 21.065308345966073, 20.087074515087004, @@ -4874,13 +4903,13 @@ 18.14772466351731, 17.18669067329083, 16.23146840937568, - 15.282093592915535, + 15.282093592915537, 14.338599925437183, - 13.401019142232375, + 13.401019142232377, 12.469381065023656, 11.543713653898973, 10.624043058500265, - 9.710393668454003, + 9.710393668454005, 8.802788163032497, 7.90124756003609, 7.0057912638885735, @@ -4895,7 +4924,7 @@ -0.7770589862605897, -1.6109271278598745, -2.438591044211953, - -3.2600472324099514, + -3.260047232409951, -4.07529325090774, -4.884327682675407, -5.687150099139228, @@ -4903,8 +4932,8 @@ -7.274161903221896, -8.05835506228829, -8.836343682210716, - -9.608131762789247, - -10.373724092012063, + -9.608131762789249, + -10.373724092012065, -11.13312621528671, -11.886344405394054, -12.63338563315537, @@ -4920,7 +4949,7 @@ -19.76604239460465, -20.445769451116448, -21.119447895393495, - -21.787091409815474, + -21.78709140981547, -22.448714033367786, -23.10433014177393, -23.7539544281732, @@ -4929,13 +4958,13 @@ -25.6670276570587, -26.292837288467272, -26.912732685310083, - -27.526730068616054, + -27.526730068616057, -28.134845855932603, -28.73709664597936, -29.33349920375182, -29.924070446065056, -30.508827427527365, - -31.087787326933842, + -31.08778732693384, -31.660967434070567, -32.228385136919016, -32.79005790925213, @@ -4962,7 +4991,7 @@ -43.28938782012509, -43.72913278219019, -44.16353498865093, - -44.592611114174396, + -44.5926111141744, -45.01637771118136, -45.43485120472071, -45.848047887531386, @@ -4990,8 +5019,8 @@ -53.63436863448987, -53.93033039907178, -54.22135660993337, - -54.507459088838196, - -54.788649446235596, + -54.50745908883819, + -54.7886494462356, -55.06493907960334, -55.33633917186078, -55.60286068985008, @@ -5009,7 +5038,7 @@ -58.424281220143016, -58.62827854777447, -58.8275274379631, - -59.022035472642884, + -59.02203547264288, -59.21181000062085, -59.39685813685814, -59.577186761781185, @@ -5062,8 +5091,8 @@ 10.47428431602497, 11.058052029997349, 11.636115240039452, - 12.208407062140969, - 12.774864035761645, + 12.208407062140967, + 12.774864035761643, 13.335426082354932, 13.890036461720907, 14.43864172632235, @@ -5073,11 +5102,11 @@ 16.57205521587976, 17.089945009757066, 17.601575367481082, - 18.106914467148446, + 18.10691446714845, 18.605933356153987, 19.098605892872698, 19.584908687526948, - 20.064821042346118, + 20.06482104234612, 20.538324891122453, 21.005404738264073, 21.46604759744194, @@ -5103,7 +5132,7 @@ 29.326734539633794, 29.652990523289727, 29.97303472049666, - 30.286895165109506, + 30.286895165109502, 30.594600998283312, 30.89618241858934, 31.191670633086503, @@ -5138,7 +5167,7 @@ 37.276549591398904, 37.40702961000814, 37.532663175698026, - 37.653493848891884, + 37.65349384889189, 37.769565129919535, 37.8809204415446, 37.98760311220559, @@ -5154,7 +5183,7 @@ 38.80686921629049, 38.86497077465629, 38.91890707934848, - 38.968719002845596, + 38.9687190028456, 39.01444715458567, 39.056131872991266, 39.09381321795773, @@ -5172,7 +5201,7 @@ 39.24790031612475, 39.23704546323847, 39.22271560768073, - 39.204946003313516, + 39.20494600331352, 39.18377155737067, 39.15922682883948, 39.13134602708756, @@ -5200,7 +5229,7 @@ 37.73873050150281, 37.64275358985173, 37.54415661891918, - 37.442965154439236, + 37.44296515443923, 37.33920443612646, 37.23289938003622, 37.1240745809846, @@ -5239,10 +5268,10 @@ 32.26249760689152, 32.08052068366355, 31.896703806194456, - 31.711061867389766, + 31.71106186738977, 31.523609544367197, 31.33436130128091, - 31.143331392130786, + 31.143331392130783, 30.950533863555545, 30.755982557609517, 30.559691114522693, @@ -5251,16 +5280,16 @@ 29.96050939482845, 29.757389864620173, 29.552595466435253, - 29.346138686533706, + 29.346138686533703, 29.138031828173535, 28.9282870142257, 28.716916189770107, 28.50393112467255, - 28.289343416142678, + 28.28934341614268, 28.073164491272625, 27.855405609556744, 27.636077865392163, - 27.415192190560262, + 27.415192190560266, 27.192759356689255, 26.968789977697877, 26.743294512220302, @@ -5276,7 +5305,7 @@ 24.40659973445945, 24.164965548485146, 23.921919525280416, - 23.677470317253874, + 23.67747031725387, 23.431626453622005, 23.184396342579937, 22.935788273457593, @@ -5288,13 +5317,13 @@ 21.41565250157486, 21.15762128901484, 20.89827440820598, - 20.637619173559354, + 20.63761917355935, 20.375662801486644, 20.11241241242736, 19.847875032867087, - 19.582057597347674, + 19.58205759734767, 19.314966950469604, - 19.046609848887282, + 19.04660984888728, 18.776992963297655, 18.506122880423057, 18.234006104988374, @@ -5329,7 +5358,7 @@ }, "eye": { "x": 1.2812950198053348, - "y": 0.43084834204699235, + "y": 0.4308483420469923, "z": 1.2105576229066528 }, "projection": { @@ -6315,7 +6344,7 @@ " marker={\"symbol\": \"circle-open\", \"size\": [0, 20]},\n", " text=[\"\", \"periapsis\"],\n", " textfont=dict(size=20, family=\"sans-serif\", color=\"black\"),\n", - " textposition=\"middle left\", \n", + " textposition=\"middle left\",\n", ")\n", "\n", "nodeline = go.Scatter3d(\n", @@ -6361,7 +6390,7 @@ " y=y_new[52:312],\n", " z=z_new[52:312],\n", " mode=\"lines+text\",\n", - " line={\"width\": 8, \"color\":\"black\"},\n", + " line={\"width\": 8, \"color\": \"black\"},\n", " text=label,\n", " textfont=dict(size=20, family=\"sans-serif\", color=\"black\"),\n", " textposition=\"middle left\",\n", @@ -6428,7 +6457,7 @@ "# fig.add_trace(raanarc)\n", "fig.add_trace(omegaarc)\n", "\n", - "fig.show()\n" + "fig.show()" ] }, { diff --git a/drawing-scripts/definition-of-inclination.ipynb b/drawing-scripts/definition-of-inclination.ipynb index 66a3209c..a1336a85 100644 --- a/drawing-scripts/definition-of-inclination.ipynb +++ b/drawing-scripts/definition-of-inclination.ipynb @@ -17,8 +17,8 @@ "metadata": {}, "outputs": [], "source": [ - "import plotly.graph_objects as go\n", "import numpy as np\n", + "import plotly.graph_objects as go\n", "from scipy.spatial.transform import Rotation as R" ] }, @@ -62,7 +62,7 @@ " fig.add_trace(line)\n", " fig.add_trace(cone)\n", " else:\n", - " return line, cone\n" + " return line, cone" ] }, { @@ -98,9 +98,9 @@ "raan = 0\n", "omega = 0\n", "\n", - "rot = R.from_euler('zxy', [0, 0, inclination], degrees=True)\n", + "rot = R.from_euler(\"zxy\", [0, 0, inclination], degrees=True)\n", "\n", - "theta = np.arange(0, 2*np.pi, step=0.01)\n", + "theta = np.arange(0, 2 * np.pi, step=0.01)\n", "phi = 0\n", "# https://math.stackexchange.com/a/819533\n", "r = a * (1 - e**2) / (1 - e * np.cos(theta - phi))\n", @@ -128,8 +128,27 @@ " )\n", ")\n", "inclination_range = np.arange(0, np.radians(inclination), step=0.01)\n", - "arc = vector_scale / 2 * np.vstack((np.sin(inclination_range), np.zeros_like(inclination_range), np.cos(inclination_range))).T\n", - "arc_2 = -r_p * np.vstack((np.cos(inclination_range), np.zeros_like(inclination_range), -np.sin(inclination_range))).T" + "arc = (\n", + " vector_scale\n", + " / 2\n", + " * np.vstack(\n", + " (\n", + " np.sin(inclination_range),\n", + " np.zeros_like(inclination_range),\n", + " np.cos(inclination_range),\n", + " )\n", + " ).T\n", + ")\n", + "arc_2 = (\n", + " -r_p\n", + " * np.vstack(\n", + " (\n", + " np.cos(inclination_range),\n", + " np.zeros_like(inclination_range),\n", + " -np.sin(inclination_range),\n", + " )\n", + " ).T\n", + ")" ] }, { @@ -160,55 +179,55 @@ 121.08200615642058, 120.99122863517958, 120.88037065865358, - 120.74948744780421, + 120.7494874478042, 120.59864410488856, - 120.42791553465139, - 120.23738635387667, + 120.4279155346514, + 120.23738635387669, 120.02715078950114, 119.79731256551854, 119.54798477892736, - 119.27928976499719, + 119.2792897649972, 118.99135895215224, - 118.68433270679041, + 118.6843327067904, 118.35836016837732, - 118.01359907517289, + 118.01359907517288, 117.65021558096645, 117.2683840632116, - 116.86828692296797, + 116.86828692296795, 116.4501143770704, 116.01406424295818, - 115.56034171660801, - 115.08915914402347, - 114.60073578674255, - 114.09529758183007, + 115.560341716608, + 115.08915914402348, + 114.60073578674256, + 114.09529758183008, 113.5730768968282, - 113.03431228014135, + 113.03431228014136, 112.4792482073336, - 111.90813482381863, + 111.90813482381864, 111.32122768442105, 110.71878749028582, - 110.10107982361039, - 109.46837488066883, - 108.82094720359197, + 110.1010798236104, + 109.46837488066885, + 108.82094720359196, 108.15907541136102, - 107.48304193046341, + 107.4830419304634, 106.79313272565278, 106.0896370312417, - 105.37284708334833, + 105.37284708334832, 104.64305785350442, - 103.90056678401993, - 103.14567352548673, + 103.90056678401992, + 103.14567352548671, 102.37867967678967, 101.5998885279781, 100.80960480633746, - 100.00813442598277, + 100.00813442598276, 99.1957842412826, 98.37286180440265, - 97.53967512724479, + 97.5396751272448, 96.69653244803813, 95.8437420028229, 94.98161180205123, - 94.11044941251083, + 94.11044941251085, 93.2305617447616, 92.34225484625787, 91.44583370031246, @@ -259,7 +278,7 @@ 47.163303642020125, 46.175570243148634, 45.190579727545654, - 44.208468311460564, + 44.20846831146056, 43.22936831572624, 42.25340820807521, 41.28071264717805, @@ -279,12 +298,12 @@ 28.066910623492237, 27.155702515110253, 26.249276331750007, - 25.347699852613886, + 25.34769985261389, 24.451038013798815, 23.559352965953607, 22.672704131877747, 21.791148264006253, - 20.914739501727734, + 20.914739501727738, 20.043529428485908, 19.177567128617383, 18.316899243881178, @@ -293,11 +312,11 @@ 15.767093036396632, 14.928022336070818, 14.09444457289479, - 13.266392898052137, - 12.443898404012893, + 13.266392898052136, + 12.443898404012891, 11.626990177290702, 10.81569535059913, - 10.010039154384963, + 10.010039154384964, 9.21004496771864, 8.415734368523442, 7.627127183126938, @@ -327,13 +346,13 @@ -9.563087289533325, -10.206860938497158, -10.844885585672644, - -11.477172665329961, + -11.47717266532996, -12.103734277198086, -12.724583158298472, -13.339732655451431, -13.949196698446208, -14.552989773865267, - -15.151126899553367, + -15.151126899553368, -15.743623599721642, -16.330495880676914, -16.911760207166175, @@ -362,7 +381,7 @@ -28.77607302721975, -29.2285182737847, -29.6758583685586, - -30.118115165579134, + -30.118115165579137, -30.555310533980222, -30.98746634746953, -31.41460447413844, @@ -430,11 +449,11 @@ -48.93992525119252, -49.089870856758985, -49.235902626396744, - -49.378030703792604, + -49.37803070379261, -49.51626497668947, -49.65061507625514, -49.78109037648485, - -49.907699993636044, + -49.90769999363605, -50.03045278569428, -50.14935735186844, -50.2644220321143, @@ -463,10 +482,10 @@ -51.86637763401251, -51.89110686766426, -51.91211951361841, - -51.929417071942396, + -51.9294170719424, -51.94300077770722, -51.95287160094797, - -51.959030246633084, + -51.95903024663309, -51.961477154642, -51.96021249975136, -51.95523619162945, @@ -496,7 +515,7 @@ -50.71742489907726, -50.61885339697407, -50.51647503763928, - -50.410282605552396, + -50.4102826055524, -50.30026862417709, -50.18642535632955, -50.06874480456997, @@ -507,7 +526,7 @@ -49.42248471333739, -49.281597993218114, -49.13681075821631, - -48.988112946100564, + -48.98811294610056, -48.83549423914582, -48.67894406482494, -48.51845159653804, @@ -515,7 +534,7 @@ -48.185595205958776, -48.0132083672329, -47.836833403425885, - -47.656458229963484, + -47.65645822996349, -47.47207051346934, -47.283657672809795, -47.091206880191685, @@ -535,7 +554,7 @@ -43.96515122996103, -43.710428157150965, -43.45142947880948, - -43.188138404650836, + -43.18813840465083, -42.92053792933214, -42.648610835048046, -42.372339694235926, @@ -568,13 +587,13 @@ -33.20211785582683, -32.796398191363785, -32.38575498121607, - -31.970166490905342, + -31.970166490905346, -31.549610939944927, - -31.124066510689662, + -31.124066510689666, -30.693511357483324, -30.25792361611067, -29.81728141356266, - -29.371562878122454, + -29.371562878122457, -28.920746149781163, -28.464809390991217, -28.003730797766455, @@ -590,7 +609,7 @@ -23.10539514774226, -22.58633913347153, -22.06188680689448, - -21.532017984392418, + -21.532017984392414, -20.99671271277035, -20.45595128666279, -19.909714266438513, @@ -602,16 +621,16 @@ -16.516254282518947, -15.931170115543894, -15.340466725238494, - -14.744127956730397, - -14.142138129641467, - -13.534482062161663, + -14.744127956730395, + -14.142138129641468, + -13.534482062161665, -12.9211450957446, -12.302113120435394, -11.677372600839574, - -11.046910602743873, - -10.410714820397283, + -11.046910602743871, + -10.410714820397285, -9.76877360446235, - -9.121075990644787, + -9.121075990644789, -8.467611729011194, -7.808371314002496, -7.143346015151918, @@ -634,7 +653,7 @@ 5.051196471067049, 5.820755912765626, 6.596072626779854, - 7.3771322533361205, + 7.37713225333612, 8.163918840468172, 8.956414796813611, 9.754600843688328, @@ -642,7 +661,7 @@ 11.367957365172618, 12.18308040461759, 13.003798563566049, - 13.830083383481133, + 13.830083383481131, 14.661904416549383, 15.49922917311215, 16.342023068512848, @@ -652,13 +671,13 @@ 19.767121997826905, 20.636665703743592, 21.5114240021021, - 22.391346111655942, - 23.276378713349374, + 22.391346111655945, + 23.276378713349377, 24.16646589329457, 25.061549085517385, - 25.961567014519762, + 25.96156701451976, 26.866455637711795, - 27.776148087766526, + 27.77614808776653, 28.690574614956272, 29.60966252952992, 30.5333361441962, @@ -687,12 +706,12 @@ 52.82010253567636, 53.82237075105984, 54.82620164950643, - 55.831423732019644, + 55.83142373201965, 56.83786130961595, 57.84533448764826, 58.853659153453314, 59.86264696747069, - 60.872105357984324, + 60.87210535798432, 61.88183751963667, 62.89164241586623, 63.90131478541991, @@ -722,12 +741,12 @@ 87.48874206708695, 88.41673656574856, 89.3379170815903, - 90.25198538856021, + 90.2519853885602, 91.15864139841788, - 92.05758333514771, + 92.05758333514773, 92.9485079156996, 93.83111053697236, - 94.70508546893659, + 94.7050854689366, 95.5701260537804, 96.42592491094229, 97.27217414788146, @@ -735,14 +754,14 @@ 98.93479093445713, 99.75054211290146, 100.55551138752402, - 101.34939165557587, + 101.34939165557589, 102.13187667687116, 102.90266131908174, 103.66144180695623, - 104.40791597516049, + 104.40791597516048, 105.1417835244233, 105.86274628065152, - 106.57050845666713, + 106.57050845666711, 107.264776916202, 107.94526143977254, 108.61167499204356, @@ -750,16 +769,16 @@ 109.90115857344432, 110.52367287159387, 111.13100527500411, - 111.72288870270775, + 111.72288870270776, 112.29906086991318, - 112.85926455386685, - 113.40324785768897, - 113.93076447170837, + 112.85926455386684, + 113.40324785768895, + 113.93076447170836, 114.44157393182114, 114.935441874394, 115.41214028723402, - 115.87144775614367, - 116.31314970658629, + 115.87144775614368, + 116.31314970658627, 116.73703863998595, 117.14291436419416, 117.53058421765869, @@ -769,15 +788,15 @@ 118.89562723413503, 119.18965618528736, 119.46449308613091, - 119.72000364390901, + 119.720003643909, 119.95606261066612, 120.17255393160586, - 120.36937088316553, + 120.36937088316552, 120.54641620050114, 120.70360219410222, - 120.84085085527445, - 120.95809395025489, - 121.05527310274815, + 120.84085085527444, + 120.95809395025488, + 121.05527310274816, 121.13233986469706, 121.1892557751281, 121.2259924069377, @@ -785,7 +804,7 @@ ], "y": [ 0, - 1.3999300028387733, + 1.3999300028387731, 2.799440090829644, 4.19811068959717, 5.595522905128677, @@ -812,10 +831,10 @@ 33.933285189014214, 35.2025059354286, 36.461750120570265, - 37.710706183439044, + 37.71070618343904, 38.949070036601626, - 40.176545222947084, - 41.392843061403404, + 40.17654522294709, + 41.39284306140341, 42.59768278154841, 43.79079164707307, 44.97190506808086, @@ -829,7 +848,7 @@ 53.95998384393507, 55.02261720151254, 56.07107407766162, - 57.105183765856324, + 57.10518376585632, 58.12478420829288, 59.12972197177999, 60.11985221447756, @@ -886,36 +905,36 @@ 89.97311701482603, 90.17151336086036, 90.35675945351058, - 90.52899029169147, - 90.68834210592837, - 90.83495224489573, - 90.96895906491771, - 91.09050182244175, + 90.52899029169149, + 90.68834210592836, + 90.83495224489572, + 90.96895906491773, + 91.09050182244177, 91.19972056949112, 91.29675605209718, 91.381749611708, 91.4548430895652, - 91.51617873403677, - 91.56589911089013, + 91.51617873403676, + 91.56589911089011, 91.60414701648516, 91.63106539386494, 91.646797251717, 91.6514855861762, 91.64527330543716, - 91.62830315714153, + 91.62830315714152, 91.60071765850294, 91.56265902913066, 91.51426912651058, 91.45568938410084, 91.38706075199713, - 91.30852364012199, - 91.22021786389045, - 91.12228259230379, + 91.308523640122, + 91.22021786389044, + 91.1222825923038, 91.01485629842168, 90.8980767121626, 90.7720807753814, - 90.63700459917217, - 90.49298342334477, + 90.63700459917216, + 90.49298342334475, 90.34015157802206, 90.17864244730544, 90.00858843495568, @@ -1049,7 +1068,7 @@ 31.076363083199947, 30.489331851233587, 29.901745496801556, - 29.313619462421382, + 29.313619462421386, 28.72496890594463, 28.135808707502665, 27.546153476375693, @@ -1057,26 +1076,26 @@ 26.36541503962475, 25.774359759088767, 25.18286530927115, - 24.590945045664846, + 24.59094504566485, 23.998612092605825, 23.40587934964962, 22.812759497883043, - 22.219265006173586, + 22.219265006173583, 21.625408137357173, 21.031200954366593, 20.43665532630145, 19.841782934441888, 19.24659527820698, 18.651103681059908, - 18.055319296361258, + 18.055319296361255, 17.459253113171744, 16.862915962006614, 16.26631852054242, 15.66947131927867, - 15.072384747154967, + 15.072384747154969, 14.475069057126182, 13.877534371696274, - 13.279790688413259, + 13.27979068841326, 12.681847885325986, 12.0837157264052, 11.48540386692958, @@ -1095,12 +1114,12 @@ 3.695225042606362, 3.0953628775351945, 2.4954563730723707, - 1.8955141558001283, + 1.8955141558001285, 1.295544831399658, 0.695556989682465, 0.0955592096163851, -0.5044399356513292, - -1.1044318737731507, + -1.1044318737731509, -1.7044080281802434, -2.3043598130605445, -2.9042786283335595, @@ -1120,10 +1139,10 @@ -11.294786977306314, -11.893154066274867, -12.491344508236272, - -13.089348681407797, - -13.687156857023513, + -13.089348681407795, + -13.687156857023512, -14.284759193958545, - -14.882145733319621, + -14.88214573331962, -15.479306392999556, -16.076230962194902, -16.67290909588439, @@ -1164,8 +1183,8 @@ -37.307738120478845, -37.88703581149225, -38.46555476749324, - -39.043274910535644, - -39.620175766342044, + -39.04327491053565, + -39.62017576634205, -40.19623645598064, -40.77143568744377, -41.345751747127494, @@ -1176,7 +1195,7 @@ -44.203293886250094, -44.77183022116941, -45.339318847405856, - -45.905734359644796, + -45.9057343596448, -46.471050849682314, -47.03524189686707, -47.59828055843569, @@ -1279,38 +1298,38 @@ -89.58216605112683, -89.77152793267425, -89.95264796764103, - -90.12539614647221, + -90.1253961464722, -90.2896414071628, - -90.44525166510753, + -90.44525166510752, -90.59209384484348, -90.73003391373828, -90.8589369176771, -90.97866701880062, -91.08908753534746, - -91.19006098365317, - -91.28144912235823, - -91.36311299887673, - -91.43491299817717, - -91.49670889392553, - -91.54835990204103, + -91.19006098365315, + -91.28144912235824, + -91.36311299887672, + -91.43491299817715, + -91.49670889392551, + -91.54835990204104, -91.58972473671282, - -91.62066166892559, + -91.6206616689256, -91.64102858754056, - -91.65068306297687, + -91.65068306297688, -91.649482413537, - -91.63728377441771, + -91.63728377441772, -91.61394416944675, -91.57932058558264, -91.53327005021318, -91.4756497112858, - -91.40631692029949, - -91.32512931818607, + -91.40631692029947, + -91.32512931818609, -91.2319449241047, - -91.12662222717053, - -91.00902028113495, + -91.12662222717051, + -91.00902028113497, -90.8789988020303, - -90.73641826878895, - -90.58114002684155, + -90.73641826878897, + -90.58114002684157, -90.4130263946949, -90.23194077348538, -90.03774775949833, @@ -1362,17 +1381,17 @@ -65.13187233974644, -64.22258213059435, -63.2978563126667, - -62.357794944799764, + -62.35779494479976, -61.40250635796361, -60.432107232443286, -59.44672266740788, -58.446486242560226, -57.431540071565, - -56.402034846965044, + -56.40203484696504, -55.358129876301504, -54.299993109167374, -53.22780115493304, - -52.141739290898364, + -52.14173929089837, -51.04200146063717, -49.92879026231632, -48.8023169267882, @@ -1391,7 +1410,7 @@ -33.06279731858263, -31.77752380315092, -30.483144729587295, - -29.179997644549122, + -29.17999764454912, -27.868426691076277, -26.54878239165762, -25.221421421375137, @@ -1401,8 +1420,8 @@ -19.84214616986549, -18.481750241340496, -17.115893015415814, - -15.744967112298825, - -14.369369169984397, + -15.744967112298824, + -14.369369169984395, -12.989499543031474, -11.605761995148926, -10.218563386075664, @@ -1411,7 +1430,7 @@ -6.0403095125664334, -4.643385940874181, -3.2450707532252654, - -1.8457825557127923, + -1.8457825557127925, -0.4459407428419733 ], "z": [ @@ -1469,7 +1488,7 @@ -56.31455769138341, -55.82776903857818, -55.33541024547083, - -54.837659141978804, + -54.8376591419788, -54.33469330186978, -53.82668992003813, -53.313825693064, @@ -1485,10 +1504,10 @@ -47.95613211125363, -47.40120895532954, -46.84346776765963, - -46.283069514691036, + -46.28306951469104, -45.72017337085426, -45.1549366541518, - -44.587514765434996, + -44.58751476543499, -44.01806113133334, -43.446727150794096, -42.873662145186, @@ -1522,10 +1541,10 @@ -26.659477909866332, -26.090793370533724, -25.523771080082792, - -24.958487433982018, - -24.395016603111358, + -24.958487433982015, + -24.39501660311136, -23.83343055918783, - -23.273799101115962, + -23.27379910111596, -22.716189882195557, -22.160668438120975, -21.607298215708052, @@ -1539,7 +1558,7 @@ -17.264728497817398, -16.733244689058136, -16.204438403794406, - -15.678352157132299, + -15.6783521571323, -15.155026756168736, -14.634501333244462, -14.116813379232516, @@ -1547,10 +1566,10 @@ -13.090091833796356, -12.581125316175054, -12.075130481353405, - -11.572137111046523, - -11.072173544109361, + -11.572137111046525, + -11.07217354410936, -10.575266709174048, - -10.081442157085073, + -10.081442157085071, -9.590724093109584, -9.103135408901467, -8.61869771419923, @@ -1569,7 +1588,7 @@ -2.6154374321242773, -2.1767374564858035, -1.7413793425718909, - -1.3093682247095875, + -1.3093682247095877, -0.8807084398706178, -0.45540355247172465, -0.033456378734009175, @@ -1591,30 +1610,30 @@ 6.261297612218792, 6.626348727864066, 6.988094243140014, - 7.3465415117693995, + 7.3465415117694, 7.701698239542524, 8.053572468826955, 8.40217256345498, 8.747507193983314, - 9.089585323319433, + 9.089585323319431, 9.428416192708887, 9.76400930807779, 10.09637442672473, - 10.425521544356183, + 10.425521544356185, 10.75146088245956, 11.074202876007956, - 11.393758161490615, + 11.393758161490616, 11.710137565263182, 12.023352092211734, 12.33341291472465, - 12.640331361966311, + 12.640331361966313, 12.944118909446752, 13.244787168881254, 13.542347878334034, 13.836812892640168, 14.128194174099852, 14.41650378343931, - 14.701753871032501, + 14.7017538710325, 14.983956668377994, 15.26312447982538, 15.53926967454555, @@ -1633,7 +1652,7 @@ 18.859799598341745, 19.094946054459804, 19.327258433748593, - 19.556749228890926, + 19.55674922889093, 19.783430893117487, 20.0073158356907, 20.228416417539655, @@ -1643,7 +1662,7 @@ 21.08522043238701, 21.292582645542517, 21.49723342215029, - 21.699184674450226, + 21.699184674450223, 21.898448236398373, 22.09503586048818, 22.288959214685335, @@ -1670,7 +1689,7 @@ 25.765529636285137, 25.903587753851568, 26.03922103881662, - 26.172438454068878, + 26.17243845406888, 26.303248829806623, 26.431660862462177, 26.557683113673203, @@ -1681,7 +1700,7 @@ 27.152237749457388, 27.26409343935625, 27.373615427726765, - 27.480811165922198, + 27.4808111659222, 27.585687963095335, 27.688252985554755, 27.788513256151965, @@ -1708,17 +1727,17 @@ 29.372467915156548, 29.42350402317992, 29.472356275981017, - 29.519028131490394, - 29.563522895958098, + 29.51902813149039, + 29.563522895958094, 29.605843723815873, 29.64599361754853, 29.683975427574342, 29.719791852133778, 29.753445437186432, 29.78493857631565, - 29.814273510640522, + 29.81427351064052, 29.841452328735055, - 29.866476966554046, + 29.86647696655405, 29.889349207365505, 29.91007068168937, 29.92864286724223, @@ -1731,7 +1750,7 @@ 29.998560099725513, 29.99997282272314, 29.999242673881596, - 29.996369601047846, + 29.99636960104785, 29.99135339901015, 29.984193709504517, 29.974890021225978, @@ -1739,7 +1758,7 @@ 29.949847838027868, 29.934107555464376, 29.91621969889774, - 29.896182992161922, + 29.89618299216192, 29.87399600622353, 29.84965715922947, 29.82316471656034, @@ -1759,11 +1778,11 @@ 29.224808634813176, 29.165700461492044, 29.10439023224078, - 29.040873630479126, + 29.04087363047913, 28.97514618914192, 28.90720329090514, 28.837040168425908, - 28.764651904597198, + 28.7646519045972, 28.690033432817856, 28.61317953727871, 28.5340848532655, @@ -1778,19 +1797,19 @@ 27.7204387754795, 27.61860864264721, 27.51446898769357, - 27.408012689940414, - 27.299232485666842, + 27.408012689940417, + 27.29923248566684, 27.18812096874302, 27.07467059129574, 26.95887366440701, - 26.840722358847106, + 26.840722358847103, 26.720208705843273, 26.59732459788561, 26.472061789571548, 26.344411898490332, 26.21436640614919, 26.08191665894258, - 25.947053869166314, + 25.94705386916631, 25.809769116078066, 25.670053347006107, 25.52789737850791, @@ -1799,17 +1818,17 @@ 25.08669450626469, 24.93468333372397, 24.78018412726345, - 24.623186946178574, + 24.623186946178578, 24.46368172866137, - 24.301658293428186, + 24.301658293428183, 24.13710634141547, - 23.970015457546154, + 23.97001545754615, 23.80037511256869, 23.628174664971446, 23.453403362974655, 23.276050346602837, 23.0961046498399, - 22.913555202869894, + 22.913555202869897, 22.728390834405996, 22.54060027411067, 22.35017215510969, @@ -1817,16 +1836,16 @@ 21.961357306576502, 21.76294738461428, 21.561853524820403, - 21.358063918847638, + 21.35806391884764, 21.151566679039853, 20.942349841690273, 20.73040137041935, 20.515709159675673, - 20.298261038363574, - 20.078044773600954, + 20.298261038363577, + 20.07804477360095, 19.85504807461138, 19.629258596754006, - 19.400663945695406, + 19.40066394569541, 19.169251681727292, 18.93500932423403, 18.697924356314356, @@ -1843,23 +1862,23 @@ 15.898776462446072, 15.626597678712118, 15.351412673321654, - 15.073209003506161, + 15.07320900350616, 14.791974281094486, 14.507696180229454, 14.220362445320946, - 13.929960899241351, - 13.636479451768395, + 13.929960899241353, + 13.636479451768396, 13.339906108281664, 13.040228978717964, 12.73743628679158, 12.431516379484822, 12.122457736815196, 11.81024898188463, - 11.494878891216805, + 11.494878891216803, 11.17633640538866, - 10.854610639961555, + 10.854610639961557, 10.52969089671865, - 10.201566675214007, + 10.201566675214009, 9.870227684639728, 9.53566385601662, 9.197865354714986, @@ -1877,12 +1896,12 @@ 4.888777911137844, 4.508165280071892, 4.124212744762599, - 3.7369157303181284, - 3.3462701460535946, + 3.736915730318128, + 3.346270146053594, 2.9522724044718025, 2.5549194406671987, 2.15420873215682, - 1.7501383191409345, + 1.7501383191409343, 1.3427068251970358, 0.9319134784092388, 0.5177581329357571, @@ -1907,17 +1926,17 @@ -7.984802364367801, -8.465054461727346, -8.948484135327998, - -9.435071417708965, + -9.435071417708963, -9.924795100850462, -10.417632704855162, - -10.913560446338899, + -10.9135604463389, -11.412553206549534, -11.914584499232678, - -12.419626438265821, - -12.927649705082635, - -13.438623515911933, + -12.41962643826582, + -12.927649705082636, + -13.438623515911932, -13.952515588855528, - -14.469292110832479, + -14.46929211083248, -14.98891770441749, -15.51135539460404, -16.036566575522908, @@ -1931,7 +1950,7 @@ -20.33290448489509, -20.881054300600553, -21.431494569194932, - -21.984166572899774, + -21.984166572899777, -22.539009574122353, -23.095960785276525, -23.654955339190803, @@ -1944,10 +1963,10 @@ -27.619232233805164, -28.191979566134535, -28.766088342948517, - -29.341471447722622, + -29.341471447722625, -29.918039415917168, -30.495700417596375, - -31.074360241548234, + -31.07436024154823, -31.653922280987235, -32.23428752092159, -32.81535452726938, @@ -1956,7 +1975,7 @@ -34.56171534107273, -35.1445264145715, -35.727495549910905, - -36.310506678578044, + -36.31050667857805, -36.89344129293319, -37.47617845240837, -38.05859479223162, @@ -1986,7 +2005,7 @@ -51.579270475896614, -52.1070080589834, -52.63046615033712, - -53.149470519493924, + -53.14947051949392, -53.663846065903215, -54.17341692688251, -54.67800658911705, @@ -1999,16 +2018,16 @@ -58.05575156808746, -58.51409855455153, -58.96586649223321, - -59.410879212900724, + -59.41087921290072, -59.8489613318309, -60.27993839378673, -60.703637020903145, - -61.119885062287196, + -61.1198850622872, -61.52851174513204, -61.929347827134364, -62.322225749997195, -62.706979793792485, - -63.083446231949516, + -63.08344623194952, -63.45146348662981, -63.81087228424085, -64.16151581083733, @@ -2058,55 +2077,55 @@ 121.08200615642058, 120.99122863517958, 120.88037065865358, - 120.74948744780421, + 120.7494874478042, 120.59864410488856, - 120.42791553465139, - 120.23738635387667, + 120.4279155346514, + 120.23738635387669, 120.02715078950114, 119.79731256551854, 119.54798477892736, - 119.27928976499719, + 119.2792897649972, 118.99135895215224, - 118.68433270679041, + 118.6843327067904, 118.35836016837732, - 118.01359907517289, + 118.01359907517288, 117.65021558096645, 117.2683840632116, - 116.86828692296797, + 116.86828692296795, 116.4501143770704, 116.01406424295818, - 115.56034171660801, - 115.08915914402347, - 114.60073578674255, - 114.09529758183007, + 115.560341716608, + 115.08915914402348, + 114.60073578674256, + 114.09529758183008, 113.5730768968282, - 113.03431228014135, + 113.03431228014136, 112.4792482073336, - 111.90813482381863, + 111.90813482381864, 111.32122768442105, 110.71878749028582, - 110.10107982361039, - 109.46837488066883, - 108.82094720359197, + 110.1010798236104, + 109.46837488066885, + 108.82094720359196, 108.15907541136102, - 107.48304193046341, + 107.4830419304634, 106.79313272565278, 106.0896370312417, - 105.37284708334833, + 105.37284708334832, 104.64305785350442, - 103.90056678401993, - 103.14567352548673, + 103.90056678401992, + 103.14567352548671, 102.37867967678967, 101.5998885279781, 100.80960480633746, - 100.00813442598277, + 100.00813442598276, 99.1957842412826, 98.37286180440265, - 97.53967512724479, + 97.5396751272448, 96.69653244803813, 95.8437420028229, 94.98161180205123, - 94.11044941251083, + 94.11044941251085, 93.2305617447616, 92.34225484625787, 91.44583370031246, @@ -2157,7 +2176,7 @@ 47.163303642020125, 46.175570243148634, 45.190579727545654, - 44.208468311460564, + 44.20846831146056, 43.22936831572624, 42.25340820807521, 41.28071264717805, @@ -2177,12 +2196,12 @@ 28.066910623492237, 27.155702515110253, 26.249276331750007, - 25.347699852613886, + 25.34769985261389, 24.451038013798815, 23.559352965953607, 22.672704131877747, 21.791148264006253, - 20.914739501727734, + 20.914739501727738, 20.043529428485908, 19.177567128617383, 18.316899243881178, @@ -2191,11 +2210,11 @@ 15.767093036396632, 14.928022336070818, 14.09444457289479, - 13.266392898052137, - 12.443898404012893, + 13.266392898052136, + 12.443898404012891, 11.626990177290702, 10.81569535059913, - 10.010039154384963, + 10.010039154384964, 9.21004496771864, 8.415734368523442, 7.627127183126938, @@ -2225,13 +2244,13 @@ -9.563087289533325, -10.206860938497158, -10.844885585672644, - -11.477172665329961, + -11.47717266532996, -12.103734277198086, -12.724583158298472, -13.339732655451431, -13.949196698446208, -14.552989773865267, - -15.151126899553367, + -15.151126899553368, -15.743623599721642, -16.330495880676914, -16.911760207166175, @@ -2260,7 +2279,7 @@ -28.77607302721975, -29.2285182737847, -29.6758583685586, - -30.118115165579134, + -30.118115165579137, -30.555310533980222, -30.98746634746953, -31.41460447413844, @@ -2328,11 +2347,11 @@ -48.93992525119252, -49.089870856758985, -49.235902626396744, - -49.378030703792604, + -49.37803070379261, -49.51626497668947, -49.65061507625514, -49.78109037648485, - -49.907699993636044, + -49.90769999363605, -50.03045278569428, -50.14935735186844, -50.2644220321143, @@ -2361,10 +2380,10 @@ -51.86637763401251, -51.89110686766426, -51.91211951361841, - -51.929417071942396, + -51.9294170719424, -51.94300077770722, -51.95287160094797, - -51.959030246633084, + -51.95903024663309, -51.961477154642, -51.96021249975136, -51.95523619162945, @@ -2394,7 +2413,7 @@ -50.71742489907726, -50.61885339697407, -50.51647503763928, - -50.410282605552396, + -50.4102826055524, -50.30026862417709, -50.18642535632955, -50.06874480456997, @@ -2405,7 +2424,7 @@ -49.42248471333739, -49.281597993218114, -49.13681075821631, - -48.988112946100564, + -48.98811294610056, -48.83549423914582, -48.67894406482494, -48.51845159653804, @@ -2413,7 +2432,7 @@ -48.185595205958776, -48.0132083672329, -47.836833403425885, - -47.656458229963484, + -47.65645822996349, -47.47207051346934, -47.283657672809795, -47.091206880191685, @@ -2433,7 +2452,7 @@ -43.96515122996103, -43.710428157150965, -43.45142947880948, - -43.188138404650836, + -43.18813840465083, -42.92053792933214, -42.648610835048046, -42.372339694235926, @@ -2466,13 +2485,13 @@ -33.20211785582683, -32.796398191363785, -32.38575498121607, - -31.970166490905342, + -31.970166490905346, -31.549610939944927, - -31.124066510689662, + -31.124066510689666, -30.693511357483324, -30.25792361611067, -29.81728141356266, - -29.371562878122454, + -29.371562878122457, -28.920746149781163, -28.464809390991217, -28.003730797766455, @@ -2488,7 +2507,7 @@ -23.10539514774226, -22.58633913347153, -22.06188680689448, - -21.532017984392418, + -21.532017984392414, -20.99671271277035, -20.45595128666279, -19.909714266438513, @@ -2500,16 +2519,16 @@ -16.516254282518947, -15.931170115543894, -15.340466725238494, - -14.744127956730397, - -14.142138129641467, - -13.534482062161663, + -14.744127956730395, + -14.142138129641468, + -13.534482062161665, -12.9211450957446, -12.302113120435394, -11.677372600839574, - -11.046910602743873, - -10.410714820397283, + -11.046910602743871, + -10.410714820397285, -9.76877360446235, - -9.121075990644787, + -9.121075990644789, -8.467611729011194, -7.808371314002496, -7.143346015151918, @@ -2532,7 +2551,7 @@ 5.051196471067049, 5.820755912765626, 6.596072626779854, - 7.3771322533361205, + 7.37713225333612, 8.163918840468172, 8.956414796813611, 9.754600843688328, @@ -2540,7 +2559,7 @@ 11.367957365172618, 12.18308040461759, 13.003798563566049, - 13.830083383481133, + 13.830083383481131, 14.661904416549383, 15.49922917311215, 16.342023068512848, @@ -2550,13 +2569,13 @@ 19.767121997826905, 20.636665703743592, 21.5114240021021, - 22.391346111655942, - 23.276378713349374, + 22.391346111655945, + 23.276378713349377, 24.16646589329457, 25.061549085517385, - 25.961567014519762, + 25.96156701451976, 26.866455637711795, - 27.776148087766526, + 27.77614808776653, 28.690574614956272, 29.60966252952992, 30.5333361441962, @@ -2585,12 +2604,12 @@ 52.82010253567636, 53.82237075105984, 54.82620164950643, - 55.831423732019644, + 55.83142373201965, 56.83786130961595, 57.84533448764826, 58.853659153453314, 59.86264696747069, - 60.872105357984324, + 60.87210535798432, 61.88183751963667, 62.89164241586623, 63.90131478541991, @@ -2620,12 +2639,12 @@ 87.48874206708695, 88.41673656574856, 89.3379170815903, - 90.25198538856021, + 90.2519853885602, 91.15864139841788, - 92.05758333514771, + 92.05758333514773, 92.9485079156996, 93.83111053697236, - 94.70508546893659, + 94.7050854689366, 95.5701260537804, 96.42592491094229, 97.27217414788146, @@ -2633,14 +2652,14 @@ 98.93479093445713, 99.75054211290146, 100.55551138752402, - 101.34939165557587, + 101.34939165557589, 102.13187667687116, 102.90266131908174, 103.66144180695623, - 104.40791597516049, + 104.40791597516048, 105.1417835244233, 105.86274628065152, - 106.57050845666713, + 106.57050845666711, 107.264776916202, 107.94526143977254, 108.61167499204356, @@ -2648,16 +2667,16 @@ 109.90115857344432, 110.52367287159387, 111.13100527500411, - 111.72288870270775, + 111.72288870270776, 112.29906086991318, - 112.85926455386685, - 113.40324785768897, - 113.93076447170837, + 112.85926455386684, + 113.40324785768895, + 113.93076447170836, 114.44157393182114, 114.935441874394, 115.41214028723402, - 115.87144775614367, - 116.31314970658629, + 115.87144775614368, + 116.31314970658627, 116.73703863998595, 117.14291436419416, 117.53058421765869, @@ -2667,15 +2686,15 @@ 118.89562723413503, 119.18965618528736, 119.46449308613091, - 119.72000364390901, + 119.720003643909, 119.95606261066612, 120.17255393160586, - 120.36937088316553, + 120.36937088316552, 120.54641620050114, 120.70360219410222, - 120.84085085527445, - 120.95809395025489, - 121.05527310274815, + 120.84085085527444, + 120.95809395025488, + 121.05527310274816, 121.13233986469706, 121.1892557751281, 121.2259924069377, @@ -2683,7 +2702,7 @@ ], "y": [ 0, - 1.3999300028387733, + 1.3999300028387731, 2.799440090829644, 4.19811068959717, 5.595522905128677, @@ -2710,10 +2729,10 @@ 33.933285189014214, 35.2025059354286, 36.461750120570265, - 37.710706183439044, + 37.71070618343904, 38.949070036601626, - 40.176545222947084, - 41.392843061403404, + 40.17654522294709, + 41.39284306140341, 42.59768278154841, 43.79079164707307, 44.97190506808086, @@ -2727,7 +2746,7 @@ 53.95998384393507, 55.02261720151254, 56.07107407766162, - 57.105183765856324, + 57.10518376585632, 58.12478420829288, 59.12972197177999, 60.11985221447756, @@ -2784,36 +2803,36 @@ 89.97311701482603, 90.17151336086036, 90.35675945351058, - 90.52899029169147, - 90.68834210592837, - 90.83495224489573, - 90.96895906491771, - 91.09050182244175, + 90.52899029169149, + 90.68834210592836, + 90.83495224489572, + 90.96895906491773, + 91.09050182244177, 91.19972056949112, 91.29675605209718, 91.381749611708, 91.4548430895652, - 91.51617873403677, - 91.56589911089013, + 91.51617873403676, + 91.56589911089011, 91.60414701648516, 91.63106539386494, 91.646797251717, 91.6514855861762, 91.64527330543716, - 91.62830315714153, + 91.62830315714152, 91.60071765850294, 91.56265902913066, 91.51426912651058, 91.45568938410084, 91.38706075199713, - 91.30852364012199, - 91.22021786389045, - 91.12228259230379, + 91.308523640122, + 91.22021786389044, + 91.1222825923038, 91.01485629842168, 90.8980767121626, 90.7720807753814, - 90.63700459917217, - 90.49298342334477, + 90.63700459917216, + 90.49298342334475, 90.34015157802206, 90.17864244730544, 90.00858843495568, @@ -2947,7 +2966,7 @@ 31.076363083199947, 30.489331851233587, 29.901745496801556, - 29.313619462421382, + 29.313619462421386, 28.72496890594463, 28.135808707502665, 27.546153476375693, @@ -2955,26 +2974,26 @@ 26.36541503962475, 25.774359759088767, 25.18286530927115, - 24.590945045664846, + 24.59094504566485, 23.998612092605825, 23.40587934964962, 22.812759497883043, - 22.219265006173586, + 22.219265006173583, 21.625408137357173, 21.031200954366593, 20.43665532630145, 19.841782934441888, 19.24659527820698, 18.651103681059908, - 18.055319296361258, + 18.055319296361255, 17.459253113171744, 16.862915962006614, 16.26631852054242, 15.66947131927867, - 15.072384747154967, + 15.072384747154969, 14.475069057126182, 13.877534371696274, - 13.279790688413259, + 13.27979068841326, 12.681847885325986, 12.0837157264052, 11.48540386692958, @@ -2993,12 +3012,12 @@ 3.695225042606362, 3.0953628775351945, 2.4954563730723707, - 1.8955141558001283, + 1.8955141558001285, 1.295544831399658, 0.695556989682465, 0.0955592096163851, -0.5044399356513292, - -1.1044318737731507, + -1.1044318737731509, -1.7044080281802434, -2.3043598130605445, -2.9042786283335595, @@ -3018,10 +3037,10 @@ -11.294786977306314, -11.893154066274867, -12.491344508236272, - -13.089348681407797, - -13.687156857023513, + -13.089348681407795, + -13.687156857023512, -14.284759193958545, - -14.882145733319621, + -14.88214573331962, -15.479306392999556, -16.076230962194902, -16.67290909588439, @@ -3062,8 +3081,8 @@ -37.307738120478845, -37.88703581149225, -38.46555476749324, - -39.043274910535644, - -39.620175766342044, + -39.04327491053565, + -39.62017576634205, -40.19623645598064, -40.77143568744377, -41.345751747127494, @@ -3074,7 +3093,7 @@ -44.203293886250094, -44.77183022116941, -45.339318847405856, - -45.905734359644796, + -45.9057343596448, -46.471050849682314, -47.03524189686707, -47.59828055843569, @@ -3177,38 +3196,38 @@ -89.58216605112683, -89.77152793267425, -89.95264796764103, - -90.12539614647221, + -90.1253961464722, -90.2896414071628, - -90.44525166510753, + -90.44525166510752, -90.59209384484348, -90.73003391373828, -90.8589369176771, -90.97866701880062, -91.08908753534746, - -91.19006098365317, - -91.28144912235823, - -91.36311299887673, - -91.43491299817717, - -91.49670889392553, - -91.54835990204103, + -91.19006098365315, + -91.28144912235824, + -91.36311299887672, + -91.43491299817715, + -91.49670889392551, + -91.54835990204104, -91.58972473671282, - -91.62066166892559, + -91.6206616689256, -91.64102858754056, - -91.65068306297687, + -91.65068306297688, -91.649482413537, - -91.63728377441771, + -91.63728377441772, -91.61394416944675, -91.57932058558264, -91.53327005021318, -91.4756497112858, - -91.40631692029949, - -91.32512931818607, + -91.40631692029947, + -91.32512931818609, -91.2319449241047, - -91.12662222717053, - -91.00902028113495, + -91.12662222717051, + -91.00902028113497, -90.8789988020303, - -90.73641826878895, - -90.58114002684155, + -90.73641826878897, + -90.58114002684157, -90.4130263946949, -90.23194077348538, -90.03774775949833, @@ -3260,17 +3279,17 @@ -65.13187233974644, -64.22258213059435, -63.2978563126667, - -62.357794944799764, + -62.35779494479976, -61.40250635796361, -60.432107232443286, -59.44672266740788, -58.446486242560226, -57.431540071565, - -56.402034846965044, + -56.40203484696504, -55.358129876301504, -54.299993109167374, -53.22780115493304, - -52.141739290898364, + -52.14173929089837, -51.04200146063717, -49.92879026231632, -48.8023169267882, @@ -3289,7 +3308,7 @@ -33.06279731858263, -31.77752380315092, -30.483144729587295, - -29.179997644549122, + -29.17999764454912, -27.868426691076277, -26.54878239165762, -25.221421421375137, @@ -3299,8 +3318,8 @@ -19.84214616986549, -18.481750241340496, -17.115893015415814, - -15.744967112298825, - -14.369369169984397, + -15.744967112298824, + -14.369369169984395, -12.989499543031474, -11.605761995148926, -10.218563386075664, @@ -3309,7 +3328,7 @@ -6.0403095125664334, -4.643385940874181, -3.2450707532252654, - -1.8457825557127923, + -1.8457825557127925, -0.4459407428419733 ], "z": [ @@ -3367,7 +3386,7 @@ -56.31455769138341, -55.82776903857818, -55.33541024547083, - -54.837659141978804, + -54.8376591419788, -54.33469330186978, -53.82668992003813, -53.313825693064, @@ -3383,10 +3402,10 @@ -47.95613211125363, -47.40120895532954, -46.84346776765963, - -46.283069514691036, + -46.28306951469104, -45.72017337085426, -45.1549366541518, - -44.587514765434996, + -44.58751476543499, -44.01806113133334, -43.446727150794096, -42.873662145186, @@ -3420,10 +3439,10 @@ -26.659477909866332, -26.090793370533724, -25.523771080082792, - -24.958487433982018, - -24.395016603111358, + -24.958487433982015, + -24.39501660311136, -23.83343055918783, - -23.273799101115962, + -23.27379910111596, -22.716189882195557, -22.160668438120975, -21.607298215708052, @@ -3437,7 +3456,7 @@ -17.264728497817398, -16.733244689058136, -16.204438403794406, - -15.678352157132299, + -15.6783521571323, -15.155026756168736, -14.634501333244462, -14.116813379232516, @@ -3445,10 +3464,10 @@ -13.090091833796356, -12.581125316175054, -12.075130481353405, - -11.572137111046523, - -11.072173544109361, + -11.572137111046525, + -11.07217354410936, -10.575266709174048, - -10.081442157085073, + -10.081442157085071, -9.590724093109584, -9.103135408901467, -8.61869771419923, @@ -3467,7 +3486,7 @@ -2.6154374321242773, -2.1767374564858035, -1.7413793425718909, - -1.3093682247095875, + -1.3093682247095877, -0.8807084398706178, -0.45540355247172465, -0.033456378734009175, @@ -3489,30 +3508,30 @@ 6.261297612218792, 6.626348727864066, 6.988094243140014, - 7.3465415117693995, + 7.3465415117694, 7.701698239542524, 8.053572468826955, 8.40217256345498, 8.747507193983314, - 9.089585323319433, + 9.089585323319431, 9.428416192708887, 9.76400930807779, 10.09637442672473, - 10.425521544356183, + 10.425521544356185, 10.75146088245956, 11.074202876007956, - 11.393758161490615, + 11.393758161490616, 11.710137565263182, 12.023352092211734, 12.33341291472465, - 12.640331361966311, + 12.640331361966313, 12.944118909446752, 13.244787168881254, 13.542347878334034, 13.836812892640168, 14.128194174099852, 14.41650378343931, - 14.701753871032501, + 14.7017538710325, 14.983956668377994, 15.26312447982538, 15.53926967454555, @@ -3531,7 +3550,7 @@ 18.859799598341745, 19.094946054459804, 19.327258433748593, - 19.556749228890926, + 19.55674922889093, 19.783430893117487, 20.0073158356907, 20.228416417539655, @@ -3541,7 +3560,7 @@ 21.08522043238701, 21.292582645542517, 21.49723342215029, - 21.699184674450226, + 21.699184674450223, 21.898448236398373, 22.09503586048818, 22.288959214685335, @@ -3568,7 +3587,7 @@ 25.765529636285137, 25.903587753851568, 26.03922103881662, - 26.172438454068878, + 26.17243845406888, 26.303248829806623, 26.431660862462177, 26.557683113673203, @@ -3579,7 +3598,7 @@ 27.152237749457388, 27.26409343935625, 27.373615427726765, - 27.480811165922198, + 27.4808111659222, 27.585687963095335, 27.688252985554755, 27.788513256151965, @@ -3606,17 +3625,17 @@ 29.372467915156548, 29.42350402317992, 29.472356275981017, - 29.519028131490394, - 29.563522895958098, + 29.51902813149039, + 29.563522895958094, 29.605843723815873, 29.64599361754853, 29.683975427574342, 29.719791852133778, 29.753445437186432, 29.78493857631565, - 29.814273510640522, + 29.81427351064052, 29.841452328735055, - 29.866476966554046, + 29.86647696655405, 29.889349207365505, 29.91007068168937, 29.92864286724223, @@ -3629,7 +3648,7 @@ 29.998560099725513, 29.99997282272314, 29.999242673881596, - 29.996369601047846, + 29.99636960104785, 29.99135339901015, 29.984193709504517, 29.974890021225978, @@ -3637,7 +3656,7 @@ 29.949847838027868, 29.934107555464376, 29.91621969889774, - 29.896182992161922, + 29.89618299216192, 29.87399600622353, 29.84965715922947, 29.82316471656034, @@ -3657,11 +3676,11 @@ 29.224808634813176, 29.165700461492044, 29.10439023224078, - 29.040873630479126, + 29.04087363047913, 28.97514618914192, 28.90720329090514, 28.837040168425908, - 28.764651904597198, + 28.7646519045972, 28.690033432817856, 28.61317953727871, 28.5340848532655, @@ -3676,19 +3695,19 @@ 27.7204387754795, 27.61860864264721, 27.51446898769357, - 27.408012689940414, - 27.299232485666842, + 27.408012689940417, + 27.29923248566684, 27.18812096874302, 27.07467059129574, 26.95887366440701, - 26.840722358847106, + 26.840722358847103, 26.720208705843273, 26.59732459788561, 26.472061789571548, 26.344411898490332, 26.21436640614919, 26.08191665894258, - 25.947053869166314, + 25.94705386916631, 25.809769116078066, 25.670053347006107, 25.52789737850791, @@ -3697,17 +3716,17 @@ 25.08669450626469, 24.93468333372397, 24.78018412726345, - 24.623186946178574, + 24.623186946178578, 24.46368172866137, - 24.301658293428186, + 24.301658293428183, 24.13710634141547, - 23.970015457546154, + 23.97001545754615, 23.80037511256869, 23.628174664971446, 23.453403362974655, 23.276050346602837, 23.0961046498399, - 22.913555202869894, + 22.913555202869897, 22.728390834405996, 22.54060027411067, 22.35017215510969, @@ -3715,16 +3734,16 @@ 21.961357306576502, 21.76294738461428, 21.561853524820403, - 21.358063918847638, + 21.35806391884764, 21.151566679039853, 20.942349841690273, 20.73040137041935, 20.515709159675673, - 20.298261038363574, - 20.078044773600954, + 20.298261038363577, + 20.07804477360095, 19.85504807461138, 19.629258596754006, - 19.400663945695406, + 19.40066394569541, 19.169251681727292, 18.93500932423403, 18.697924356314356, @@ -3741,23 +3760,23 @@ 15.898776462446072, 15.626597678712118, 15.351412673321654, - 15.073209003506161, + 15.07320900350616, 14.791974281094486, 14.507696180229454, 14.220362445320946, - 13.929960899241351, - 13.636479451768395, + 13.929960899241353, + 13.636479451768396, 13.339906108281664, 13.040228978717964, 12.73743628679158, 12.431516379484822, 12.122457736815196, 11.81024898188463, - 11.494878891216805, + 11.494878891216803, 11.17633640538866, - 10.854610639961555, + 10.854610639961557, 10.52969089671865, - 10.201566675214007, + 10.201566675214009, 9.870227684639728, 9.53566385601662, 9.197865354714986, @@ -3775,12 +3794,12 @@ 4.888777911137844, 4.508165280071892, 4.124212744762599, - 3.7369157303181284, - 3.3462701460535946, + 3.736915730318128, + 3.346270146053594, 2.9522724044718025, 2.5549194406671987, 2.15420873215682, - 1.7501383191409345, + 1.7501383191409343, 1.3427068251970358, 0.9319134784092388, 0.5177581329357571, @@ -3805,17 +3824,17 @@ -7.984802364367801, -8.465054461727346, -8.948484135327998, - -9.435071417708965, + -9.435071417708963, -9.924795100850462, -10.417632704855162, - -10.913560446338899, + -10.9135604463389, -11.412553206549534, -11.914584499232678, - -12.419626438265821, - -12.927649705082635, - -13.438623515911933, + -12.41962643826582, + -12.927649705082636, + -13.438623515911932, -13.952515588855528, - -14.469292110832479, + -14.46929211083248, -14.98891770441749, -15.51135539460404, -16.036566575522908, @@ -3829,7 +3848,7 @@ -20.33290448489509, -20.881054300600553, -21.431494569194932, - -21.984166572899774, + -21.984166572899777, -22.539009574122353, -23.095960785276525, -23.654955339190803, @@ -3842,10 +3861,10 @@ -27.619232233805164, -28.191979566134535, -28.766088342948517, - -29.341471447722622, + -29.341471447722625, -29.918039415917168, -30.495700417596375, - -31.074360241548234, + -31.07436024154823, -31.653922280987235, -32.23428752092159, -32.81535452726938, @@ -3854,7 +3873,7 @@ -34.56171534107273, -35.1445264145715, -35.727495549910905, - -36.310506678578044, + -36.31050667857805, -36.89344129293319, -37.47617845240837, -38.05859479223162, @@ -3884,7 +3903,7 @@ -51.579270475896614, -52.1070080589834, -52.63046615033712, - -53.149470519493924, + -53.14947051949392, -53.663846065903215, -54.17341692688251, -54.67800658911705, @@ -3897,16 +3916,16 @@ -58.05575156808746, -58.51409855455153, -58.96586649223321, - -59.410879212900724, + -59.41087921290072, -59.8489613318309, -60.27993839378673, -60.703637020903145, - -61.119885062287196, + -61.1198850622872, -61.52851174513204, -61.929347827134364, -62.322225749997195, -62.706979793792485, - -63.083446231949516, + -63.08344623194952, -63.45146348662981, -63.81087228424085, -64.16151581083733, @@ -4232,19 +4251,19 @@ 6.481707130984743, 6.977155732211824, 7.471906623679961, - 7.9659103307122985, + 7.965910330712299, 8.459117453349801, 8.951478671291209, 9.44294474882503, - 9.933466539753061, - 10.422994992304977, + 9.93346653975306, + 10.422994992304975, 10.911481154043466, 11.39887617675942, 11.88513132135673, - 12.370197962726147, + 12.370197962726149, 12.854027594607755, - 13.336571834441557, - 13.817782428205689, + 13.336571834441555, + 13.817782428205687, 14.297611255241776, 14.776010333066978, 15.252931822172174, @@ -4257,8 +4276,8 @@ 18.546023470649136, 19.00942075615807, 19.470917115432528, - 19.930466399221146, - 20.388022652978506, + 19.930466399221142, + 20.388022652978503, 20.84354012146054, 21.29697325329998, 21.748276705561512, @@ -4331,7 +4350,7 @@ 49.99000033332889, 49.977501687449376, 49.9600053330489, - 49.937513019748316, + 49.93751301974832, 49.91002699676021, 49.87755001266398, 49.84008531513097, @@ -4353,7 +4372,7 @@ 48.56689874260148, 48.44562108553224, 48.31949890672566, - 48.188544818294524, + 48.18854481829453, 48.05277191553854, 47.91219377563486, 47.7668244562803, @@ -4463,12 +4482,12 @@ -59.70024991668155, -59.637365877401805, -59.56851815123198, - -59.493713622887284, + -59.49371362288728, -59.41295977275823, -59.32626467616254, -59.23363700253761, -59.135086014573645, - -59.030621567287284, + -59.03062156728728, -58.92025410703622, -58.803994670474495, -58.6818548834489, @@ -4480,8 +4499,8 @@ -57.82625378195343, -57.663326298646254, -57.494632530761834, - -57.320189347536356, - -57.140014193142804, + -57.32018934753635, + -57.1400141931428, -56.95412508494645, -56.76254061170322, -56.56527993170077, @@ -4576,7 +4595,7 @@ 7.778048557181691, 8.37258687865419, 8.966287948415953, - 9.559092396854759, + 9.55909239685476, 10.150940944019762, 10.741774405549451, 11.331533698590034, @@ -4585,7 +4604,7 @@ 13.09377738485216, 13.678651412111304, 14.262157585628074, - 14.844237555271377, + 14.844237555271375, 15.424833113529306, 16.00388620132987, 16.581338913846825, @@ -4594,7 +4613,7 @@ 18.30351818660661, 18.873993636967064, 19.442581703692102, - 20.009225528448866, + 20.009225528448862, 20.573868447327083, 21.136453996505395, 21.69692591789772, @@ -4612,7 +4631,7 @@ 28.23755329026948, 28.76553231625218, 29.29063481297445, - 29.812808270624206 + 29.81280827062421 ] }, { @@ -4665,7 +4684,7 @@ "scene": { "aspectmode": "auto", "aspectratio": { - "x": 1.1291564382163535, + "x": 1.1291564382163537, "y": 1.020736111755783, "z": 0.8676256949924155 }, @@ -5663,7 +5682,7 @@ " marker={\"symbol\": \"circle-open\", \"size\": [0, 20]},\n", " text=[\"\", \"periapsis\"],\n", " textfont=dict(size=20, family=\"sans-serif\", color=\"black\"),\n", - " textposition=\"top left\", \n", + " textposition=\"top left\",\n", ")\n", "\n", "layout = dict(\n", @@ -5723,7 +5742,7 @@ "fig.add_trace(arcline_2)\n", "fig.add_trace(periline)\n", "\n", - "fig.show()\n" + "fig.show()" ] }, { @@ -5745,6 +5764,7 @@ ], "source": [ "from plotly.io import to_html\n", + "\n", "to_html(fig, full_html=False)" ] }, diff --git a/drawing-scripts/definition-of-mean-eccentric-anomaly.ipynb b/drawing-scripts/definition-of-mean-eccentric-anomaly.ipynb index fcf8c151..e29a2a77 100644 --- a/drawing-scripts/definition-of-mean-eccentric-anomaly.ipynb +++ b/drawing-scripts/definition-of-mean-eccentric-anomaly.ipynb @@ -26,10 +26,11 @@ } ], "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", "import matplotlib.animation as animation\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", "from scipy.optimize import newton\n", + "\n", "plt.ioff()" ] }, @@ -76,19 +77,25 @@ "r_a = p / (1 - e)\n", "r_p = 2 * a - r_a\n", "M_e = np.linspace(0, 2 * np.pi, 300)\n", + "\n", + "\n", "def kepler(E, M_e, e):\n", " \"\"\"Kepler's equation, to be used in a Newton solver.\"\"\"\n", " return E - e * np.sin(E) - M_e\n", "\n", + "\n", "def d_kepler_d_E(E, M_e, e):\n", " \"\"\"The derivative of Kepler's equation, to be used in a Newton solver.\n", - " \n", + "\n", " Note that the argument M_e is unused, but must be present so the function\n", " arguments are consistent with the kepler function.\n", " \"\"\"\n", " return 1 - e * np.cos(E)\n", "\n", - "E = newton(func=kepler, fprime=d_kepler_d_E, x0=np.ones_like(M_e) * np.pi, args=(M_e, e))\n", + "\n", + "E = newton(\n", + " func=kepler, fprime=d_kepler_d_E, x0=np.ones_like(M_e) * np.pi, args=(M_e, e)\n", + ")\n", "nu = (2 * np.arctan(np.sqrt((1 + e) / (1 - e)) * np.tan(E / 2))) % (2 * np.pi)\n", "r = p / (1 + e * np.cos(nu))\n", "x = a * e + r * np.cos(nu)\n", @@ -119,7 +126,18 @@ " true_anomaly_arc.set_data([], [])\n", " mean_anomaly_arc.set_data([], [])\n", " eccentric_anomaly_arc.set_data([], [])\n", - " return (ellipse, circle, spacecraft, mean_anomaly, eccentric_anomaly, ecc_line, true_anomaly_arc, mean_anomaly_arc, eccentric_anomaly_arc)\n", + " return (\n", + " ellipse,\n", + " circle,\n", + " spacecraft,\n", + " mean_anomaly,\n", + " eccentric_anomaly,\n", + " ecc_line,\n", + " true_anomaly_arc,\n", + " mean_anomaly_arc,\n", + " eccentric_anomaly_arc,\n", + " )\n", + "\n", "\n", "def animate(t):\n", " E = newton(func=kepler, fprime=d_kepler_d_E, x0=np.pi, args=(t, e))\n", @@ -133,13 +151,21 @@ "\n", " nu_arc = np.linspace(0, nu, 50)\n", " true_anomaly_arc.set_data(a * e + 0.2 * np.cos(nu_arc), 0.2 * np.sin(nu_arc))\n", - " \n", + "\n", " Me_arc = np.linspace(0, M_e, 50)\n", " mean_anomaly_arc.set_data(0.1 * np.cos(Me_arc), 0.1 * np.sin(Me_arc))\n", - " \n", + "\n", " ecc_arc = np.linspace(0, E, 50)\n", " eccentric_anomaly_arc.set_data(0.4 * np.cos(ecc_arc), 0.4 * np.sin(ecc_arc))\n", - " return (ecc_line, spacecraft, mean_anomaly, eccentric_anomaly, true_anomaly_arc, mean_anomaly_arc, eccentric_anomaly_arc)" + " return (\n", + " ecc_line,\n", + " spacecraft,\n", + " mean_anomaly,\n", + " eccentric_anomaly,\n", + " true_anomaly_arc,\n", + " mean_anomaly_arc,\n", + " eccentric_anomaly_arc,\n", + " )" ] }, { @@ -272199,6 +272225,7 @@ ], "source": [ "from IPython.display import HTML\n", + "\n", "js = anim.to_jshtml()\n", "HTML(js)" ] diff --git a/drawing-scripts/definition-of-raan.ipynb b/drawing-scripts/definition-of-raan.ipynb index 5617926e..99284cc6 100644 --- a/drawing-scripts/definition-of-raan.ipynb +++ b/drawing-scripts/definition-of-raan.ipynb @@ -17,8 +17,8 @@ "metadata": {}, "outputs": [], "source": [ - "import plotly.graph_objects as go\n", "import numpy as np\n", + "import plotly.graph_objects as go\n", "from scipy.spatial.transform import Rotation as R" ] }, @@ -62,7 +62,7 @@ " fig.add_trace(line)\n", " fig.add_trace(cone)\n", " else:\n", - " return line, cone\n" + " return line, cone" ] }, { @@ -99,9 +99,9 @@ "raan = 30\n", "omega = 0\n", "\n", - "rot = R.from_euler('ZY', [raan, inclination], degrees=True)\n", + "rot = R.from_euler(\"ZY\", [raan, inclination], degrees=True)\n", "\n", - "theta = np.arange(0, 2*np.pi, step=0.01)\n", + "theta = np.arange(0, 2 * np.pi, step=0.01)\n", "phi = 0\n", "# https://math.stackexchange.com/a/819533\n", "r = a * (1 - e**2) / (1 - e * np.cos(theta - phi))\n", @@ -129,21 +129,50 @@ " )\n", ")\n", "inclination_range = np.arange(0, np.radians(inclination), step=0.01)\n", - "arc = vector_scale / 2 * np.vstack((np.sin(inclination_range), np.zeros_like(inclination_range), np.cos(inclination_range))).T\n", + "arc = (\n", + " vector_scale\n", + " / 2\n", + " * np.vstack(\n", + " (\n", + " np.sin(inclination_range),\n", + " np.zeros_like(inclination_range),\n", + " np.cos(inclination_range),\n", + " )\n", + " ).T\n", + ")\n", "arc_rot = R.from_euler(\"Z\", [raan], degrees=True)\n", "arc = arc_rot.apply(arc)\n", - "arc_2 = -r_p * np.vstack((np.cos(inclination_range), np.zeros_like(inclination_range), -np.sin(inclination_range))).T\n", + "arc_2 = (\n", + " -r_p\n", + " * np.vstack(\n", + " (\n", + " np.cos(inclination_range),\n", + " np.zeros_like(inclination_range),\n", + " -np.sin(inclination_range),\n", + " )\n", + " ).T\n", + ")\n", "arc_2 = arc_rot.apply(arc_2)\n", "N_vec = np.cross([0, 0, 1], rot_vec[1, :])\n", "N = np.linalg.norm(N_vec)\n", "u_N = N_vec / N\n", - "node_line = np.vstack((np.linspace(-100, 100, 2), u_N[1] / u_N[0] * np.linspace(-100, 100, 2), np.zeros(2))).T\n", + "node_line = np.vstack(\n", + " (\n", + " np.linspace(-100, 100, 2),\n", + " u_N[1] / u_N[0] * np.linspace(-100, 100, 2),\n", + " np.zeros(2),\n", + " )\n", + ").T\n", "\n", "nodes = np.array(((0, p, 0), (0, -p, 0)))\n", "nodes = rot.apply(nodes)\n", "\n", "raan_range = np.arange(0, np.radians(90 + raan), step=0.01)\n", - "raan_arc = vector_scale / 2 * np.vstack((np.cos(raan_range), np.sin(raan_range), np.zeros_like(raan_range))).T" + "raan_arc = (\n", + " vector_scale\n", + " / 2\n", + " * np.vstack((np.cos(raan_range), np.sin(raan_range), np.zeros_like(raan_range))).T\n", + ")" ] }, { @@ -167,24 +196,24 @@ "mode": "lines", "type": "scatter3d", "x": [ - 105.00000000000003, + 105.00000000000004, 104.29128536314914, 103.56528578696982, 102.82222417564698, - 102.06233182007969, + 102.06233182007968, 101.28584820190578, - 100.49302078783643, + 100.49302078783644, 99.68410481467166, 98.85936306538694, 98.01906563670094, 97.16348969855196, - 96.29291924592691, - 95.40764484350187, - 94.50796336356701, + 96.29291924592692, + 95.40764484350188, + 94.507963363567, 93.5941777177202, - 92.66659658282535, - 91.72553412173947, - 90.77130969932075, + 92.66659658282536, + 91.72553412173949, + 90.77130969932077, 89.8042475942357, 88.82467670708823, 87.8329302653955, @@ -219,7 +248,7 @@ 55.35854977939462, 54.16582063287363, 52.971797874709765, - 51.776803938271556, + 51.77680393827155, 50.581157106269195, 49.38517135837881, 48.189156227016376, @@ -241,7 +270,7 @@ 29.28246046534393, 28.128459520989644, 26.979123599058155, - 25.834660802951234, + 25.83466080295123, 24.69527351635537, 23.561158410238654, 22.43250645528731, @@ -251,10 +280,10 @@ 17.976151180082248, 16.877481544768614, 15.785302509490236, - 14.699765905394457, + 14.699765905394456, 13.621018134210708, 12.549200220462602, - 11.484447867084945, + 11.484447867084944, 10.426891514249192, 9.37665640120283, 8.333862630931797, @@ -264,10 +293,10 @@ 4.239327103994746, 3.2353666662631326, 2.23946425792996, - 1.2517060373025117, + 1.2517060373025115, 0.272173623601347, -0.699055820957895, - -1.6619095079559543, + -1.6619095079559545, -2.6163189385795604, -3.562219818588545, -4.49955197257561, @@ -275,25 +304,25 @@ -6.348289476658252, -7.259594291096668, -8.162129133772517, - -9.055853121381539, + -9.05585312138154, -9.940728967072246, -10.81672289310864, -11.683804543725032, - -12.541946898263589, + -12.541946898263587, -13.391126184680488, -14.231321793502278, -15.062516192308962, -15.884694840816568, -16.69784610662729, -17.501961181710993, - -18.297033999678234, + -18.29703399967823, -19.083061153900417, -19.860041816529183, -20.6279776584632, -21.38687277030694, -22.13673358436254, -22.877568797692113, - -23.609389296285194, + -23.60938929628519, -24.332208080362054, -25.046040190841214, -25.750902636996155, @@ -317,7 +346,7 @@ -36.934006066213755, -37.47380753080164, -38.00529261310949, - -38.528505188906124, + -38.52850518890613, -39.0434898325256, -39.55029177367137, -40.04895685540646, @@ -342,7 +371,7 @@ -48.041786223527566, -48.387961190185024, -48.727040992206085, - -49.059076521143204, + -49.0590765211432, -49.384118602708064, -49.70221797784042, -50.01342528450263, @@ -358,7 +387,7 @@ -52.75746828647347, -52.99615930568793, -53.22855216552637, - -53.454694806501436, + -53.45469480650144, -53.67463487767141, -53.88841972726394, -54.09609639376341, @@ -377,8 +406,8 @@ -56.260839937971795, -56.38775001675209, -56.50921552208479, - -56.625277651371604, - -56.735977199128996, + -56.6252776513716, + -56.73597719912899, -56.84135455428562, -56.941449697723826, -57.036302200056056, @@ -393,7 +422,7 @@ -57.66037972882422, -57.70489078338575, -57.744566970307666, - -57.779442837966684, + -57.77944283796669, -57.809552513326054, -57.834929702195915, -57.85560768962175, @@ -405,7 +434,7 @@ -57.88280348286121, -57.87148383303374, -57.85571619928308, - -57.835530115795436, + -57.83553011579544, -57.81095470579146, -57.78201868299567, -57.74875035317828, @@ -422,7 +451,7 @@ -57.1045586910672, -57.02136440938134, -56.93416948389078, - -56.842996703437564, + -56.84299670343757, -56.747868478509375, -56.64880684351972, -56.54583345911334, @@ -486,18 +515,18 @@ -44.442338464685214, -44.13482608442513, -43.82411065772652, - -43.510195717672204, + -43.51019571767221, -43.19308457745672, -42.87278033293581, -42.54928586518718, -42.22260384308355, - -41.892736725878876, + -41.89273672587888, -41.55968676580887, -41.22345601070671, -40.8840463066352, -40.54145930053596, -40.19569644289763, - -39.846758990443284, + -39.84675899044328, -39.494648008838986, -39.139364375424144, -38.78090878196543, @@ -522,30 +551,30 @@ -31.367239129399906, -30.945229441021333, -30.520024650696804, - -30.091622129420866, + -30.091622129420863, -29.660019135758688, -29.225212819623515, -28.787200226120575, -28.34597829945935, -27.90154388693667, - -27.453893742992946, + -27.453893742992943, -27.003024533343904, - -26.548932839190414, + -26.548932839190417, -26.091615161508606, - -25.631067925423242, - -25.167287484666538, + -25.63106792542324, + -25.167287484666534, -24.700270126125417, -24.230012074479607, -23.75650949693368, -23.279758508045415, -22.79975517465389, - -22.316495520909566, - -21.829975533410074, + -22.31649552090957, + -21.82997553341007, -21.34019116644407, -20.847138347346785, -20.350812981969938, -19.851210960269754, - -19.348328162015758, + -19.34832816201576, -18.842160462624303, -18.332703739119545, -17.81995387622603, @@ -557,9 +586,9 @@ -14.674070885235306, -14.138155809057046, -13.598915725728006, - -13.056346886872483, + -13.056346886872484, -12.510445620759068, - -11.961208340081875, + -11.961208340081876, -11.40863154991871, -10.852711855871323, -10.293445972391162, @@ -576,12 +605,12 @@ -3.9198686216642713, -3.320244045901571, -2.7172446283995484, - -2.1108695966190894, + -2.11086959661909, -1.501118437181038, -0.8879909077996295, -0.2714870494838415, 0.3483928009890427, - 0.9716479983213979, + 0.971647998321398, 1.5982775756600986, 2.2282802312726417, 2.861654314929929, @@ -595,19 +624,19 @@ 8.049694054833658, 8.713272093826273, 9.380182674675403, - 10.050419325584965, + 10.050419325584963, 10.723975038005754, 11.400842248718362, - 12.081012821549681, + 12.08101282154968, 12.76447802871786, 13.451228531801576, 14.141254362328173, - 14.834544901976873, - 15.531088862392071, + 14.834544901976871, + 15.531088862392073, 16.230874264603578, 16.933888418048348, 17.64011789919087, - 18.349548529738158, + 18.34954852973816, 19.062165354445636, 19.777952618511357, 20.496893744554523, @@ -616,7 +645,7 @@ 22.672461686889733, 23.403835206240338, 24.138266526847495, - 24.875733628844674, + 24.87573362884467, 25.616213496814716, 26.359682093371376, 27.106114332312373, @@ -642,7 +671,7 @@ 42.60798797285066, 43.40869670276849, 44.21149221328554, - 45.016316941747284, + 45.01631694174728, 45.823111513502745, 46.63181470611225, 47.44236341336757, @@ -698,66 +727,66 @@ 88.26510290116548, 89.03108105133312, 89.79221575369532, - 90.54830293131215, + 90.54830293131216, 91.2991357104942, 92.04450446144703, 92.7841968428299, 93.5179978503327, 94.2456898693717, - 94.96705273200345, + 94.96705273200344, 95.68186377815182, 96.3898979212423, 97.09092771833213, - 97.78472344482333, + 97.78472344482331, 98.4710531738395, 99.1496828603439, 99.82037643007142, - 100.48289587334047, + 100.48289587334048, 101.13700134380753, 101.7824512622177, 102.41900242520065, - 103.04641011915271, - 103.66442823923967, + 103.04641011915272, + 103.66442823923968, 104.27280941354482, 104.87130513238117, 105.45966588277506, - 106.03764128812179, - 106.60498025300181, - 107.16143111313787, - 107.70674179046125, + 106.0376412881218, + 106.6049802530018, + 107.16143111313788, + 107.70674179046124, 108.24065995324617, 108.7629331812579, - 109.27330913585045, - 109.77153573493607, - 110.25736133273773, - 110.73053490422157, + 109.27330913585044, + 109.77153573493608, + 110.25736133273772, + 110.73053490422156, 111.1908062340945, - 111.63792611023831, + 111.63792611023833, 112.07164652143771, - 112.49172085924745, - 112.89790412382743, + 112.49172085924744, + 112.89790412382744, 113.28995313356316, 113.6676267382725, 114.03068603578794, 114.3788945916866, 114.7120186619284, 115.02982741814742, - 115.33209317532811, - 115.61859162158393, + 115.33209317532813, + 115.61859162158392, 115.88910204974265, - 116.14340759042913, + 116.14340759042912, 116.38129544632407, 116.6025571272638, 116.80698868583517, 116.99439095310746, - 117.16456977413235, - 117.31733624283365, - 117.45250693589713, + 117.16456977413236, + 117.31733624283363, + 117.45250693589712, 117.56990414526382, 117.66935610882128, - 117.75069723888001, + 117.75069723888, 117.81376834801668, - 117.85841687185975, + 117.85841687185976, 117.88449708838992, 117.89187033332377, 117.880405211147, @@ -765,10 +794,10 @@ 117.80047185953003, 117.73177901263033, 117.64379894838386, - 117.53643959803921, + 117.5364395980392, 117.40961731224638, 117.26325702959122, - 117.09729243738641, + 117.0972924373864, 116.91166612432406, 116.7063297246046, 116.48124405316946, @@ -776,12 +805,12 @@ 115.97171480487992, 115.68723984706804, 115.38295305827532, - 115.05886284994767, + 115.05886284994769, 114.71498741980304, 114.35135481562932, - 113.96800298778773, - 113.56497983021285, - 113.14234320972467, + 113.96800298778771, + 113.56497983021283, + 113.14234320972469, 112.70016098349008, 112.2385110044987, 111.75748111494298, @@ -793,9 +822,9 @@ 108.47049414869385, 107.8570965253262, 107.22537651311524, - 106.57550954360359, + 106.5755095436036, 105.90768030124394, - 105.22208258426423 + 105.22208258426424 ], "y": [ 60.6217782649107, @@ -827,28 +856,28 @@ 87.78663231032492, 88.6244506617692, 89.44496799792323, - 90.24804024554697, + 90.24804024554696, 91.0335329030333, - 91.80132103794709, - 92.55128927338241, - 93.28333176333959, + 91.80132103794708, + 92.5512892733824, + 93.2833317633396, 93.99735215734536, 94.69326355455762, - 95.37098844761447, + 95.37098844761448, 96.03045865650438, - 96.67161525274935, + 96.67161525274936, 97.29440847420868, - 97.89879763082281, + 97.8987976308228, 98.4847510016298, 99.05224572339786, - 99.60126767122647, + 99.60126767122648, 100.13181133147744, - 100.64387966740513, + 100.64387966740512, 101.13748397785926, - 101.61264374944109, - 102.06938650249509, + 101.61264374944108, + 102.06938650249508, 102.5077476313229, - 102.92777023900561, + 102.9277702390056, 103.32950496722324, 103.71300982145762, 104.07834999196402, @@ -859,74 +888,74 @@ 105.6353418612928, 105.89344182389092, 106.1340188562677, - 106.35718879843645, + 106.35718879843644, 106.56307293515336, 106.75179779478732, 106.92349494784884, - 107.07830080548203, + 107.07830080548204, 107.21635641821422, - 107.33780727524581, + 107.3378072752458, 107.44280310455302, 107.53149767406518, 107.60404859416506, 107.66061712175178, 107.70136796609172, 107.72646909667267, - 107.73609155326461, + 107.7360915532646, 107.7304092583776, 107.70959883229722, 107.673839410865, 107.62331246616064, - 107.55820163023101, - 107.47869252199979, + 107.558201630231, + 107.4786925219998, 107.3849725774809, 107.27723088340738, - 107.15565801437765, + 107.15565801437764, 107.0204458736097, - 106.87178753738503, + 106.87178753738505, 106.70987710325286, 106.5349095420571, 106.34708055383786, - 106.14658642765201, + 106.146586427652, 105.93362390534726, - 105.70839004931719, + 105.7083900493172, 105.47108211425564, 105.2218974229227, - 104.96103324592569, + 104.96103324592568, 104.6886866855132, 104.40505456337232, 104.1103333124145, 103.80471887252796, 103.4884065902704, - 103.16159112247017, + 103.16159112247016, 102.82446634369836, 102.47722525757146, 102.120059911838, - 101.75316131720035, + 101.75316131720037, 101.37671936981828, 100.99092277743756, - 100.59595898908465, + 100.59595898908464, 100.19201412826447, - 99.77927292959693, + 99.77927292959691, 99.35791867882506, - 98.92813315612545, + 98.92813315612544, 98.4900965826506, 98.04398757023, - 97.58998307415753, + 97.58998307415752, 97.12825834898906, 96.65898690727536, - 96.18234048115373, - 95.69848898672139, - 95.20760049111321, + 96.18234048115372, + 95.6984889867214, + 95.2076004911132, 94.70984118220652, - 94.20537534087515, - 93.69436531571553, - 93.17697150016747, + 94.20537534087516, + 93.69436531571552, + 93.17697150016748, 92.65335231195274, 92.1236641747552, 91.58806150206657, 91.04669668312272, - 90.49972007085631, + 90.49972007085633, 89.94727997179224, 89.38952263781324, 88.82659225972455, @@ -980,7 +1009,7 @@ 58.04699105849767, 57.36613110720523, 56.68487634945213, - 56.003281475408244, + 56.00328147540824, 55.32139994009563, 54.63928398484736, 53.95698465862001, @@ -991,9 +1020,9 @@ 50.544443362021475, 49.862051709890174, 49.179802398971475, - 48.497737686468476, + 48.49773768646848, 47.81589882126438, - 47.134326063406476, + 47.13432606340648, 46.453058703381174, 45.7721350811764, 45.09159260512862, @@ -1022,7 +1051,7 @@ 29.617860756368753, 28.95557486460804, 28.294353096693605, - 27.634214520879322, + 27.63421452087932, 26.975177698269064, 26.317260695501997, 25.66048109723765, @@ -1036,17 +1065,17 @@ 20.44915153085965, 19.80332628506247, 19.158790389489063, - 18.515556896064478, + 18.51555689606448, 17.87363850979602, 17.23304759887765, 16.593796204629367, - 15.955896051275193, + 15.955896051275191, 15.319358555561658, - 14.684194836220227, + 14.684194836220229, 14.050415723275778, 13.418031767204434, - 12.787053247942909, - 12.157490183752751, + 12.787053247942907, + 12.157490183752753, 11.529352339941388, 10.902649237443612, 10.277390161265169, @@ -1065,10 +1094,10 @@ 2.2842736880919303, 1.6800927774898486, 1.0774722091744628, - 0.47641853980555765, - -0.12306178481436397, + 0.4764185398055577, + -0.12306178481436396, -0.7209624233251292, - -1.3172771324836545, + -1.3172771324836543, -1.911999760925385, -2.505124243010744, -3.0966445927537523, @@ -1084,13 +1113,13 @@ -8.922349079518876, -9.495845831968916, -10.067670726233258, - -10.637818292874043, + -10.637818292874044, -11.206283064552922, - -11.773059570940159, - -12.338142333673407, - -12.901525861363583, - -13.463204644646753, - -14.023173151279375, + -11.77305957094016, + -12.338142333673408, + -12.901525861363584, + -13.463204644646751, + -14.023173151279376, -14.581425821275904, -15.137957062086173, -15.692761243811589, @@ -1099,19 +1128,19 @@ -17.34675447581227, -17.894593209805066, -18.44067601002105, - -18.984996923939118, + -18.98499692393912, -19.52754992913255, -20.06832892873118, -20.607327746906595, -21.14454012437957, -21.679959713947383, -22.21358007603024, - -22.745394674234582, - -23.275396870932422, + -22.745394674234586, + -23.275396870932425, -23.803579922854745, -24.32993697669768, -24.85446106474025, - -25.377145100471694, + -25.377145100471697, -25.897981874227643, -26.416964048833112, -26.93408415525152, @@ -1140,7 +1169,7 @@ -38.294414516930615, -38.764185018839115, -39.23185110885377, - -39.697400350844156, + -39.69740035084416, -40.16082005694632, -40.62209728288281, -41.08121882325637, @@ -1157,10 +1186,10 @@ -45.9852280330507, -46.4173497274749, -46.84711810946411, - -47.274515807009124, + -47.27451580700912, -47.699525112678685, -48.12212797839071, - -48.542306010146476, + -48.54230601014648, -48.96004046272705, -49.375312234352265, -49.78810186130131, @@ -1329,13 +1358,13 @@ -53.23098967011042, -52.56451720111743, -51.88555114715316, - -51.194056144817836, + -51.19405614481784, -50.49000023558232, -49.77335498571361, -49.04409560721392, -48.30220107966138, - -47.547654272834684, - -46.780442069996084, + -47.54765427283469, + -46.78044206999608, -46.00055549170179, -45.20798982000069, -44.402744722875326, @@ -1354,13 +1383,13 @@ -32.78932839267188, -31.80928634986127, -30.817169609259917, - -29.813064462618946, + -29.813064462618943, -28.797063565467724, -27.769266033233016, -26.72977753358581, -25.678710374752463, -24.61618358952602, - -23.542323014708934, + -23.542323014708938, -22.4572613657212, -21.361138306102617, -20.254100511640747, @@ -1368,16 +1397,16 @@ -18.007902827575112, -16.869071847328364, -15.719984037307878, - -14.560821889626801, + -14.5608218896268, -13.391775165624184, - -12.213040914967065, + -12.213040914967063, -11.024823487304497, - -9.827334536237629, + -9.827334536237627, -8.620793015375238, -7.405425166256119, -6.181464497925849, -4.949151757968594, - -3.7087348948034506, + -3.70873489480345, -2.460469011070481, -1.2046163079414605, 0.058553979793060346, @@ -1387,12 +1416,12 @@ 5.178784529721318, 6.47426377445294, 7.775302316902559, - 9.081584303419339, - 10.392787710709943, + 9.08158430341934, + 10.392787710709944, 11.708584497748356, 13.02864076744834, 14.352616938038413, - 15.680167924061447, + 15.680167924061449, 17.010943326893955, 18.34458763466132, 19.680740431396607, @@ -1403,7 +1432,7 @@ 26.38620213878385, 27.72959110088696, 29.07284774554842, - 30.415580995178434, + 30.41558099517843, 31.75739713023281, 33.09790007744334, 34.436691704120705, @@ -1425,7 +1454,7 @@ 55.29657506677073, 56.544879747975976, 57.784314178193064, - 59.014501620359404, + 59.01450162035941, 60.23506968887309 ], "z": [ @@ -1465,7 +1494,7 @@ -63.92352176186548, -63.56688807422993, -63.201595705105014, - -62.827803161463876, + -62.82780316146387, -62.44567130405031, -62.05536319187288, -61.65704392675906, @@ -1486,7 +1515,7 @@ -54.83765914197881, -54.334693301869784, -53.826689920038135, - -53.313825693064004, + -53.313825693064, -52.796276703145146, -52.27421830548175, -51.74782501918573, @@ -1501,18 +1530,18 @@ -46.84346776765964, -46.28306951469104, -45.72017337085427, - -45.154936654151804, + -45.15493665415181, -44.587514765435, -44.01806113133335, -43.4467271507941, -42.87366214518601, -42.29901331191537, - -41.722925681498644, + -41.72292568149864, -41.14554207803177, -40.567003082992024, -39.9874470023057, -39.40700983661074, - -38.825825254641316, + -38.82582525464131, -38.244024569658386, -37.66173671884821, -37.07908824560875, @@ -1539,14 +1568,14 @@ -24.95848743398202, -24.39501660311136, -23.833430559187832, - -23.273799101115966, + -23.27379910111597, -22.71618988219556, -22.16066843812098, -21.607298215708056, -21.05614060228679, - -20.507254955699686, + -20.50725495569969, -19.96069863484768, - -19.416527030727522, + -19.41652703072752, -18.87479359790651, -18.335549886382154, -17.798845573776603, @@ -1555,14 +1584,14 @@ -16.20443840379441, -15.678352157132302, -15.15502675616874, - -14.634501333244465, + -14.634501333244463, -14.11681337923252, -13.601998776826724, -13.09009183379636, -12.581125316175058, -12.075130481353408, -11.572137111046526, - -11.072173544109365, + -11.072173544109363, -10.575266709174052, -10.081442157085077, -9.590724093109587, @@ -1577,7 +1606,7 @@ -5.317421941360915, -4.858826503095394, -4.403523932321851, - -3.9515246927001915, + -3.951524692700191, -3.5028382926156567, -3.0574733125653455, -2.615437432124279, @@ -1585,7 +1614,7 @@ -1.7413793425718922, -1.3093682247095888, -0.8807084398706191, - -0.45540355247172587, + -0.4554035524717258, -0.03345637873401035, 0.3851309893999086, 0.800357160791523, @@ -1605,34 +1634,34 @@ 6.261297612218792, 6.626348727864066, 6.988094243140014, - 7.3465415117693995, + 7.3465415117694, 7.701698239542524, 8.053572468826955, 8.40217256345498, 8.747507193983314, - 9.089585323319433, + 9.089585323319431, 9.428416192708887, 9.76400930807779, 10.09637442672473, - 10.425521544356183, + 10.425521544356185, 10.75146088245956, 11.074202876007956, - 11.393758161490615, + 11.393758161490616, 11.710137565263182, 12.023352092211734, 12.33341291472465, - 12.640331361966311, + 12.640331361966313, 12.944118909446752, 13.244787168881254, 13.542347878334034, 13.836812892640168, 14.128194174099852, 14.41650378343931, - 14.701753871032501, + 14.7017538710325, 14.983956668377994, 15.26312447982538, 15.53926967454555, - 15.812404678739465, + 15.812404678739464, 16.082541968079724, 16.349694060379857, 16.61387350848565, @@ -1651,16 +1680,16 @@ 19.78343089311749, 20.007315835690704, 20.22841641753966, - 20.446744947042358, + 20.44674494704236, 20.66231367595092, - 20.875134795456102, + 20.875134795456106, 21.085220432387015, 21.29258264554252, 21.497233422150295, 21.69918467445023, 21.898448236398377, 22.095035860488185, - 22.288959214685338, + 22.288959214685335, 22.48022987947326, 22.66885934500561, 22.854859008362883, @@ -1672,7 +1701,7 @@ 23.91625700641301, 24.08415882377886, 24.249518367700126, - 24.412346089825114, + 24.41234608982511, 24.57265232636635, 24.7304472963114, 24.885741099704767, @@ -1697,7 +1726,7 @@ 27.37361542772677, 27.4808111659222, 27.58568796309534, - 27.688252985554758, + 27.68825298555476, 27.78851325615197, 27.88647565369831, 27.982146912410315, @@ -1711,22 +1740,22 @@ 28.665795979706395, 28.741125929416615, 28.81422402596085, - 28.885095383499454, + 28.885095383499458, 28.95374496678798, 29.020177590902144, - 29.084397920978322, + 29.08439792097832, 29.146410471968924, - 29.206219608411974, + 29.206219608411978, 29.26382954421428, 29.31924434244749, 29.37246791515655, 29.423504023179923, 29.47235627598102, - 29.519028131490398, + 29.5190281314904, 29.5635228959581, 29.605843723815877, - 29.645993617548534, - 29.683975427574346, + 29.645993617548537, + 29.683975427574342, 29.71979185213378, 29.753445437186436, 29.784938576315653, @@ -1740,7 +1769,7 @@ 29.9593445185936, 29.97147617539161, 29.98146292534629, - 29.989305481526202, + 29.9893054815262, 29.995004403981373, 29.998560099725516, 29.999972822723144, @@ -1753,10 +1782,10 @@ 29.94984783802787, 29.93410755546438, 29.916219698897745, - 29.896182992161926, + 29.89618299216193, 29.873996006223532, 29.849657159229473, - 29.823164716560342, + 29.823164716560346, 29.79451679088973, 29.76371134224982, 29.73074617810337, @@ -1766,9 +1795,9 @@ 29.577239180381607, 29.533437216621888, 29.48745918308775, - 29.439301821873414, + 29.439301821873418, 29.388961723347684, - 29.336435326298382, + 29.336435326298385, 29.28171891808688, 29.22480863481318, 29.165700461492047, @@ -1786,11 +1815,11 @@ 28.28330019652295, 28.195185744979256, 28.104801459693412, - 28.012141089925066, + 28.012141089925063, 27.91719823868893, 27.819966363222637, 27.720438775479504, - 27.618608642647214, + 27.618608642647217, 27.514468987693572, 27.408012689940417, 27.299232485666845, @@ -1803,8 +1832,8 @@ 26.47206178957155, 26.344411898490335, 26.214366406149193, - 26.081916658942582, - 25.947053869166318, + 26.081916658942585, + 25.94705386916632, 25.80976911607807, 25.67005334700611, 25.527897378507912, @@ -1814,13 +1843,13 @@ 24.934683333723974, 24.780184127263453, 24.623186946178578, - 24.463681728661374, + 24.463681728661378, 24.30165829342819, 24.137106341415475, 23.970015457546157, 23.800375112568695, 23.62817466497145, - 23.453403362974658, + 23.453403362974655, 23.27605034660284, 23.096104649839905, 22.913555202869897, @@ -1828,21 +1857,21 @@ 22.540600274110673, 22.350172155109693, 22.157095016603176, - 21.961357306576506, - 21.762947384614282, + 21.961357306576502, + 21.76294738461428, 21.561853524820407, 21.35806391884764, 21.151566679039856, 20.942349841690277, - 20.730401370419354, + 20.73040137041935, 20.515709159675676, 20.298261038363577, - 20.078044773600958, - 19.855048074611382, + 20.07804477360096, + 19.855048074611386, 19.62925859675401, 19.40066394569541, 19.169251681727296, - 18.935009324234034, + 18.93500932423403, 18.69792435631436, 18.45798422956135, 18.215176369005164, @@ -1855,13 +1884,13 @@ 16.434165364320165, 16.167961514404276, 15.898776462446074, - 15.626597678712121, + 15.62659767871212, 15.351412673321658, 15.073209003506165, 14.79197428109449, - 14.507696180229457, + 14.507696180229456, 14.22036244532095, - 13.929960899241355, + 13.929960899241356, 13.636479451768398, 13.339906108281667, 13.040228978717968, @@ -1871,7 +1900,7 @@ 11.810248981884634, 11.494878891216809, 11.176336405388664, - 10.854610639961559, + 10.85461063996156, 10.529690896718654, 10.20156667521401, 9.870227684639731, @@ -1896,7 +1925,7 @@ 2.9522724044718043, 2.5549194406672004, 2.154208732156822, - 1.7501383191409359, + 1.750138319140936, 1.342706825197037, 0.93191347840924, 0.5177581329357583, @@ -1905,7 +1934,7 @@ -0.7448714976699805, -1.1724629953059016, -1.6034070440193642, - -2.0376995555918214, + -2.037699555591822, -2.475335652396883, -2.9163096423002473, -3.3606149931223386, @@ -1921,24 +1950,24 @@ -7.984802364367801, -8.465054461727346, -8.948484135327998, - -9.435071417708965, + -9.435071417708963, -9.924795100850462, -10.417632704855162, - -10.913560446338899, + -10.9135604463389, -11.412553206549534, -11.914584499232678, - -12.419626438265821, - -12.927649705082635, - -13.438623515911933, + -12.41962643826582, + -12.927649705082636, + -13.438623515911932, -13.952515588855528, - -14.469292110832479, + -14.46929211083248, -14.98891770441749, -15.51135539460404, -16.03656657552291, -16.564510977150047, -17.095146632038073, -17.628429842109004, - -18.164315145545554, + -18.16431514554555, -18.702755283822157, -19.24370116891715, -19.78710185075095, @@ -1950,7 +1979,7 @@ -23.095960785276528, -23.654955339190806, -24.215926260162536, - -24.778804435720282, + -24.77880443572028, -25.34351858915672, -25.909995252897932, -26.47815874277559, @@ -1960,8 +1989,8 @@ -28.76608834294852, -29.341471447722625, -29.91803941591717, - -30.495700417596378, - -31.074360241548238, + -30.495700417596375, + -31.07436024154824, -31.65392228098724, -32.2342875209216, -32.815354527269385, @@ -2065,24 +2094,24 @@ "opacity": 1, "type": "mesh3d", "x": [ - 105.00000000000003, + 105.00000000000004, 104.29128536314914, 103.56528578696982, 102.82222417564698, - 102.06233182007969, + 102.06233182007968, 101.28584820190578, - 100.49302078783643, + 100.49302078783644, 99.68410481467166, 98.85936306538694, 98.01906563670094, 97.16348969855196, - 96.29291924592691, - 95.40764484350187, - 94.50796336356701, + 96.29291924592692, + 95.40764484350188, + 94.507963363567, 93.5941777177202, - 92.66659658282535, - 91.72553412173947, - 90.77130969932075, + 92.66659658282536, + 91.72553412173949, + 90.77130969932077, 89.8042475942357, 88.82467670708823, 87.8329302653955, @@ -2117,7 +2146,7 @@ 55.35854977939462, 54.16582063287363, 52.971797874709765, - 51.776803938271556, + 51.77680393827155, 50.581157106269195, 49.38517135837881, 48.189156227016376, @@ -2139,7 +2168,7 @@ 29.28246046534393, 28.128459520989644, 26.979123599058155, - 25.834660802951234, + 25.83466080295123, 24.69527351635537, 23.561158410238654, 22.43250645528731, @@ -2149,10 +2178,10 @@ 17.976151180082248, 16.877481544768614, 15.785302509490236, - 14.699765905394457, + 14.699765905394456, 13.621018134210708, 12.549200220462602, - 11.484447867084945, + 11.484447867084944, 10.426891514249192, 9.37665640120283, 8.333862630931797, @@ -2162,10 +2191,10 @@ 4.239327103994746, 3.2353666662631326, 2.23946425792996, - 1.2517060373025117, + 1.2517060373025115, 0.272173623601347, -0.699055820957895, - -1.6619095079559543, + -1.6619095079559545, -2.6163189385795604, -3.562219818588545, -4.49955197257561, @@ -2173,25 +2202,25 @@ -6.348289476658252, -7.259594291096668, -8.162129133772517, - -9.055853121381539, + -9.05585312138154, -9.940728967072246, -10.81672289310864, -11.683804543725032, - -12.541946898263589, + -12.541946898263587, -13.391126184680488, -14.231321793502278, -15.062516192308962, -15.884694840816568, -16.69784610662729, -17.501961181710993, - -18.297033999678234, + -18.29703399967823, -19.083061153900417, -19.860041816529183, -20.6279776584632, -21.38687277030694, -22.13673358436254, -22.877568797692113, - -23.609389296285194, + -23.60938929628519, -24.332208080362054, -25.046040190841214, -25.750902636996155, @@ -2215,7 +2244,7 @@ -36.934006066213755, -37.47380753080164, -38.00529261310949, - -38.528505188906124, + -38.52850518890613, -39.0434898325256, -39.55029177367137, -40.04895685540646, @@ -2240,7 +2269,7 @@ -48.041786223527566, -48.387961190185024, -48.727040992206085, - -49.059076521143204, + -49.0590765211432, -49.384118602708064, -49.70221797784042, -50.01342528450263, @@ -2256,7 +2285,7 @@ -52.75746828647347, -52.99615930568793, -53.22855216552637, - -53.454694806501436, + -53.45469480650144, -53.67463487767141, -53.88841972726394, -54.09609639376341, @@ -2275,8 +2304,8 @@ -56.260839937971795, -56.38775001675209, -56.50921552208479, - -56.625277651371604, - -56.735977199128996, + -56.6252776513716, + -56.73597719912899, -56.84135455428562, -56.941449697723826, -57.036302200056056, @@ -2291,7 +2320,7 @@ -57.66037972882422, -57.70489078338575, -57.744566970307666, - -57.779442837966684, + -57.77944283796669, -57.809552513326054, -57.834929702195915, -57.85560768962175, @@ -2303,7 +2332,7 @@ -57.88280348286121, -57.87148383303374, -57.85571619928308, - -57.835530115795436, + -57.83553011579544, -57.81095470579146, -57.78201868299567, -57.74875035317828, @@ -2320,7 +2349,7 @@ -57.1045586910672, -57.02136440938134, -56.93416948389078, - -56.842996703437564, + -56.84299670343757, -56.747868478509375, -56.64880684351972, -56.54583345911334, @@ -2384,18 +2413,18 @@ -44.442338464685214, -44.13482608442513, -43.82411065772652, - -43.510195717672204, + -43.51019571767221, -43.19308457745672, -42.87278033293581, -42.54928586518718, -42.22260384308355, - -41.892736725878876, + -41.89273672587888, -41.55968676580887, -41.22345601070671, -40.8840463066352, -40.54145930053596, -40.19569644289763, - -39.846758990443284, + -39.84675899044328, -39.494648008838986, -39.139364375424144, -38.78090878196543, @@ -2420,30 +2449,30 @@ -31.367239129399906, -30.945229441021333, -30.520024650696804, - -30.091622129420866, + -30.091622129420863, -29.660019135758688, -29.225212819623515, -28.787200226120575, -28.34597829945935, -27.90154388693667, - -27.453893742992946, + -27.453893742992943, -27.003024533343904, - -26.548932839190414, + -26.548932839190417, -26.091615161508606, - -25.631067925423242, - -25.167287484666538, + -25.63106792542324, + -25.167287484666534, -24.700270126125417, -24.230012074479607, -23.75650949693368, -23.279758508045415, -22.79975517465389, - -22.316495520909566, - -21.829975533410074, + -22.31649552090957, + -21.82997553341007, -21.34019116644407, -20.847138347346785, -20.350812981969938, -19.851210960269754, - -19.348328162015758, + -19.34832816201576, -18.842160462624303, -18.332703739119545, -17.81995387622603, @@ -2455,9 +2484,9 @@ -14.674070885235306, -14.138155809057046, -13.598915725728006, - -13.056346886872483, + -13.056346886872484, -12.510445620759068, - -11.961208340081875, + -11.961208340081876, -11.40863154991871, -10.852711855871323, -10.293445972391162, @@ -2474,12 +2503,12 @@ -3.9198686216642713, -3.320244045901571, -2.7172446283995484, - -2.1108695966190894, + -2.11086959661909, -1.501118437181038, -0.8879909077996295, -0.2714870494838415, 0.3483928009890427, - 0.9716479983213979, + 0.971647998321398, 1.5982775756600986, 2.2282802312726417, 2.861654314929929, @@ -2493,19 +2522,19 @@ 8.049694054833658, 8.713272093826273, 9.380182674675403, - 10.050419325584965, + 10.050419325584963, 10.723975038005754, 11.400842248718362, - 12.081012821549681, + 12.08101282154968, 12.76447802871786, 13.451228531801576, 14.141254362328173, - 14.834544901976873, - 15.531088862392071, + 14.834544901976871, + 15.531088862392073, 16.230874264603578, 16.933888418048348, 17.64011789919087, - 18.349548529738158, + 18.34954852973816, 19.062165354445636, 19.777952618511357, 20.496893744554523, @@ -2514,7 +2543,7 @@ 22.672461686889733, 23.403835206240338, 24.138266526847495, - 24.875733628844674, + 24.87573362884467, 25.616213496814716, 26.359682093371376, 27.106114332312373, @@ -2540,7 +2569,7 @@ 42.60798797285066, 43.40869670276849, 44.21149221328554, - 45.016316941747284, + 45.01631694174728, 45.823111513502745, 46.63181470611225, 47.44236341336757, @@ -2596,66 +2625,66 @@ 88.26510290116548, 89.03108105133312, 89.79221575369532, - 90.54830293131215, + 90.54830293131216, 91.2991357104942, 92.04450446144703, 92.7841968428299, 93.5179978503327, 94.2456898693717, - 94.96705273200345, + 94.96705273200344, 95.68186377815182, 96.3898979212423, 97.09092771833213, - 97.78472344482333, + 97.78472344482331, 98.4710531738395, 99.1496828603439, 99.82037643007142, - 100.48289587334047, + 100.48289587334048, 101.13700134380753, 101.7824512622177, 102.41900242520065, - 103.04641011915271, - 103.66442823923967, + 103.04641011915272, + 103.66442823923968, 104.27280941354482, 104.87130513238117, 105.45966588277506, - 106.03764128812179, - 106.60498025300181, - 107.16143111313787, - 107.70674179046125, + 106.0376412881218, + 106.6049802530018, + 107.16143111313788, + 107.70674179046124, 108.24065995324617, 108.7629331812579, - 109.27330913585045, - 109.77153573493607, - 110.25736133273773, - 110.73053490422157, + 109.27330913585044, + 109.77153573493608, + 110.25736133273772, + 110.73053490422156, 111.1908062340945, - 111.63792611023831, + 111.63792611023833, 112.07164652143771, - 112.49172085924745, - 112.89790412382743, + 112.49172085924744, + 112.89790412382744, 113.28995313356316, 113.6676267382725, 114.03068603578794, 114.3788945916866, 114.7120186619284, 115.02982741814742, - 115.33209317532811, - 115.61859162158393, + 115.33209317532813, + 115.61859162158392, 115.88910204974265, - 116.14340759042913, + 116.14340759042912, 116.38129544632407, 116.6025571272638, 116.80698868583517, 116.99439095310746, - 117.16456977413235, - 117.31733624283365, - 117.45250693589713, + 117.16456977413236, + 117.31733624283363, + 117.45250693589712, 117.56990414526382, 117.66935610882128, - 117.75069723888001, + 117.75069723888, 117.81376834801668, - 117.85841687185975, + 117.85841687185976, 117.88449708838992, 117.89187033332377, 117.880405211147, @@ -2663,10 +2692,10 @@ 117.80047185953003, 117.73177901263033, 117.64379894838386, - 117.53643959803921, + 117.5364395980392, 117.40961731224638, 117.26325702959122, - 117.09729243738641, + 117.0972924373864, 116.91166612432406, 116.7063297246046, 116.48124405316946, @@ -2674,12 +2703,12 @@ 115.97171480487992, 115.68723984706804, 115.38295305827532, - 115.05886284994767, + 115.05886284994769, 114.71498741980304, 114.35135481562932, - 113.96800298778773, - 113.56497983021285, - 113.14234320972467, + 113.96800298778771, + 113.56497983021283, + 113.14234320972469, 112.70016098349008, 112.2385110044987, 111.75748111494298, @@ -2691,9 +2720,9 @@ 108.47049414869385, 107.8570965253262, 107.22537651311524, - 106.57550954360359, + 106.5755095436036, 105.90768030124394, - 105.22208258426423 + 105.22208258426424 ], "y": [ 60.6217782649107, @@ -2725,28 +2754,28 @@ 87.78663231032492, 88.6244506617692, 89.44496799792323, - 90.24804024554697, + 90.24804024554696, 91.0335329030333, - 91.80132103794709, - 92.55128927338241, - 93.28333176333959, + 91.80132103794708, + 92.5512892733824, + 93.2833317633396, 93.99735215734536, 94.69326355455762, - 95.37098844761447, + 95.37098844761448, 96.03045865650438, - 96.67161525274935, + 96.67161525274936, 97.29440847420868, - 97.89879763082281, + 97.8987976308228, 98.4847510016298, 99.05224572339786, - 99.60126767122647, + 99.60126767122648, 100.13181133147744, - 100.64387966740513, + 100.64387966740512, 101.13748397785926, - 101.61264374944109, - 102.06938650249509, + 101.61264374944108, + 102.06938650249508, 102.5077476313229, - 102.92777023900561, + 102.9277702390056, 103.32950496722324, 103.71300982145762, 104.07834999196402, @@ -2757,74 +2786,74 @@ 105.6353418612928, 105.89344182389092, 106.1340188562677, - 106.35718879843645, + 106.35718879843644, 106.56307293515336, 106.75179779478732, 106.92349494784884, - 107.07830080548203, + 107.07830080548204, 107.21635641821422, - 107.33780727524581, + 107.3378072752458, 107.44280310455302, 107.53149767406518, 107.60404859416506, 107.66061712175178, 107.70136796609172, 107.72646909667267, - 107.73609155326461, + 107.7360915532646, 107.7304092583776, 107.70959883229722, 107.673839410865, 107.62331246616064, - 107.55820163023101, - 107.47869252199979, + 107.558201630231, + 107.4786925219998, 107.3849725774809, 107.27723088340738, - 107.15565801437765, + 107.15565801437764, 107.0204458736097, - 106.87178753738503, + 106.87178753738505, 106.70987710325286, 106.5349095420571, 106.34708055383786, - 106.14658642765201, + 106.146586427652, 105.93362390534726, - 105.70839004931719, + 105.7083900493172, 105.47108211425564, 105.2218974229227, - 104.96103324592569, + 104.96103324592568, 104.6886866855132, 104.40505456337232, 104.1103333124145, 103.80471887252796, 103.4884065902704, - 103.16159112247017, + 103.16159112247016, 102.82446634369836, 102.47722525757146, 102.120059911838, - 101.75316131720035, + 101.75316131720037, 101.37671936981828, 100.99092277743756, - 100.59595898908465, + 100.59595898908464, 100.19201412826447, - 99.77927292959693, + 99.77927292959691, 99.35791867882506, - 98.92813315612545, + 98.92813315612544, 98.4900965826506, 98.04398757023, - 97.58998307415753, + 97.58998307415752, 97.12825834898906, 96.65898690727536, - 96.18234048115373, - 95.69848898672139, - 95.20760049111321, + 96.18234048115372, + 95.6984889867214, + 95.2076004911132, 94.70984118220652, - 94.20537534087515, - 93.69436531571553, - 93.17697150016747, + 94.20537534087516, + 93.69436531571552, + 93.17697150016748, 92.65335231195274, 92.1236641747552, 91.58806150206657, 91.04669668312272, - 90.49972007085631, + 90.49972007085633, 89.94727997179224, 89.38952263781324, 88.82659225972455, @@ -2878,7 +2907,7 @@ 58.04699105849767, 57.36613110720523, 56.68487634945213, - 56.003281475408244, + 56.00328147540824, 55.32139994009563, 54.63928398484736, 53.95698465862001, @@ -2889,9 +2918,9 @@ 50.544443362021475, 49.862051709890174, 49.179802398971475, - 48.497737686468476, + 48.49773768646848, 47.81589882126438, - 47.134326063406476, + 47.13432606340648, 46.453058703381174, 45.7721350811764, 45.09159260512862, @@ -2920,7 +2949,7 @@ 29.617860756368753, 28.95557486460804, 28.294353096693605, - 27.634214520879322, + 27.63421452087932, 26.975177698269064, 26.317260695501997, 25.66048109723765, @@ -2934,17 +2963,17 @@ 20.44915153085965, 19.80332628506247, 19.158790389489063, - 18.515556896064478, + 18.51555689606448, 17.87363850979602, 17.23304759887765, 16.593796204629367, - 15.955896051275193, + 15.955896051275191, 15.319358555561658, - 14.684194836220227, + 14.684194836220229, 14.050415723275778, 13.418031767204434, - 12.787053247942909, - 12.157490183752751, + 12.787053247942907, + 12.157490183752753, 11.529352339941388, 10.902649237443612, 10.277390161265169, @@ -2963,10 +2992,10 @@ 2.2842736880919303, 1.6800927774898486, 1.0774722091744628, - 0.47641853980555765, - -0.12306178481436397, + 0.4764185398055577, + -0.12306178481436396, -0.7209624233251292, - -1.3172771324836545, + -1.3172771324836543, -1.911999760925385, -2.505124243010744, -3.0966445927537523, @@ -2982,13 +3011,13 @@ -8.922349079518876, -9.495845831968916, -10.067670726233258, - -10.637818292874043, + -10.637818292874044, -11.206283064552922, - -11.773059570940159, - -12.338142333673407, - -12.901525861363583, - -13.463204644646753, - -14.023173151279375, + -11.77305957094016, + -12.338142333673408, + -12.901525861363584, + -13.463204644646751, + -14.023173151279376, -14.581425821275904, -15.137957062086173, -15.692761243811589, @@ -2997,19 +3026,19 @@ -17.34675447581227, -17.894593209805066, -18.44067601002105, - -18.984996923939118, + -18.98499692393912, -19.52754992913255, -20.06832892873118, -20.607327746906595, -21.14454012437957, -21.679959713947383, -22.21358007603024, - -22.745394674234582, - -23.275396870932422, + -22.745394674234586, + -23.275396870932425, -23.803579922854745, -24.32993697669768, -24.85446106474025, - -25.377145100471694, + -25.377145100471697, -25.897981874227643, -26.416964048833112, -26.93408415525152, @@ -3038,7 +3067,7 @@ -38.294414516930615, -38.764185018839115, -39.23185110885377, - -39.697400350844156, + -39.69740035084416, -40.16082005694632, -40.62209728288281, -41.08121882325637, @@ -3055,10 +3084,10 @@ -45.9852280330507, -46.4173497274749, -46.84711810946411, - -47.274515807009124, + -47.27451580700912, -47.699525112678685, -48.12212797839071, - -48.542306010146476, + -48.54230601014648, -48.96004046272705, -49.375312234352265, -49.78810186130131, @@ -3227,13 +3256,13 @@ -53.23098967011042, -52.56451720111743, -51.88555114715316, - -51.194056144817836, + -51.19405614481784, -50.49000023558232, -49.77335498571361, -49.04409560721392, -48.30220107966138, - -47.547654272834684, - -46.780442069996084, + -47.54765427283469, + -46.78044206999608, -46.00055549170179, -45.20798982000069, -44.402744722875326, @@ -3252,13 +3281,13 @@ -32.78932839267188, -31.80928634986127, -30.817169609259917, - -29.813064462618946, + -29.813064462618943, -28.797063565467724, -27.769266033233016, -26.72977753358581, -25.678710374752463, -24.61618358952602, - -23.542323014708934, + -23.542323014708938, -22.4572613657212, -21.361138306102617, -20.254100511640747, @@ -3266,16 +3295,16 @@ -18.007902827575112, -16.869071847328364, -15.719984037307878, - -14.560821889626801, + -14.5608218896268, -13.391775165624184, - -12.213040914967065, + -12.213040914967063, -11.024823487304497, - -9.827334536237629, + -9.827334536237627, -8.620793015375238, -7.405425166256119, -6.181464497925849, -4.949151757968594, - -3.7087348948034506, + -3.70873489480345, -2.460469011070481, -1.2046163079414605, 0.058553979793060346, @@ -3285,12 +3314,12 @@ 5.178784529721318, 6.47426377445294, 7.775302316902559, - 9.081584303419339, - 10.392787710709943, + 9.08158430341934, + 10.392787710709944, 11.708584497748356, 13.02864076744834, 14.352616938038413, - 15.680167924061447, + 15.680167924061449, 17.010943326893955, 18.34458763466132, 19.680740431396607, @@ -3301,7 +3330,7 @@ 26.38620213878385, 27.72959110088696, 29.07284774554842, - 30.415580995178434, + 30.41558099517843, 31.75739713023281, 33.09790007744334, 34.436691704120705, @@ -3323,7 +3352,7 @@ 55.29657506677073, 56.544879747975976, 57.784314178193064, - 59.014501620359404, + 59.01450162035941, 60.23506968887309 ], "z": [ @@ -3363,7 +3392,7 @@ -63.92352176186548, -63.56688807422993, -63.201595705105014, - -62.827803161463876, + -62.82780316146387, -62.44567130405031, -62.05536319187288, -61.65704392675906, @@ -3384,7 +3413,7 @@ -54.83765914197881, -54.334693301869784, -53.826689920038135, - -53.313825693064004, + -53.313825693064, -52.796276703145146, -52.27421830548175, -51.74782501918573, @@ -3399,18 +3428,18 @@ -46.84346776765964, -46.28306951469104, -45.72017337085427, - -45.154936654151804, + -45.15493665415181, -44.587514765435, -44.01806113133335, -43.4467271507941, -42.87366214518601, -42.29901331191537, - -41.722925681498644, + -41.72292568149864, -41.14554207803177, -40.567003082992024, -39.9874470023057, -39.40700983661074, - -38.825825254641316, + -38.82582525464131, -38.244024569658386, -37.66173671884821, -37.07908824560875, @@ -3437,14 +3466,14 @@ -24.95848743398202, -24.39501660311136, -23.833430559187832, - -23.273799101115966, + -23.27379910111597, -22.71618988219556, -22.16066843812098, -21.607298215708056, -21.05614060228679, - -20.507254955699686, + -20.50725495569969, -19.96069863484768, - -19.416527030727522, + -19.41652703072752, -18.87479359790651, -18.335549886382154, -17.798845573776603, @@ -3453,14 +3482,14 @@ -16.20443840379441, -15.678352157132302, -15.15502675616874, - -14.634501333244465, + -14.634501333244463, -14.11681337923252, -13.601998776826724, -13.09009183379636, -12.581125316175058, -12.075130481353408, -11.572137111046526, - -11.072173544109365, + -11.072173544109363, -10.575266709174052, -10.081442157085077, -9.590724093109587, @@ -3475,7 +3504,7 @@ -5.317421941360915, -4.858826503095394, -4.403523932321851, - -3.9515246927001915, + -3.951524692700191, -3.5028382926156567, -3.0574733125653455, -2.615437432124279, @@ -3483,7 +3512,7 @@ -1.7413793425718922, -1.3093682247095888, -0.8807084398706191, - -0.45540355247172587, + -0.4554035524717258, -0.03345637873401035, 0.3851309893999086, 0.800357160791523, @@ -3503,34 +3532,34 @@ 6.261297612218792, 6.626348727864066, 6.988094243140014, - 7.3465415117693995, + 7.3465415117694, 7.701698239542524, 8.053572468826955, 8.40217256345498, 8.747507193983314, - 9.089585323319433, + 9.089585323319431, 9.428416192708887, 9.76400930807779, 10.09637442672473, - 10.425521544356183, + 10.425521544356185, 10.75146088245956, 11.074202876007956, - 11.393758161490615, + 11.393758161490616, 11.710137565263182, 12.023352092211734, 12.33341291472465, - 12.640331361966311, + 12.640331361966313, 12.944118909446752, 13.244787168881254, 13.542347878334034, 13.836812892640168, 14.128194174099852, 14.41650378343931, - 14.701753871032501, + 14.7017538710325, 14.983956668377994, 15.26312447982538, 15.53926967454555, - 15.812404678739465, + 15.812404678739464, 16.082541968079724, 16.349694060379857, 16.61387350848565, @@ -3549,16 +3578,16 @@ 19.78343089311749, 20.007315835690704, 20.22841641753966, - 20.446744947042358, + 20.44674494704236, 20.66231367595092, - 20.875134795456102, + 20.875134795456106, 21.085220432387015, 21.29258264554252, 21.497233422150295, 21.69918467445023, 21.898448236398377, 22.095035860488185, - 22.288959214685338, + 22.288959214685335, 22.48022987947326, 22.66885934500561, 22.854859008362883, @@ -3570,7 +3599,7 @@ 23.91625700641301, 24.08415882377886, 24.249518367700126, - 24.412346089825114, + 24.41234608982511, 24.57265232636635, 24.7304472963114, 24.885741099704767, @@ -3595,7 +3624,7 @@ 27.37361542772677, 27.4808111659222, 27.58568796309534, - 27.688252985554758, + 27.68825298555476, 27.78851325615197, 27.88647565369831, 27.982146912410315, @@ -3609,22 +3638,22 @@ 28.665795979706395, 28.741125929416615, 28.81422402596085, - 28.885095383499454, + 28.885095383499458, 28.95374496678798, 29.020177590902144, - 29.084397920978322, + 29.08439792097832, 29.146410471968924, - 29.206219608411974, + 29.206219608411978, 29.26382954421428, 29.31924434244749, 29.37246791515655, 29.423504023179923, 29.47235627598102, - 29.519028131490398, + 29.5190281314904, 29.5635228959581, 29.605843723815877, - 29.645993617548534, - 29.683975427574346, + 29.645993617548537, + 29.683975427574342, 29.71979185213378, 29.753445437186436, 29.784938576315653, @@ -3638,7 +3667,7 @@ 29.9593445185936, 29.97147617539161, 29.98146292534629, - 29.989305481526202, + 29.9893054815262, 29.995004403981373, 29.998560099725516, 29.999972822723144, @@ -3651,10 +3680,10 @@ 29.94984783802787, 29.93410755546438, 29.916219698897745, - 29.896182992161926, + 29.89618299216193, 29.873996006223532, 29.849657159229473, - 29.823164716560342, + 29.823164716560346, 29.79451679088973, 29.76371134224982, 29.73074617810337, @@ -3664,9 +3693,9 @@ 29.577239180381607, 29.533437216621888, 29.48745918308775, - 29.439301821873414, + 29.439301821873418, 29.388961723347684, - 29.336435326298382, + 29.336435326298385, 29.28171891808688, 29.22480863481318, 29.165700461492047, @@ -3684,11 +3713,11 @@ 28.28330019652295, 28.195185744979256, 28.104801459693412, - 28.012141089925066, + 28.012141089925063, 27.91719823868893, 27.819966363222637, 27.720438775479504, - 27.618608642647214, + 27.618608642647217, 27.514468987693572, 27.408012689940417, 27.299232485666845, @@ -3701,8 +3730,8 @@ 26.47206178957155, 26.344411898490335, 26.214366406149193, - 26.081916658942582, - 25.947053869166318, + 26.081916658942585, + 25.94705386916632, 25.80976911607807, 25.67005334700611, 25.527897378507912, @@ -3712,13 +3741,13 @@ 24.934683333723974, 24.780184127263453, 24.623186946178578, - 24.463681728661374, + 24.463681728661378, 24.30165829342819, 24.137106341415475, 23.970015457546157, 23.800375112568695, 23.62817466497145, - 23.453403362974658, + 23.453403362974655, 23.27605034660284, 23.096104649839905, 22.913555202869897, @@ -3726,21 +3755,21 @@ 22.540600274110673, 22.350172155109693, 22.157095016603176, - 21.961357306576506, - 21.762947384614282, + 21.961357306576502, + 21.76294738461428, 21.561853524820407, 21.35806391884764, 21.151566679039856, 20.942349841690277, - 20.730401370419354, + 20.73040137041935, 20.515709159675676, 20.298261038363577, - 20.078044773600958, - 19.855048074611382, + 20.07804477360096, + 19.855048074611386, 19.62925859675401, 19.40066394569541, 19.169251681727296, - 18.935009324234034, + 18.93500932423403, 18.69792435631436, 18.45798422956135, 18.215176369005164, @@ -3753,13 +3782,13 @@ 16.434165364320165, 16.167961514404276, 15.898776462446074, - 15.626597678712121, + 15.62659767871212, 15.351412673321658, 15.073209003506165, 14.79197428109449, - 14.507696180229457, + 14.507696180229456, 14.22036244532095, - 13.929960899241355, + 13.929960899241356, 13.636479451768398, 13.339906108281667, 13.040228978717968, @@ -3769,7 +3798,7 @@ 11.810248981884634, 11.494878891216809, 11.176336405388664, - 10.854610639961559, + 10.85461063996156, 10.529690896718654, 10.20156667521401, 9.870227684639731, @@ -3794,7 +3823,7 @@ 2.9522724044718043, 2.5549194406672004, 2.154208732156822, - 1.7501383191409359, + 1.750138319140936, 1.342706825197037, 0.93191347840924, 0.5177581329357583, @@ -3803,7 +3832,7 @@ -0.7448714976699805, -1.1724629953059016, -1.6034070440193642, - -2.0376995555918214, + -2.037699555591822, -2.475335652396883, -2.9163096423002473, -3.3606149931223386, @@ -3819,24 +3848,24 @@ -7.984802364367801, -8.465054461727346, -8.948484135327998, - -9.435071417708965, + -9.435071417708963, -9.924795100850462, -10.417632704855162, - -10.913560446338899, + -10.9135604463389, -11.412553206549534, -11.914584499232678, - -12.419626438265821, - -12.927649705082635, - -13.438623515911933, + -12.41962643826582, + -12.927649705082636, + -13.438623515911932, -13.952515588855528, - -14.469292110832479, + -14.46929211083248, -14.98891770441749, -15.51135539460404, -16.03656657552291, -16.564510977150047, -17.095146632038073, -17.628429842109004, - -18.164315145545554, + -18.16431514554555, -18.702755283822157, -19.24370116891715, -19.78710185075095, @@ -3848,7 +3877,7 @@ -23.095960785276528, -23.654955339190806, -24.215926260162536, - -24.778804435720282, + -24.77880443572028, -25.34351858915672, -25.909995252897932, -26.47815874277559, @@ -3858,8 +3887,8 @@ -28.76608834294852, -29.341471447722625, -29.91803941591717, - -30.495700417596378, - -31.074360241548238, + -30.495700417596375, + -31.07436024154824, -31.65392228098724, -32.2342875209216, -32.815354527269385, @@ -4491,7 +4520,7 @@ 49.99000033332889, 49.977501687449376, 49.9600053330489, - 49.937513019748316, + 49.93751301974832, 49.91002699676021, 49.87755001266398, 49.84008531513097, @@ -4513,7 +4542,7 @@ 48.56689874260148, 48.44562108553224, 48.31949890672566, - 48.188544818294524, + 48.18854481829453, 48.05277191553854, 47.91219377563486, 47.7668244562803, @@ -4549,9 +4578,9 @@ 41.26678074548391, 40.98240089227397, 40.69392283312669, - 40.401375415607596, + 40.4013754156076, 40.10478789421463, - 39.804189927452796, + 39.8041899274528, 39.499611574868254, 39.191083294042464, 38.8786359375464, @@ -4582,15 +4611,15 @@ 29.89169911436491, 29.48940125155491, 29.084154473194175, - 28.675999303622834, - 28.264976558017718, + 28.67599930362283, + 28.26497655801772, 27.851127338310867, 27.434493029079377, 27.01511529340699, 26.593036068717772, 26.168297562582477, 25.740942248497767, - 25.311012861638922, + 25.31101286163892, 24.878552394586347, 24.443604093026376, 24.006211451426704, @@ -4606,22 +4635,22 @@ 19.507584215411512, 19.046241218344093, 18.582993613026648, - 18.117887723833682, + 18.11788772383368, 17.65097006096652, 17.182287315802352, 16.71188635622513, 16.23981422193881, - 15.766118119763433, - 15.290845418914467, + 15.766118119763432, + 15.290845418914468, 14.814043646265937, 14.335760481597775, 13.85604375282788, - 13.374941431229367, - 12.892501626633479, + 13.374941431229368, + 12.89250162663348, 12.408772582618646, 11.923802671686158, 11.437640390422969, - 10.950334354652075, + 10.950334354652076, 10.461933294570963, 9.972486049878643, 9.482041564891713, @@ -4645,13 +4674,13 @@ 0.5398058529133696, 0.03981633553666317, -0.4601771634404168, - -0.9601246450846325, + -0.9601246450846324, -1.4599761150644408, - -1.9596815886493855, + -1.9596815886493857, -2.459191095708528, -2.9584546857074177, - -3.4574224327031082, - -3.9560444403367043, + -3.457422432703108, + -3.956044440336704, -4.4542708468229595, -4.9520518299364005, -5.449337611993556, @@ -4666,13 +4695,13 @@ -9.89444073045545, -10.38405008043919, -10.872621034068231, - -11.360104734654355, - -11.846452434233735, - -12.331615498441701, - -12.815545411376137, - -13.298193780449019, + -11.360104734654357, + -11.846452434233736, + -12.3316154984417, + -12.815545411376135, + -13.29819378044902, -13.779512341225647, - -14.259452962251043, + -14.259452962251045, -14.737967649863052, -15.215008552991671, -15.690527967944124, @@ -4714,19 +4743,19 @@ 6.481707130984743, 6.977155732211824, 7.471906623679961, - 7.9659103307122985, + 7.965910330712299, 8.459117453349801, 8.951478671291209, 9.44294474882503, - 9.933466539753061, - 10.422994992304977, + 9.93346653975306, + 10.422994992304975, 10.911481154043466, 11.39887617675942, 11.88513132135673, - 12.370197962726147, + 12.370197962726149, 12.854027594607755, - 13.336571834441557, - 13.817782428205689, + 13.336571834441555, + 13.817782428205687, 14.297611255241776, 14.776010333066978, 15.252931822172174, @@ -4739,8 +4768,8 @@ 18.546023470649136, 19.00942075615807, 19.470917115432528, - 19.930466399221146, - 20.388022652978506, + 19.930466399221142, + 20.388022652978503, 20.84354012146054, 21.29697325329998, 21.748276705561512, @@ -4751,11 +4780,11 @@ 23.971276930210152, 24.408862344145373, 24.844006892186837, - 25.276667060242346, + 25.276667060242342, 25.70679958265566, 26.13436144653296, 26.55930989604417, - 26.981602436698466, + 26.981602436698463, 27.401196839593677, 27.81805114563919, 28.23212366975177, @@ -4782,12 +4811,12 @@ 36.21435871850713, 36.557291486344795, 36.896568555498135, - 37.232155998542964, + 37.23215599854296, 37.56402025701463, 37.892128144763845, 38.21644685127525, 38.53694394494846, - 38.853587376341196, + 38.8535873763412, 39.16634548137417, 39.475186984497526, 39.7800810018183, @@ -4796,7 +4825,7 @@ 40.67077523946869, 40.95957841504991, 41.2442856669225, - 41.524868524598524, + 41.52486852459853, 41.80129893002603, 42.073549240394826, 42.34159223090076, @@ -4860,11 +4889,11 @@ 49.99078075671454, 49.978680152075256, 49.96158172106953, - 49.939487173526196, + 49.93948717352619, 49.912398718881626, 49.88031906595868, 49.84325142269594, - 49.801199495826836, + 49.80119949582683, 49.75416749050901, 49.7021601099038, 49.645182554705926, @@ -4881,15 +4910,15 @@ 48.69238154390976, 48.576347791115765, 48.455456444022815, - 48.329719591664876, + 48.32971959166488, 48.199149807622405, 48.06376014876499, 47.923564153945705, 47.7785758426472, 47.62880971357977, 47.474280743231525, - 47.315004384370724, - 47.150996564500524, + 47.31500438437072, + 47.15099656450053, 46.98227368426625, 46.808852615815304, 46.630750701110024, @@ -5135,7 +5164,7 @@ "scene": { "aspectmode": "auto", "aspectratio": { - "x": 0.9307095489136137, + "x": 0.9307095489136136, "y": 1.4796662430239833, "z": 0.726142848162594 }, @@ -6134,7 +6163,7 @@ " marker={\"symbol\": \"circle-open\", \"size\": [0, 20]},\n", " text=[\"\", \"periapsis\"],\n", " textfont=dict(size=20, family=\"sans-serif\", color=\"black\"),\n", - " textposition=\"top left\", \n", + " textposition=\"top left\",\n", ")\n", "\n", "nodeline = go.Scatter3d(\n", @@ -6232,7 +6261,7 @@ "fig.add_trace(nodesmarks)\n", "fig.add_trace(raanarc)\n", "\n", - "fig.show()\n" + "fig.show()" ] }, { diff --git a/intro/reference-frames.md b/intro/reference-frames.md index 945cf866..0ab1a8d0 100644 --- a/intro/reference-frames.md +++ b/intro/reference-frames.md @@ -12,6 +12,7 @@ The two types of reference frames are: Profound. (sec:inertial-reference-frame)= + ### Inertial Reference Frame An **inertial** reference frame is one that is not _accelerating_. It may be moving at constant velocity, but there can be absolutely no acceleration, _including rotation!_ diff --git a/orbital-maneuvers/nonimpulsive-maneuver-example.ipynb b/orbital-maneuvers/nonimpulsive-maneuver-example.ipynb index 26bcb19a..fd9c240a 100644 --- a/orbital-maneuvers/nonimpulsive-maneuver-example.ipynb +++ b/orbital-maneuvers/nonimpulsive-maneuver-example.ipynb @@ -36,14 +36,14 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", - "from scipy.integrate import solve_ivp\n", "# %matplotlib notebook\n", "import matplotlib.pyplot as plt\n", + "import numpy as np\n", "from matplotlib.patches import Circle\n", + "from scipy.integrate import solve_ivp\n", "\n", "R_E = 6378 # km\n", - "mu = 3.986E5 # km**3/s**2\n", + "mu = 3.986e5 # km**3/s**2\n", "\n", "r_LEO = R_E + 300 # km\n", "v_LEO = np.sqrt(mu / r_LEO) # km/s\n", @@ -52,12 +52,12 @@ "\n", "r_0 = np.array((r_LEO, 0, 0)) # km\n", "v_0 = np.array((0, v_LEO, 0)) # km/s\n", - "m_0 = np.array((1000)) # kg\n", + "m_0 = np.array(1000) # kg\n", "Y_0 = np.hstack((r_0, v_0, m_0))\n", "\n", - "T = 2.5E-3 # kN\n", + "T = 2.5e-3 # kN\n", "I_sp = 10_000 # s\n", - "g_0 = 9.807E-3 # km/s**2" + "g_0 = 9.807e-3 # km/s**2" ] }, { @@ -75,7 +75,7 @@ "source": [ "def nonimpulsive_maneuver(t, Y, mu, T, I_sp, g_0, r_2):\n", " \"\"\"Residual function for non-impulsive maneuvers.\n", - " \n", + "\n", " t: Current simulation time\n", " Y: State vector [x y z xdot ydot zdot m], km, km/s, kg\n", " mu: Gravitational parameter, km**3/s**2\n", @@ -89,7 +89,7 @@ " dY_dt = np.zeros(len(Y))\n", " dY_dt[0:3] = Y[3:6]\n", " dY_dt[3:6] = -mu * Y[0:3] / r**3 + T * Y[3:6] / (m * v)\n", - " dY_dt[-1] = - T / (I_sp * g_0)\n", + " dY_dt[-1] = -T / (I_sp * g_0)\n", " return dY_dt" ] }, @@ -112,7 +112,7 @@ "source": [ "def reached_destination(t, Y, mu, T, I_sp, g_0, r_2):\n", " \"\"\"Determine if the spacecraft reaches the destination radius.\n", - " \n", + "\n", " Returns the difference between the current orbital radius and the\n", " destination radius.\n", " \"\"\"\n", @@ -152,12 +152,13 @@ "source": [ "def mass(t, Y, mu, T, I_sp, g_0, r_2):\n", " \"\"\"Return the current mass of the spacecraft.\n", - " \n", + "\n", " The mass is stored in the last element of the solution vector.\n", " If this becomes zero, the integration should terminate.\n", " \"\"\"\n", " return Y[-1]\n", "\n", + "\n", "mass.terminal = True" ] }, @@ -180,10 +181,11 @@ "source": [ "def orbit(t, Y, mu, T, I_sp, g_0, r_2):\n", " \"\"\"Trigger when the y-component of the position crosses zero.\n", - " \n", + "\n", " Useful to count the number of orbits.\"\"\"\n", " return Y[1]\n", "\n", + "\n", "# Only trigger when going from negative to positive\n", "orbit.direction = 1" ] @@ -222,17 +224,17 @@ ], "source": [ "t_end = 2_000_000 # s\n", - "t_eval = np.linspace(0, t_end, int(1E6))\n", + "t_eval = np.linspace(0, t_end, int(1e6))\n", "sol = solve_ivp(\n", " nonimpulsive_maneuver,\n", " t_span=(0, t_end),\n", " y0=Y_0,\n", " t_eval=t_eval,\n", " events=(reached_destination, mass, orbit),\n", - " rtol=1E-12,\n", - " atol=1E-15,\n", + " rtol=1e-12,\n", + " atol=1e-15,\n", " method=\"DOP853\",\n", - " args=(mu, T, I_sp, g_0, r_2)\n", + " args=(mu, T, I_sp, g_0, r_2),\n", ")\n", "print(sol.status)" ] @@ -281,9 +283,9 @@ "outputs": [], "source": [ "r_vec = sol.y[0:3].T\n", - "r = np.sqrt(r_vec[:, 0]**2 + r_vec[:, 1]**2 + r_vec[:, 2]**2)\n", + "r = np.sqrt(r_vec[:, 0] ** 2 + r_vec[:, 1] ** 2 + r_vec[:, 2] ** 2)\n", "v_vec = sol.y[3:6].T\n", - "v = np.sqrt(v_vec[:, 0]**2 + v_vec[:, 1]**2 + v_vec[:, 2]**2)\n", + "v = np.sqrt(v_vec[:, 0] ** 2 + v_vec[:, 1] ** 2 + v_vec[:, 2] ** 2)\n", "m = sol.y[-1]" ] }, @@ -325,7 +327,7 @@ "ax.add_patch(Circle((0, 0), r_2, ec=\"C1\", fc=\"none\", lw=2, ls=\"--\"))\n", "ax.plot(r_vec[:, 0], r_vec[:, 1], color=\"C2\")\n", "orbit_crossings = sol.y_events[2][:, 0]\n", - "ax.plot(orbit_crossings, np.zeros(orbit_crossings.shape), 'ko', fillstyle='none')" + "ax.plot(orbit_crossings, np.zeros(orbit_crossings.shape), \"ko\", fillstyle=\"none\")" ] }, { @@ -425,7 +427,7 @@ } ], "source": [ - "h_t = np.sqrt(2 * mu * r_LEO*r_2/(r_LEO + r_2))\n", + "h_t = np.sqrt(2 * mu * r_LEO * r_2 / (r_LEO + r_2))\n", "delta_v_1 = h_t / r_LEO - v_LEO\n", "delta_v_2 = np.sqrt(mu / r_2) - h_t / r_2\n", "delta_v_t = delta_v_1 + delta_v_2\n", @@ -434,8 +436,10 @@ "delta_m = m_0 * (1 - np.exp(-delta_v_t / (300 * g_0)))\n", "print(f\"The Δm for a Hohmann transfer is: {delta_m:.4F} kg\")\n", "\n", - "transit_t = np.pi / np.sqrt(mu) * ((r_LEO + r_2) / 2)**(3/2)\n", - "print(f\"The time of flight for a Hohmann transfer is: {transit_t / (3600 * 24):.4F} days\")" + "transit_t = np.pi / np.sqrt(mu) * ((r_LEO + r_2) / 2) ** (3 / 2)\n", + "print(\n", + " f\"The time of flight for a Hohmann transfer is: {transit_t / (3600 * 24):.4F} days\"\n", + ")" ] }, { diff --git a/orbital-maneuvers/plane-change-maneuvers.md b/orbital-maneuvers/plane-change-maneuvers.md index 95d73916..d543b6b1 100644 --- a/orbital-maneuvers/plane-change-maneuvers.md +++ b/orbital-maneuvers/plane-change-maneuvers.md @@ -153,7 +153,7 @@ glue("plane-change-pure-rotation", fig, display=False) The required velocity increment as a function of dihedral angle for pure rotation maneuvers. ::: -As we can see from {numref}`fig:plane-change-pure-rotation`, plane change of about 24° requires the same $\Delta v$ as is needed to increase the speed to the escape velocity from a circular orbit, $\Delta v / v \approx$ 0.414. +As we can see from {numref}`fig:plane-change-pure-rotation`, plane change of about 24° requires the same $\Delta v$ as is needed to increase the speed to the escape velocity from a circular orbit, $\Delta v / v \approx$ 0.414. Similarly, a plane change of 60° requires a $\Delta v$ equal to the current spacecraft velocity! In LEO, the velocity is approximately 7.5 km/s. A plane change of 60°, with an $I_{sp}$ of 300, would require over 90% of the spacecraft mass to be propellant. diff --git a/pdm.lock b/pdm.lock index 58ee6a56..87cd25a7 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "dev"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:9f18601c776e73b395438ca7340e3d601aeaf66ffadc958643132cb0eb57af08" +content_hash = "sha256:ecb473fcb2beb7615dbaa97231eb8b0dfd9b3b992ba539f0a9ed8257d9fafb2d" [[package]] name = "accessible-pygments" @@ -33,13 +33,14 @@ files = [ [[package]] name = "appnope" -version = "0.1.3" +version = "0.1.4" +requires_python = ">=3.6" summary = "Disable App Nap on macOS >= 10.9" groups = ["default"] marker = "platform_system == \"Darwin\"" files = [ - {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, - {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, + {file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"}, + {file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"}, ] [[package]] @@ -70,37 +71,45 @@ files = [ {file = "astropy-6.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3003a651a3735290d522b9ee512ca23bf66ed06cadfef5fad2e0c6ac91cd5f0c"}, {file = "astropy-6.0.0-cp311-cp311-win32.whl", hash = "sha256:689abb4449dac9255801c84b365adae4fce29eb0d330f9910567b00f0d8b58fa"}, {file = "astropy-6.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:1fbc219fbf6c3d064b84442883ba8d7d8a41489fbdd506ac60d715807b5958c6"}, + {file = "astropy-6.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3048a9cc8b11167758c9ee3f5bc0daebbe3d79f266eaf754e192f2847250eca3"}, + {file = "astropy-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48a524ce4c2454c6f75a5ca6c81aeb7ea1d842defcf4885e2a62b4853942a7a6"}, + {file = "astropy-6.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa10e80bd3ff8b053c56e402246d4171c6e9658da37341fe28d99212d809ebe4"}, + {file = "astropy-6.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fa9f6115a8c8bf901ea66ba69b32b63acd5ccb2afc017b952326bce4250d1a8"}, + {file = "astropy-6.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6d7a3eb98e250f0f41c62ed998317e64f8947ea819e56054ea256cccf9588d48"}, + {file = "astropy-6.0.0-cp312-cp312-win32.whl", hash = "sha256:63fc8a8ffb1f676c6607aeb5eaf472df78d4e25303615ca6c271442b5b9978b4"}, + {file = "astropy-6.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:0b90a2424a9de69f202111851e336743c22875b21381687e47de62331c2fd642"}, {file = "astropy-6.0.0.tar.gz", hash = "sha256:03cd801a55305da523cd8d780d76359f57255dcdc59fe0bdd71fd5154fc777d9"}, ] [[package]] name = "astropy-iers-data" -version = "0.2024.1.22.0.30.30" +version = "0.2024.3.11.18.33.3" requires_python = ">=3.8" summary = "IERS Earth Rotation and Leap Second tables for the astropy core package" groups = ["default"] files = [ - {file = "astropy-iers-data-0.2024.1.22.0.30.30.tar.gz", hash = "sha256:112e7367d5ed23b41ce86d2d0688d5b7ccd2587547544855010b616f10489ada"}, - {file = "astropy_iers_data-0.2024.1.22.0.30.30-py3-none-any.whl", hash = "sha256:9ffb20756667652503239cb2f7fd7a2871950991365d5e1e30f9643c1c151d10"}, + {file = "astropy-iers-data-0.2024.3.11.18.33.3.tar.gz", hash = "sha256:3c8ea9183c4a5e0ab6a85eef31197bbbc8cd20966e2249cf100cb7a604fc8a9c"}, + {file = "astropy_iers_data-0.2024.3.11.18.33.3-py3-none-any.whl", hash = "sha256:203352353c348da7c3e43f9b81995f92aeb824d44b117d31d9623054761aa154"}, ] [[package]] name = "astroquery" -version = "0.4.6" +version = "0.4.7" +requires_python = ">=3.7" summary = "Functions and classes to access online astronomical data resources" groups = ["default"] dependencies = [ - "astropy>=4.0", - "beautifulsoup4>=4.3.2", + "astropy>=4.2.1", + "beautifulsoup4>=4.8", "html5lib>=0.999", - "keyring>=4.0", - "numpy>=1.16", + "keyring>=15.0", + "numpy>=1.18", "pyvo>=1.1", - "requests>=2.4.3", + "requests>=2.19", ] files = [ - {file = "astroquery-0.4.6-py3-none-any.whl", hash = "sha256:e1bc4996af7500370837d31491bd4ee7f0c954c78d24cd54fb1cceb755469094"}, - {file = "astroquery-0.4.6.tar.gz", hash = "sha256:307ca554cb734a0ca9a22f86f5effe7e413af913ae65e1578972d847b1fe13ee"}, + {file = "astroquery-0.4.7-py3-none-any.whl", hash = "sha256:dfa8ca46ca0a983f66e9547c774601b331770242f9f6245df5e603f795d75540"}, + {file = "astroquery-0.4.7.tar.gz", hash = "sha256:047fbacb0a4faec4cdb62675e919c244c1c35e661044fcbb6c9a933331747ec9"}, ] [[package]] @@ -176,13 +185,13 @@ files = [ [[package]] name = "certifi" -version = "2023.11.17" +version = "2024.2.2" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." -groups = ["default"] +groups = ["default", "dev"] files = [ - {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, - {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -218,6 +227,16 @@ files = [ {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, ] @@ -226,7 +245,7 @@ name = "charset-normalizer" version = "3.3.2" requires_python = ">=3.7.0" summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -groups = ["default"] +groups = ["default", "dev"] files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -259,6 +278,21 @@ files = [ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] @@ -301,7 +335,7 @@ files = [ [[package]] name = "comm" -version = "0.2.1" +version = "0.2.2" requires_python = ">=3.8" summary = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." groups = ["default"] @@ -309,8 +343,8 @@ dependencies = [ "traitlets>=4", ] files = [ - {file = "comm-0.2.1-py3-none-any.whl", hash = "sha256:87928485c0dfc0e7976fd89fc1e187023cf587e7c353e4a9b417555b44adf021"}, - {file = "comm-0.2.1.tar.gz", hash = "sha256:0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a"}, + {file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"}, + {file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"}, ] [[package]] @@ -343,6 +377,16 @@ files = [ {file = "contourpy-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95"}, {file = "contourpy-1.2.0-cp311-cp311-win32.whl", hash = "sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6"}, {file = "contourpy-1.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0"}, + {file = "contourpy-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399"}, + {file = "contourpy-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0"}, + {file = "contourpy-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431"}, + {file = "contourpy-1.2.0-cp312-cp312-win32.whl", hash = "sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f"}, + {file = "contourpy-1.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9"}, {file = "contourpy-1.2.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108"}, {file = "contourpy-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776"}, {file = "contourpy-1.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956"}, @@ -351,7 +395,7 @@ files = [ [[package]] name = "cryptography" -version = "42.0.1" +version = "42.0.5" requires_python = ">=3.7" summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." groups = ["default"] @@ -360,38 +404,38 @@ dependencies = [ "cffi>=1.12; platform_python_implementation != \"PyPy\"", ] files = [ - {file = "cryptography-42.0.1-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:265bdc693570b895eb641410b8fc9e8ddbce723a669236162b9d9cfb70bd8d77"}, - {file = "cryptography-42.0.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:160fa08dfa6dca9cb8ad9bd84e080c0db6414ba5ad9a7470bc60fb154f60111e"}, - {file = "cryptography-42.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:727387886c9c8de927c360a396c5edcb9340d9e960cda145fca75bdafdabd24c"}, - {file = "cryptography-42.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d84673c012aa698555d4710dcfe5f8a0ad76ea9dde8ef803128cc669640a2e0"}, - {file = "cryptography-42.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e6edc3a568667daf7d349d7e820783426ee4f1c0feab86c29bd1d6fe2755e009"}, - {file = "cryptography-42.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:d50718dd574a49d3ef3f7ef7ece66ef281b527951eb2267ce570425459f6a404"}, - {file = "cryptography-42.0.1-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9544492e8024f29919eac2117edd8c950165e74eb551a22c53f6fdf6ba5f4cb8"}, - {file = "cryptography-42.0.1-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ab6b302d51fbb1dd339abc6f139a480de14d49d50f65fdc7dff782aa8631d035"}, - {file = "cryptography-42.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2fe16624637d6e3e765530bc55caa786ff2cbca67371d306e5d0a72e7c3d0407"}, - {file = "cryptography-42.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ed1b2130f5456a09a134cc505a17fc2830a1a48ed53efd37dcc904a23d7b82fa"}, - {file = "cryptography-42.0.1-cp37-abi3-win32.whl", hash = "sha256:e5edf189431b4d51f5c6fb4a95084a75cef6b4646c934eb6e32304fc720e1453"}, - {file = "cryptography-42.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:6bfd823b336fdcd8e06285ae8883d3d2624d3bdef312a0e2ef905f332f8e9302"}, - {file = "cryptography-42.0.1-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:351db02c1938c8e6b1fee8a78d6b15c5ccceca7a36b5ce48390479143da3b411"}, - {file = "cryptography-42.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430100abed6d3652208ae1dd410c8396213baee2e01a003a4449357db7dc9e14"}, - {file = "cryptography-42.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dff7a32880a51321f5de7869ac9dde6b1fca00fc1fef89d60e93f215468e824"}, - {file = "cryptography-42.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b512f33c6ab195852595187af5440d01bb5f8dd57cb7a91e1e009a17f1b7ebca"}, - {file = "cryptography-42.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:95d900d19a370ae36087cc728e6e7be9c964ffd8cbcb517fd1efb9c9284a6abc"}, - {file = "cryptography-42.0.1-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:6ac8924085ed8287545cba89dc472fc224c10cc634cdf2c3e2866fe868108e77"}, - {file = "cryptography-42.0.1-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cb2861a9364fa27d24832c718150fdbf9ce6781d7dc246a516435f57cfa31fe7"}, - {file = "cryptography-42.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25ec6e9e81de5d39f111a4114193dbd39167cc4bbd31c30471cebedc2a92c323"}, - {file = "cryptography-42.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9d61fcdf37647765086030d81872488e4cb3fafe1d2dda1d487875c3709c0a49"}, - {file = "cryptography-42.0.1-cp39-abi3-win32.whl", hash = "sha256:16b9260d04a0bfc8952b00335ff54f471309d3eb9d7e8dbfe9b0bd9e26e67881"}, - {file = "cryptography-42.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:7911586fc69d06cd0ab3f874a169433db1bc2f0e40988661408ac06c4527a986"}, - {file = "cryptography-42.0.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d3594947d2507d4ef7a180a7f49a6db41f75fb874c2fd0e94f36b89bfd678bf2"}, - {file = "cryptography-42.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8d7efb6bf427d2add2f40b6e1e8e476c17508fa8907234775214b153e69c2e11"}, - {file = "cryptography-42.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:126e0ba3cc754b200a2fb88f67d66de0d9b9e94070c5bc548318c8dab6383cb6"}, - {file = "cryptography-42.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:802d6f83233cf9696b59b09eb067e6b4d5ae40942feeb8e13b213c8fad47f1aa"}, - {file = "cryptography-42.0.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0b7cacc142260ada944de070ce810c3e2a438963ee3deb45aa26fd2cee94c9a4"}, - {file = "cryptography-42.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:32ea63ceeae870f1a62e87f9727359174089f7b4b01e4999750827bf10e15d60"}, - {file = "cryptography-42.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d3902c779a92151f134f68e555dd0b17c658e13429f270d8a847399b99235a3f"}, - {file = "cryptography-42.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:50aecd93676bcca78379604ed664c45da82bc1241ffb6f97f6b7392ed5bc6f04"}, - {file = "cryptography-42.0.1.tar.gz", hash = "sha256:fd33f53809bb363cf126bebe7a99d97735988d9b0131a2be59fbf83e1259a5b7"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, + {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, + {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, + {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, + {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, + {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, + {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, ] [[package]] @@ -407,21 +451,25 @@ files = [ [[package]] name = "debugpy" -version = "1.8.0" +version = "1.8.1" requires_python = ">=3.8" summary = "An implementation of the Debug Adapter Protocol for Python" groups = ["default"] files = [ - {file = "debugpy-1.8.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7fb95ca78f7ac43393cd0e0f2b6deda438ec7c5e47fa5d38553340897d2fbdfb"}, - {file = "debugpy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9ab7df0b9a42ed9c878afd3eaaff471fce3fa73df96022e1f5c9f8f8c87ada"}, - {file = "debugpy-1.8.0-cp310-cp310-win32.whl", hash = "sha256:a8b7a2fd27cd9f3553ac112f356ad4ca93338feadd8910277aff71ab24d8775f"}, - {file = "debugpy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d9de202f5d42e62f932507ee8b21e30d49aae7e46d5b1dd5c908db1d7068637"}, - {file = "debugpy-1.8.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ef54404365fae8d45cf450d0544ee40cefbcb9cb85ea7afe89a963c27028261e"}, - {file = "debugpy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60009b132c91951354f54363f8ebdf7457aeb150e84abba5ae251b8e9f29a8a6"}, - {file = "debugpy-1.8.0-cp311-cp311-win32.whl", hash = "sha256:8cd0197141eb9e8a4566794550cfdcdb8b3db0818bdf8c49a8e8f8053e56e38b"}, - {file = "debugpy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a64093656c4c64dc6a438e11d59369875d200bd5abb8f9b26c1f5f723622e153"}, - {file = "debugpy-1.8.0-py2.py3-none-any.whl", hash = "sha256:9c9b0ac1ce2a42888199df1a1906e45e6f3c9555497643a85e0bf2406e3ffbc4"}, - {file = "debugpy-1.8.0.zip", hash = "sha256:12af2c55b419521e33d5fb21bd022df0b5eb267c3e178f1d374a63a2a6bdccd0"}, + {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, + {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, + {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, + {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, + {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, + {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, + {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, + {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, + {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, + {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, + {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, + {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, + {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, + {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, ] [[package]] @@ -496,29 +544,37 @@ files = [ [[package]] name = "fonttools" -version = "4.47.2" +version = "4.49.0" requires_python = ">=3.8" summary = "Tools to manipulate font files" groups = ["default"] files = [ - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3b629108351d25512d4ea1a8393a2dba325b7b7d7308116b605ea3f8e1be88df"}, - {file = "fonttools-4.47.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c19044256c44fe299d9a73456aabee4b4d06c6b930287be93b533b4737d70aa1"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8be28c036b9f186e8c7eaf8a11b42373e7e4949f9e9f370202b9da4c4c3f56c"}, - {file = "fonttools-4.47.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f83a4daef6d2a202acb9bf572958f91cfde5b10c8ee7fb1d09a4c81e5d851fd8"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4a5a5318ba5365d992666ac4fe35365f93004109d18858a3e18ae46f67907670"}, - {file = "fonttools-4.47.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8f57ecd742545362a0f7186774b2d1c53423ed9ece67689c93a1055b236f638c"}, - {file = "fonttools-4.47.2-cp310-cp310-win32.whl", hash = "sha256:a1c154bb85dc9a4cf145250c88d112d88eb414bad81d4cb524d06258dea1bdc0"}, - {file = "fonttools-4.47.2-cp310-cp310-win_amd64.whl", hash = "sha256:3e2b95dce2ead58fb12524d0ca7d63a63459dd489e7e5838c3cd53557f8933e1"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:29495d6d109cdbabe73cfb6f419ce67080c3ef9ea1e08d5750240fd4b0c4763b"}, - {file = "fonttools-4.47.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0a1d313a415eaaba2b35d6cd33536560deeebd2ed758b9bfb89ab5d97dc5deac"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90f898cdd67f52f18049250a6474185ef6544c91f27a7bee70d87d77a8daf89c"}, - {file = "fonttools-4.47.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3480eeb52770ff75140fe7d9a2ec33fb67b07efea0ab5129c7e0c6a639c40c70"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0255dbc128fee75fb9be364806b940ed450dd6838672a150d501ee86523ac61e"}, - {file = "fonttools-4.47.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f791446ff297fd5f1e2247c188de53c1bfb9dd7f0549eba55b73a3c2087a2703"}, - {file = "fonttools-4.47.2-cp311-cp311-win32.whl", hash = "sha256:740947906590a878a4bde7dd748e85fefa4d470a268b964748403b3ab2aeed6c"}, - {file = "fonttools-4.47.2-cp311-cp311-win_amd64.whl", hash = "sha256:63fbed184979f09a65aa9c88b395ca539c94287ba3a364517698462e13e457c9"}, - {file = "fonttools-4.47.2-py3-none-any.whl", hash = "sha256:7eb7ad665258fba68fd22228a09f347469d95a97fb88198e133595947a20a184"}, - {file = "fonttools-4.47.2.tar.gz", hash = "sha256:7df26dd3650e98ca45f1e29883c96a0b9f5bb6af8d632a6a108bc744fa0bd9b3"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d970ecca0aac90d399e458f0b7a8a597e08f95de021f17785fb68e2dc0b99717"}, + {file = "fonttools-4.49.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac9a745b7609f489faa65e1dc842168c18530874a5f5b742ac3dd79e26bca8bc"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ba0e00620ca28d4ca11fc700806fd69144b463aa3275e1b36e56c7c09915559"}, + {file = "fonttools-4.49.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdee3ab220283057e7840d5fb768ad4c2ebe65bdba6f75d5d7bf47f4e0ed7d29"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ce7033cb61f2bb65d8849658d3786188afd80f53dad8366a7232654804529532"}, + {file = "fonttools-4.49.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:07bc5ea02bb7bc3aa40a1eb0481ce20e8d9b9642a9536cde0218290dd6085828"}, + {file = "fonttools-4.49.0-cp310-cp310-win32.whl", hash = "sha256:86eef6aab7fd7c6c8545f3ebd00fd1d6729ca1f63b0cb4d621bccb7d1d1c852b"}, + {file = "fonttools-4.49.0-cp310-cp310-win_amd64.whl", hash = "sha256:1fac1b7eebfce75ea663e860e7c5b4a8831b858c17acd68263bc156125201abf"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e"}, + {file = "fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36c8865bdb5cfeec88f5028e7e592370a0657b676c6f1d84a2108e0564f90e22"}, + {file = "fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8fb022d799b96df3eaa27263e9eea306bd3d437cc9aa981820850281a02b6c9a"}, + {file = "fonttools-4.49.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33c584c0ef7dc54f5dd4f84082eabd8d09d1871a3d8ca2986b0c0c98165f8e86"}, + {file = "fonttools-4.49.0-cp311-cp311-win32.whl", hash = "sha256:cbe61b158deb09cffdd8540dc4a948d6e8f4d5b4f3bf5cd7db09bd6a61fee64e"}, + {file = "fonttools-4.49.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d647a0e697e5daa98c87993726da8281c7233d9d4ffe410812a4896c7c57c075"}, + {file = "fonttools-4.49.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f3bbe672df03563d1f3a691ae531f2e31f84061724c319652039e5a70927167e"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bebd91041dda0d511b0d303180ed36e31f4f54b106b1259b69fade68413aa7ff"}, + {file = "fonttools-4.49.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4145f91531fd43c50f9eb893faa08399816bb0b13c425667c48475c9f3a2b9b5"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ea329dafb9670ffbdf4dbc3b0e5c264104abcd8441d56de77f06967f032943cb"}, + {file = "fonttools-4.49.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c076a9e548521ecc13d944b1d261ff3d7825048c338722a4bd126d22316087b7"}, + {file = "fonttools-4.49.0-cp312-cp312-win32.whl", hash = "sha256:b607ea1e96768d13be26d2b400d10d3ebd1456343eb5eaddd2f47d1c4bd00880"}, + {file = "fonttools-4.49.0-cp312-cp312-win_amd64.whl", hash = "sha256:a974c49a981e187381b9cc2c07c6b902d0079b88ff01aed34695ec5360767034"}, + {file = "fonttools-4.49.0-py3-none-any.whl", hash = "sha256:af281525e5dd7fa0b39fb1667b8d5ca0e2a9079967e14c4bfe90fd1cd13e0f18"}, + {file = "fonttools-4.49.0.tar.gz", hash = "sha256:ebf46e7f01b7af7861310417d7c49591a85d99146fc23a5ba82fdb28af156321"}, ] [[package]] @@ -547,6 +603,15 @@ files = [ {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, + {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, + {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, ] @@ -570,7 +635,7 @@ name = "idna" version = "3.6" requires_python = ">=3.5" summary = "Internationalized Domain Names in Applications (IDNA)" -groups = ["default"] +groups = ["default", "dev"] files = [ {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, @@ -589,7 +654,7 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.0.1" +version = "7.0.2" requires_python = ">=3.8" summary = "Read metadata from Python packages" groups = ["default", "dev"] @@ -597,13 +662,13 @@ dependencies = [ "zipp>=0.5", ] files = [ - {file = "importlib_metadata-7.0.1-py3-none-any.whl", hash = "sha256:4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e"}, - {file = "importlib_metadata-7.0.1.tar.gz", hash = "sha256:f238736bb06590ae52ac1fab06a3a9ef1d8dce2b7a35b5ab329371d6c8f5d2cc"}, + {file = "importlib_metadata-7.0.2-py3-none-any.whl", hash = "sha256:f4bc4c0c070c490abf4ce96d715f68e95923320370efb66143df00199bb6c100"}, + {file = "importlib_metadata-7.0.2.tar.gz", hash = "sha256:198f568f3230878cb1b44fbd7975f87906c22336dba2e4a7f05278c281fbd792"}, ] [[package]] name = "ipykernel" -version = "6.29.0" +version = "6.29.3" requires_python = ">=3.8" summary = "IPython Kernel for Jupyter" groups = ["default"] @@ -623,8 +688,8 @@ dependencies = [ "traitlets>=5.4.0", ] files = [ - {file = "ipykernel-6.29.0-py3-none-any.whl", hash = "sha256:076663ca68492576f051e4af7720d33f34383e655f2be0d544c8b1c9de915b2f"}, - {file = "ipykernel-6.29.0.tar.gz", hash = "sha256:b5dd3013cab7b330df712891c96cd1ab868c27a7159e606f762015e9bf8ceb3f"}, + {file = "ipykernel-6.29.3-py3-none-any.whl", hash = "sha256:5aa086a4175b0229d4eca211e181fb473ea78ffd9869af36ba7694c947302a21"}, + {file = "ipykernel-6.29.3.tar.gz", hash = "sha256:e14c250d1f9ea3989490225cc1a542781b095a18a19447fcf2b5eaf7d0ac5bd2"}, ] [[package]] @@ -648,7 +713,7 @@ files = [ [[package]] name = "ipython" -version = "8.20.0" +version = "8.22.2" requires_python = ">=3.10" summary = "IPython: Productive Interactive Computing" groups = ["default"] @@ -658,15 +723,15 @@ dependencies = [ "exceptiongroup; python_version < \"3.11\"", "jedi>=0.16", "matplotlib-inline", - "pexpect>4.3; sys_platform != \"win32\"", + "pexpect>4.3; sys_platform != \"win32\" and sys_platform != \"emscripten\"", "prompt-toolkit<3.1.0,>=3.0.41", "pygments>=2.4.0", "stack-data", - "traitlets>=5", + "traitlets>=5.13.0", ] files = [ - {file = "ipython-8.20.0-py3-none-any.whl", hash = "sha256:bc9716aad6f29f36c449e30821c9dd0c1c1a7b59ddcc26931685b87b4c569619"}, - {file = "ipython-8.20.0.tar.gz", hash = "sha256:2f21bd3fc1d51550c89ee3944ae04bbc7bc79e129ea0937da6e6c68bfdbf117a"}, + {file = "ipython-8.22.2-py3-none-any.whl", hash = "sha256:3c86f284c8f3d8f2b6c662f885c4889a91df7cd52056fd02b7d8d6195d7f56e9"}, + {file = "ipython-8.22.2.tar.gz", hash = "sha256:2dcaad9049f9056f1fef63514f176c7d41f930daa78d05b82a176202818f2c14"}, ] [[package]] @@ -681,25 +746,25 @@ files = [ [[package]] name = "ipywidgets" -version = "8.1.1" +version = "8.1.2" requires_python = ">=3.7" summary = "Jupyter interactive widgets" groups = ["default"] dependencies = [ "comm>=0.1.3", "ipython>=6.1.0", - "jupyterlab-widgets~=3.0.9", + "jupyterlab-widgets~=3.0.10", "traitlets>=4.3.1", - "widgetsnbextension~=4.0.9", + "widgetsnbextension~=4.0.10", ] files = [ - {file = "ipywidgets-8.1.1-py3-none-any.whl", hash = "sha256:2b88d728656aea3bbfd05d32c747cfd0078f9d7e159cf982433b58ad717eed7f"}, - {file = "ipywidgets-8.1.1.tar.gz", hash = "sha256:40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8"}, + {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, + {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, ] [[package]] name = "jaraco-classes" -version = "3.3.0" +version = "3.3.1" requires_python = ">=3.8" summary = "Utility functions for Python class constructs" groups = ["default"] @@ -707,8 +772,8 @@ dependencies = [ "more-itertools", ] files = [ - {file = "jaraco.classes-3.3.0-py3-none-any.whl", hash = "sha256:10afa92b6743f25c0cf5f37c6bb6e18e2c5bb84a16527ccfc0040ea377e7aaeb"}, - {file = "jaraco.classes-3.3.0.tar.gz", hash = "sha256:c063dd08e89217cee02c8d5e5ec560f2c8ce6cdc2fcdc2e68f7b2e5547ed3621"}, + {file = "jaraco.classes-3.3.1-py3-none-any.whl", hash = "sha256:86b534de565381f6b3c1c830d13f931d7be1a75f0081c57dff615578676e2206"}, + {file = "jaraco.classes-3.3.1.tar.gz", hash = "sha256:cb28a5ebda8bc47d8c8015307d93163464f9f2b91ab4006e09ff0ce07e8bfb30"}, ] [[package]] @@ -849,7 +914,7 @@ files = [ [[package]] name = "jupyter-client" -version = "8.6.0" +version = "8.6.1" requires_python = ">=3.8" summary = "Jupyter protocol implementation and client libraries" groups = ["default"] @@ -861,13 +926,13 @@ dependencies = [ "traitlets>=5.3", ] files = [ - {file = "jupyter_client-8.6.0-py3-none-any.whl", hash = "sha256:909c474dbe62582ae62b758bca86d6518c85234bdee2d908c778db6d72f39d99"}, - {file = "jupyter_client-8.6.0.tar.gz", hash = "sha256:0642244bb83b4764ae60d07e010e15f0e2d275ec4e918a8f7b80fbbef3ca60c7"}, + {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, + {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, ] [[package]] name = "jupyter-core" -version = "5.7.1" +version = "5.7.2" requires_python = ">=3.8" summary = "Jupyter core package. A base package on which Jupyter projects rely." groups = ["default"] @@ -877,24 +942,24 @@ dependencies = [ "traitlets>=5.3", ] files = [ - {file = "jupyter_core-5.7.1-py3-none-any.whl", hash = "sha256:c65c82126453a723a2804aa52409930434598fd9d35091d63dfb919d2b765bb7"}, - {file = "jupyter_core-5.7.1.tar.gz", hash = "sha256:de61a9d7fc71240f688b2fb5ab659fbb56979458dc66a71decd098e03c79e218"}, + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, ] [[package]] name = "jupyterlab-widgets" -version = "3.0.9" +version = "3.0.10" requires_python = ">=3.7" summary = "Jupyter interactive widgets for JupyterLab" groups = ["default"] files = [ - {file = "jupyterlab_widgets-3.0.9-py3-none-any.whl", hash = "sha256:3cf5bdf5b897bf3bccf1c11873aa4afd776d7430200f765e0686bd352487b58d"}, - {file = "jupyterlab_widgets-3.0.9.tar.gz", hash = "sha256:6005a4e974c7beee84060fdfba341a3218495046de8ae3ec64888e5fe19fdb4c"}, + {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, + {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, ] [[package]] name = "keyring" -version = "24.3.0" +version = "24.3.1" requires_python = ">=3.8" summary = "Store and access your passwords safely." groups = ["default"] @@ -906,8 +971,8 @@ dependencies = [ "pywin32-ctypes>=0.2.0; sys_platform == \"win32\"", ] files = [ - {file = "keyring-24.3.0-py3-none-any.whl", hash = "sha256:4446d35d636e6a10b8bce7caa66913dd9eca5fd222ca03a3d42c38608ac30836"}, - {file = "keyring-24.3.0.tar.gz", hash = "sha256:e730ecffd309658a08ee82535a3b5ec4b4c8669a9be11efb66249d8e0aeb9a25"}, + {file = "keyring-24.3.1-py3-none-any.whl", hash = "sha256:df38a4d7419a6a60fea5cef1e45a948a3e8430dd12ad88b0f423c5c143906218"}, + {file = "keyring-24.3.1.tar.gz", hash = "sha256:c3327b6ffafc0e8befbdb597cacdb4928ffe5c1212f7645f186e6d9957a898db"}, ] [[package]] @@ -947,6 +1012,21 @@ files = [ {file = "kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f"}, {file = "kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac"}, {file = "kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192"}, + {file = "kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228"}, + {file = "kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3"}, + {file = "kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20"}, + {file = "kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9"}, {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920"}, {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390"}, {file = "kiwisolver-1.4.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d"}, @@ -967,21 +1047,18 @@ files = [ [[package]] name = "latexcodec" -version = "2.0.1" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "3.0.0" +requires_python = ">=3.7" summary = "A lexer and codec to work with LaTeX code in Python." groups = ["default"] -dependencies = [ - "six>=1.4.1", -] files = [ - {file = "latexcodec-2.0.1-py2.py3-none-any.whl", hash = "sha256:c277a193638dc7683c4c30f6684e3db728a06efb0dc9cf346db8bd0aa6c5d271"}, - {file = "latexcodec-2.0.1.tar.gz", hash = "sha256:2aa2551c373261cefe2ad3a8953a6d6533e68238d180eb4bb91d7964adb3fe9a"}, + {file = "latexcodec-3.0.0-py3-none-any.whl", hash = "sha256:6f3477ad5e61a0a99bd31a6a370c34e88733a6bad9c921a3ffcfacada12f41a7"}, + {file = "latexcodec-3.0.0.tar.gz", hash = "sha256:917dc5fe242762cc19d963e6548b42d63a118028cdd3361d62397e3b638b6bc5"}, ] [[package]] name = "linkify-it-py" -version = "2.0.2" +version = "2.0.3" requires_python = ">=3.7" summary = "Links recognition library with FULL unicode support." groups = ["default"] @@ -989,30 +1066,34 @@ dependencies = [ "uc-micro-py", ] files = [ - {file = "linkify-it-py-2.0.2.tar.gz", hash = "sha256:19f3060727842c254c808e99d465c80c49d2c7306788140987a1a7a29b0d6ad2"}, - {file = "linkify_it_py-2.0.2-py3-none-any.whl", hash = "sha256:a3a24428f6c96f27370d7fe61d2ac0be09017be5190d68d8658233171f1b6541"}, + {file = "linkify-it-py-2.0.3.tar.gz", hash = "sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048"}, + {file = "linkify_it_py-2.0.3-py3-none-any.whl", hash = "sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79"}, ] [[package]] name = "llvmlite" -version = "0.41.1" -requires_python = ">=3.8" +version = "0.42.0" +requires_python = ">=3.9" summary = "lightweight wrapper around basic LLVM functionality" groups = ["default"] marker = "python_version >= \"3.9\"" files = [ - {file = "llvmlite-0.41.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c1e1029d47ee66d3a0c4d6088641882f75b93db82bd0e6178f7bd744ebce42b9"}, - {file = "llvmlite-0.41.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:150d0bc275a8ac664a705135e639178883293cf08c1a38de3bbaa2f693a0a867"}, - {file = "llvmlite-0.41.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1eee5cf17ec2b4198b509272cf300ee6577229d237c98cc6e63861b08463ddc6"}, - {file = "llvmlite-0.41.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dd0338da625346538f1173a17cabf21d1e315cf387ca21b294ff209d176e244"}, - {file = "llvmlite-0.41.1-cp310-cp310-win32.whl", hash = "sha256:fa1469901a2e100c17eb8fe2678e34bd4255a3576d1a543421356e9c14d6e2ae"}, - {file = "llvmlite-0.41.1-cp310-cp310-win_amd64.whl", hash = "sha256:2b76acee82ea0e9304be6be9d4b3840208d050ea0dcad75b1635fa06e949a0ae"}, - {file = "llvmlite-0.41.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:210e458723436b2469d61b54b453474e09e12a94453c97ea3fbb0742ba5a83d8"}, - {file = "llvmlite-0.41.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:855f280e781d49e0640aef4c4af586831ade8f1a6c4df483fb901cbe1a48d127"}, - {file = "llvmlite-0.41.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b67340c62c93a11fae482910dc29163a50dff3dfa88bc874872d28ee604a83be"}, - {file = "llvmlite-0.41.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2181bb63ef3c607e6403813421b46982c3ac6bfc1f11fa16a13eaafb46f578e6"}, - {file = "llvmlite-0.41.1-cp311-cp311-win_amd64.whl", hash = "sha256:9564c19b31a0434f01d2025b06b44c7ed422f51e719ab5d24ff03b7560066c9a"}, - {file = "llvmlite-0.41.1.tar.gz", hash = "sha256:f19f767a018e6ec89608e1f6b13348fa2fcde657151137cb64e56d48598a92db"}, + {file = "llvmlite-0.42.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3366938e1bf63d26c34fbfb4c8e8d2ded57d11e0567d5bb243d89aab1eb56098"}, + {file = "llvmlite-0.42.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c35da49666a21185d21b551fc3caf46a935d54d66969d32d72af109b5e7d2b6f"}, + {file = "llvmlite-0.42.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70f44ccc3c6220bd23e0ba698a63ec2a7d3205da0d848804807f37fc243e3f77"}, + {file = "llvmlite-0.42.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763f8d8717a9073b9e0246998de89929071d15b47f254c10eef2310b9aac033d"}, + {file = "llvmlite-0.42.0-cp310-cp310-win_amd64.whl", hash = "sha256:8d90edf400b4ceb3a0e776b6c6e4656d05c7187c439587e06f86afceb66d2be5"}, + {file = "llvmlite-0.42.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ae511caed28beaf1252dbaf5f40e663f533b79ceb408c874c01754cafabb9cbf"}, + {file = "llvmlite-0.42.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81e674c2fe85576e6c4474e8c7e7aba7901ac0196e864fe7985492b737dbab65"}, + {file = "llvmlite-0.42.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb3975787f13eb97629052edb5017f6c170eebc1c14a0433e8089e5db43bcce6"}, + {file = "llvmlite-0.42.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5bece0cdf77f22379f19b1959ccd7aee518afa4afbd3656c6365865f84903f9"}, + {file = "llvmlite-0.42.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e0c4c11c8c2aa9b0701f91b799cb9134a6a6de51444eff5a9087fc7c1384275"}, + {file = "llvmlite-0.42.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:08fa9ab02b0d0179c688a4216b8939138266519aaa0aa94f1195a8542faedb56"}, + {file = "llvmlite-0.42.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b2fce7d355068494d1e42202c7aff25d50c462584233013eb4470c33b995e3ee"}, + {file = "llvmlite-0.42.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebe66a86dc44634b59a3bc860c7b20d26d9aaffcd30364ebe8ba79161a9121f4"}, + {file = "llvmlite-0.42.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d47494552559e00d81bfb836cf1c4d5a5062e54102cc5767d5aa1e77ccd2505c"}, + {file = "llvmlite-0.42.0-cp312-cp312-win_amd64.whl", hash = "sha256:05cb7e9b6ce69165ce4d1b994fbdedca0c62492e537b0cc86141b6e2c78d5888"}, + {file = "llvmlite-0.42.0.tar.gz", hash = "sha256:f92b09243c0cc3f457da8b983f67bd8e1295d0f5b3746c7a1861d7a99403854a"}, ] [[package]] @@ -1031,37 +1112,47 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.4" +version = "2.1.5" requires_python = ">=3.7" summary = "Safely add untrusted strings to HTML/XML markup." groups = ["default"] files = [ - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win32.whl", hash = "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win32.whl", hash = "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56"}, - {file = "MarkupSafe-2.1.4.tar.gz", hash = "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "matplotlib" -version = "3.8.2" +version = "3.8.3" requires_python = ">=3.9" summary = "Python plotting package" groups = ["default"] @@ -1077,22 +1168,28 @@ dependencies = [ "python-dateutil>=2.7", ] files = [ - {file = "matplotlib-3.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7"}, - {file = "matplotlib-3.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367"}, - {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18"}, - {file = "matplotlib-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31"}, - {file = "matplotlib-3.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a"}, - {file = "matplotlib-3.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a"}, - {file = "matplotlib-3.8.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63"}, - {file = "matplotlib-3.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8"}, - {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6"}, - {file = "matplotlib-3.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788"}, - {file = "matplotlib-3.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0"}, - {file = "matplotlib-3.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20"}, - {file = "matplotlib-3.8.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa"}, - {file = "matplotlib-3.8.2.tar.gz", hash = "sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1"}, + {file = "matplotlib-3.8.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cf60138ccc8004f117ab2a2bad513cc4d122e55864b4fe7adf4db20ca68a078f"}, + {file = "matplotlib-3.8.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f557156f7116be3340cdeef7f128fa99b0d5d287d5f41a16e169819dcf22357"}, + {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f386cf162b059809ecfac3bcc491a9ea17da69fa35c8ded8ad154cd4b933d5ec"}, + {file = "matplotlib-3.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3c5f96f57b0369c288bf6f9b5274ba45787f7e0589a34d24bdbaf6d3344632f"}, + {file = "matplotlib-3.8.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:83e0f72e2c116ca7e571c57aa29b0fe697d4c6425c4e87c6e994159e0c008635"}, + {file = "matplotlib-3.8.3-cp310-cp310-win_amd64.whl", hash = "sha256:1c5c8290074ba31a41db1dc332dc2b62def469ff33766cbe325d32a3ee291aea"}, + {file = "matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900"}, + {file = "matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e"}, + {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04b36ad07eac9740fc76c2aa16edf94e50b297d6eb4c081e3add863de4bb19a7"}, + {file = "matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65"}, + {file = "matplotlib-3.8.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf5932eee0d428192c40b7eac1399d608f5d995f975cdb9d1e6b48539a5ad8d0"}, + {file = "matplotlib-3.8.3-cp311-cp311-win_amd64.whl", hash = "sha256:40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407"}, + {file = "matplotlib-3.8.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:09074f8057917d17ab52c242fdf4916f30e99959c1908958b1fc6032e2d0f6d4"}, + {file = "matplotlib-3.8.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5745f6d0fb5acfabbb2790318db03809a253096e98c91b9a31969df28ee604aa"}, + {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b97653d869a71721b639714b42d87cda4cfee0ee74b47c569e4874c7590c55c5"}, + {file = "matplotlib-3.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:242489efdb75b690c9c2e70bb5c6550727058c8a614e4c7716f363c27e10bba1"}, + {file = "matplotlib-3.8.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:83c0653c64b73926730bd9ea14aa0f50f202ba187c307a881673bad4985967b7"}, + {file = "matplotlib-3.8.3-cp312-cp312-win_amd64.whl", hash = "sha256:ef6c1025a570354297d6c15f7d0f296d95f88bd3850066b7f1e7b4f2f4c13a39"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fa93695d5c08544f4a0dfd0965f378e7afc410d8672816aff1e81be1f45dbf2e"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9764df0e8778f06414b9d281a75235c1e85071f64bb5d71564b97c1306a2afc"}, + {file = "matplotlib-3.8.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5e431a09e6fab4012b01fc155db0ce6dccacdbabe8198197f523a4ef4805eb26"}, + {file = "matplotlib-3.8.3.tar.gz", hash = "sha256:7b416239e9ae38be54b028abbf9048aff5054a9aba5416bef0bd17f9162ce161"}, ] [[package]] @@ -1155,43 +1252,6 @@ files = [ {file = "mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f"}, ] -[[package]] -name = "mypy" -version = "1.8.0" -requires_python = ">=3.8" -summary = "Optional static typing for Python" -groups = ["dev"] -dependencies = [ - "mypy-extensions>=1.0.0", - "tomli>=1.1.0; python_version < \"3.11\"", - "typing-extensions>=4.1.0", -] -files = [ - {file = "mypy-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:485a8942f671120f76afffff70f259e1cd0f0cfe08f81c05d8816d958d4577d3"}, - {file = "mypy-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:df9824ac11deaf007443e7ed2a4a26bebff98d2bc43c6da21b2b64185da011c4"}, - {file = "mypy-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2afecd6354bbfb6e0160f4e4ad9ba6e4e003b767dd80d85516e71f2e955ab50d"}, - {file = "mypy-1.8.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8963b83d53ee733a6e4196954502b33567ad07dfd74851f32be18eb932fb1cb9"}, - {file = "mypy-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:e46f44b54ebddbeedbd3d5b289a893219065ef805d95094d16a0af6630f5d410"}, - {file = "mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae"}, - {file = "mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3"}, - {file = "mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817"}, - {file = "mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d"}, - {file = "mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835"}, - {file = "mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d"}, - {file = "mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07"}, -] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -requires_python = ">=3.5" -summary = "Type system extensions for programs checked with the mypy type checker." -groups = ["dev"] -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - [[package]] name = "myst-nb" version = "1.0.0" @@ -1253,7 +1313,7 @@ files = [ [[package]] name = "nbclient" -version = "0.9.0" +version = "0.9.1" requires_python = ">=3.8.0" summary = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." groups = ["default"] @@ -1264,13 +1324,13 @@ dependencies = [ "traitlets>=5.4", ] files = [ - {file = "nbclient-0.9.0-py3-none-any.whl", hash = "sha256:a3a1ddfb34d4a9d17fc744d655962714a866639acd30130e9be84191cd97cd15"}, - {file = "nbclient-0.9.0.tar.gz", hash = "sha256:4b28c207877cf33ef3a9838cdc7a54c5ceff981194a82eac59d558f05487295e"}, + {file = "nbclient-0.9.1-py3-none-any.whl", hash = "sha256:2c50a866e8dd6c5f655de47d2e252c82d2ebe978574e760ac229f5950593a434"}, + {file = "nbclient-0.9.1.tar.gz", hash = "sha256:4f7b78c6c2a380e228f8a3bb469b847cb24e5b8ad6fda410691b5621e05ce5a2"}, ] [[package]] name = "nbformat" -version = "5.9.2" +version = "5.10.2" requires_python = ">=3.8" summary = "The Jupyter Notebook format" groups = ["default"] @@ -1281,8 +1341,8 @@ dependencies = [ "traitlets>=5.1", ] files = [ - {file = "nbformat-5.9.2-py3-none-any.whl", hash = "sha256:1c5172d786a41b82bcfd0c23f9e6b6f072e8fb49c39250219e4acfff1efe89e9"}, - {file = "nbformat-5.9.2.tar.gz", hash = "sha256:5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192"}, + {file = "nbformat-5.10.2-py3-none-any.whl", hash = "sha256:7381189a0d537586b3f18bae5dbad347d7dd0a7cf0276b09cdcd5c24d38edd99"}, + {file = "nbformat-5.10.2.tar.gz", hash = "sha256:c535b20a0d4310167bf4d12ad31eccfb0dc61e6392d6f8c570ab5b45a06a49a3"}, ] [[package]] @@ -1298,98 +1358,119 @@ files = [ [[package]] name = "numba" -version = "0.58.1" -requires_python = ">=3.8" +version = "0.59.0" +requires_python = ">=3.9" summary = "compiling Python code using LLVM" groups = ["default"] marker = "python_version >= \"3.9\"" dependencies = [ - "llvmlite<0.42,>=0.41.0dev0", + "llvmlite<0.43,>=0.42.0dev0", "numpy<1.27,>=1.22", ] files = [ - {file = "numba-0.58.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:07f2fa7e7144aa6f275f27260e73ce0d808d3c62b30cff8906ad1dec12d87bbe"}, - {file = "numba-0.58.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7bf1ddd4f7b9c2306de0384bf3854cac3edd7b4d8dffae2ec1b925e4c436233f"}, - {file = "numba-0.58.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bc2d904d0319d7a5857bd65062340bed627f5bfe9ae4a495aef342f072880d50"}, - {file = "numba-0.58.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4e79b6cc0d2bf064a955934a2e02bf676bc7995ab2db929dbbc62e4c16551be6"}, - {file = "numba-0.58.1-cp310-cp310-win_amd64.whl", hash = "sha256:81fe5b51532478149b5081311b0fd4206959174e660c372b94ed5364cfb37c82"}, - {file = "numba-0.58.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bcecd3fb9df36554b342140a4d77d938a549be635d64caf8bd9ef6c47a47f8aa"}, - {file = "numba-0.58.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1eaa744f518bbd60e1f7ccddfb8002b3d06bd865b94a5d7eac25028efe0e0ff"}, - {file = "numba-0.58.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bf68df9c307fb0aa81cacd33faccd6e419496fdc621e83f1efce35cdc5e79cac"}, - {file = "numba-0.58.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:55a01e1881120e86d54efdff1be08381886fe9f04fc3006af309c602a72bc44d"}, - {file = "numba-0.58.1-cp311-cp311-win_amd64.whl", hash = "sha256:811305d5dc40ae43c3ace5b192c670c358a89a4d2ae4f86d1665003798ea7a1a"}, - {file = "numba-0.58.1.tar.gz", hash = "sha256:487ded0633efccd9ca3a46364b40006dbdaca0f95e99b8b83e778d1195ebcbaa"}, + {file = "numba-0.59.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d061d800473fb8fef76a455221f4ad649a53f5e0f96e3f6c8b8553ee6fa98fa"}, + {file = "numba-0.59.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c086a434e7d3891ce5dfd3d1e7ee8102ac1e733962098578b507864120559ceb"}, + {file = "numba-0.59.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9e20736bf62e61f8353fb71b0d3a1efba636c7a303d511600fc57648b55823ed"}, + {file = "numba-0.59.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e86e6786aec31d2002122199486e10bbc0dc40f78d76364cded375912b13614c"}, + {file = "numba-0.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:0307ee91b24500bb7e64d8a109848baf3a3905df48ce142b8ac60aaa406a0400"}, + {file = "numba-0.59.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d540f69a8245fb714419c2209e9af6104e568eb97623adc8943642e61f5d6d8e"}, + {file = "numba-0.59.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1192d6b2906bf3ff72b1d97458724d98860ab86a91abdd4cfd9328432b661e31"}, + {file = "numba-0.59.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90efb436d3413809fcd15298c6d395cb7d98184350472588356ccf19db9e37c8"}, + {file = "numba-0.59.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cd3dac45e25d927dcb65d44fb3a973994f5add2b15add13337844afe669dd1ba"}, + {file = "numba-0.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:753dc601a159861808cc3207bad5c17724d3b69552fd22768fddbf302a817a4c"}, + {file = "numba-0.59.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ce62bc0e6dd5264e7ff7f34f41786889fa81a6b860662f824aa7532537a7bee0"}, + {file = "numba-0.59.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8cbef55b73741b5eea2dbaf1b0590b14977ca95a13a07d200b794f8f6833a01c"}, + {file = "numba-0.59.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:70d26ba589f764be45ea8c272caa467dbe882b9676f6749fe6f42678091f5f21"}, + {file = "numba-0.59.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e125f7d69968118c28ec0eed9fbedd75440e64214b8d2eac033c22c04db48492"}, + {file = "numba-0.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:4981659220b61a03c1e557654027d271f56f3087448967a55c79a0e5f926de62"}, + {file = "numba-0.59.0.tar.gz", hash = "sha256:12b9b064a3e4ad00e2371fc5212ef0396c80f41caec9b5ec391c8b04b6eaf2a8"}, ] [[package]] name = "numpy" -version = "1.26.3" +version = "1.26.4" requires_python = ">=3.9" summary = "Fundamental package for array computing in Python" groups = ["default"] files = [ - {file = "numpy-1.26.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:806dd64230dbbfaca8a27faa64e2f414bf1c6622ab78cc4264f7f5f028fee3bf"}, - {file = "numpy-1.26.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02f98011ba4ab17f46f80f7f8f1c291ee7d855fcef0a5a98db80767a468c85cd"}, - {file = "numpy-1.26.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d45b3ec2faed4baca41c76617fcdcfa4f684ff7a151ce6fc78ad3b6e85af0a6"}, - {file = "numpy-1.26.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdd2b45bf079d9ad90377048e2747a0c82351989a2165821f0c96831b4a2a54b"}, - {file = "numpy-1.26.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:211ddd1e94817ed2d175b60b6374120244a4dd2287f4ece45d49228b4d529178"}, - {file = "numpy-1.26.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b1240f767f69d7c4c8a29adde2310b871153df9b26b5cb2b54a561ac85146485"}, - {file = "numpy-1.26.3-cp310-cp310-win32.whl", hash = "sha256:21a9484e75ad018974a2fdaa216524d64ed4212e418e0a551a2d83403b0531d3"}, - {file = "numpy-1.26.3-cp310-cp310-win_amd64.whl", hash = "sha256:9e1591f6ae98bcfac2a4bbf9221c0b92ab49762228f38287f6eeb5f3f55905ce"}, - {file = "numpy-1.26.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b831295e5472954104ecb46cd98c08b98b49c69fdb7040483aff799a755a7374"}, - {file = "numpy-1.26.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9e87562b91f68dd8b1c39149d0323b42e0082db7ddb8e934ab4c292094d575d6"}, - {file = "numpy-1.26.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c66d6fec467e8c0f975818c1796d25c53521124b7cfb760114be0abad53a0a2"}, - {file = "numpy-1.26.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f25e2811a9c932e43943a2615e65fc487a0b6b49218899e62e426e7f0a57eeda"}, - {file = "numpy-1.26.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:af36e0aa45e25c9f57bf684b1175e59ea05d9a7d3e8e87b7ae1a1da246f2767e"}, - {file = "numpy-1.26.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:51c7f1b344f302067b02e0f5b5d2daa9ed4a721cf49f070280ac202738ea7f00"}, - {file = "numpy-1.26.3-cp311-cp311-win32.whl", hash = "sha256:7ca4f24341df071877849eb2034948459ce3a07915c2734f1abb4018d9c49d7b"}, - {file = "numpy-1.26.3-cp311-cp311-win_amd64.whl", hash = "sha256:39763aee6dfdd4878032361b30b2b12593fb445ddb66bbac802e2113eb8a6ac4"}, - {file = "numpy-1.26.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3c67423b3703f8fbd90f5adaa37f85b5794d3366948efe9a5190a5f3a83fc34e"}, - {file = "numpy-1.26.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46f47ee566d98849323f01b349d58f2557f02167ee301e5e28809a8c0e27a2d0"}, - {file = "numpy-1.26.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a8474703bffc65ca15853d5fd4d06b18138ae90c17c8d12169968e998e448bb5"}, - {file = "numpy-1.26.3.tar.gz", hash = "sha256:697df43e2b6310ecc9d95f05d5ef20eacc09c7c4ecc9da3f235d39e71b7da1e4"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, + {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, + {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, + {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, + {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, + {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, + {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, + {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, + {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, + {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, + {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, + {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, + {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, + {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, + {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, + {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, + {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, + {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, ] [[package]] name = "packaging" -version = "23.2" +version = "24.0" requires_python = ">=3.7" summary = "Core utilities for Python packages" groups = ["default"] files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] name = "pandas" -version = "2.2.0" +version = "2.2.1" requires_python = ">=3.9" summary = "Powerful data structures for data analysis, time series, and statistics" groups = ["default"] dependencies = [ "numpy<2,>=1.22.4; python_version < \"3.11\"", "numpy<2,>=1.23.2; python_version == \"3.11\"", + "numpy<2,>=1.26.0; python_version >= \"3.12\"", "python-dateutil>=2.8.2", "pytz>=2020.1", "tzdata>=2022.7", ] files = [ - {file = "pandas-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8108ee1712bb4fa2c16981fba7e68b3f6ea330277f5ca34fa8d557e986a11670"}, - {file = "pandas-2.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:736da9ad4033aeab51d067fc3bd69a0ba36f5a60f66a527b3d72e2030e63280a"}, - {file = "pandas-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38e0b4fc3ddceb56ec8a287313bc22abe17ab0eb184069f08fc6a9352a769b18"}, - {file = "pandas-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20404d2adefe92aed3b38da41d0847a143a09be982a31b85bc7dd565bdba0f4e"}, - {file = "pandas-2.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7ea3ee3f125032bfcade3a4cf85131ed064b4f8dd23e5ce6fa16473e48ebcaf5"}, - {file = "pandas-2.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9670b3ac00a387620489dfc1bca66db47a787f4e55911f1293063a78b108df1"}, - {file = "pandas-2.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:5a946f210383c7e6d16312d30b238fd508d80d927014f3b33fb5b15c2f895430"}, - {file = "pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5"}, - {file = "pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b"}, - {file = "pandas-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2707514a7bec41a4ab81f2ccce8b382961a29fbe9492eab1305bb075b2b1ff4f"}, - {file = "pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88"}, - {file = "pandas-2.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:cfd6c2491dc821b10c716ad6776e7ab311f7df5d16038d0b7458bc0b67dc10f3"}, - {file = "pandas-2.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a146b9dcacc3123aa2b399df1a284de5f46287a4ab4fbfc237eac98a92ebcb71"}, - {file = "pandas-2.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9"}, - {file = "pandas-2.2.0.tar.gz", hash = "sha256:30b83f7c3eb217fb4d1b494a57a2fda5444f17834f5df2de6b2ffff68dc3c8e2"}, + {file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88"}, + {file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944"}, + {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359"}, + {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51"}, + {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06"}, + {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9"}, + {file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0"}, + {file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b"}, + {file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a"}, + {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02"}, + {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403"}, + {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd"}, + {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7"}, + {file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e"}, + {file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c"}, + {file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee"}, + {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2"}, + {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0"}, + {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc"}, + {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89"}, + {file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb"}, + {file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572"}, ] [[package]] @@ -1408,7 +1489,7 @@ name = "pexpect" version = "4.9.0" summary = "Pexpect allows easy control of interactive console applications." groups = ["default"] -marker = "sys_platform != \"win32\"" +marker = "sys_platform != \"win32\" and sys_platform != \"emscripten\"" dependencies = [ "ptyprocess>=0.5", ] @@ -1446,6 +1527,17 @@ files = [ {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, + {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, + {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, + {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, + {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, + {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, + {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, @@ -1478,19 +1570,19 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" +version = "4.2.0" requires_python = ">=3.8" summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." groups = ["default"] files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [[package]] name = "plotly" -version = "5.18.0" -requires_python = ">=3.6" +version = "5.19.0" +requires_python = ">=3.8" summary = "An open-source, interactive data visualization library for Python" groups = ["default"] dependencies = [ @@ -1498,8 +1590,8 @@ dependencies = [ "tenacity>=6.2.0", ] files = [ - {file = "plotly-5.18.0-py3-none-any.whl", hash = "sha256:23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de"}, - {file = "plotly-5.18.0.tar.gz", hash = "sha256:360a31e6fbb49d12b007036eb6929521343d6bee2236f8459915821baefa2cbb"}, + {file = "plotly-5.19.0-py3-none-any.whl", hash = "sha256:906abcc5f15945765328c5d47edaa884bc99f5985fbc61e8cd4dc361f4ff8f5a"}, + {file = "plotly-5.19.0.tar.gz", hash = "sha256:5ea91a56571292ade3e3bc9bf712eba0b95a1fb0a941375d978cc79432e055f4"}, ] [[package]] @@ -1560,7 +1652,7 @@ name = "ptyprocess" version = "0.7.0" summary = "Run a subprocess in a pseudo terminal" groups = ["default"] -marker = "sys_platform != \"win32\"" +marker = "sys_platform != \"win32\" and sys_platform != \"emscripten\"" files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, @@ -1676,18 +1768,18 @@ files = [ [[package]] name = "pyparsing" -version = "3.1.1" +version = "3.1.2" requires_python = ">=3.6.8" summary = "pyparsing module - Classes and methods to define and execute parsing grammars" groups = ["default"] files = [ - {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, - {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, + {file = "pyparsing-3.1.2-py3-none-any.whl", hash = "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"}, + {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" summary = "Extensions to the standard Python datetime module" groups = ["default"] @@ -1695,23 +1787,23 @@ dependencies = [ "six>=1.5", ] files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [[package]] name = "pytz" -version = "2023.3.post1" +version = "2024.1" summary = "World timezone definitions, modern and historical" groups = ["default"] files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] name = "pyvo" -version = "1.5" +version = "1.5.1" requires_python = ">=3.8" summary = "Astropy affiliated package for accessing Virtual Observatory data and services" groups = ["default"] @@ -1720,8 +1812,8 @@ dependencies = [ "requests", ] files = [ - {file = "pyvo-1.5-py3-none-any.whl", hash = "sha256:e73e37b524d84dd94a6eb1224524268e42a2e226cb3c19d0e1416a7459a4cfcc"}, - {file = "pyvo-1.5.tar.gz", hash = "sha256:85e4d65b2c6645a0e523d347cd969be4e2ce0486d575be39bfaed1ab9724cdcf"}, + {file = "pyvo-1.5.1-py3-none-any.whl", hash = "sha256:53bdedd06bb37e7d9dca899fe1cc067dc423f3585c6e4799b371f04a5555720e"}, + {file = "pyvo-1.5.1.tar.gz", hash = "sha256:0720810fe7b766ba53d10e9d9e4bb23bc967c151a6f392e22a6cbfe0d453a632"}, ] [[package]] @@ -1736,6 +1828,9 @@ files = [ {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, + {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, + {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, + {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, ] [[package]] @@ -1773,6 +1868,13 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] @@ -1808,6 +1910,17 @@ files = [ {file = "pyzmq-25.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3"}, {file = "pyzmq-25.1.2-cp311-cp311-win32.whl", hash = "sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097"}, {file = "pyzmq-25.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9"}, + {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a"}, + {file = "pyzmq-25.1.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee"}, + {file = "pyzmq-25.1.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537"}, + {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181"}, + {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe"}, + {file = "pyzmq-25.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737"}, + {file = "pyzmq-25.1.2-cp312-cp312-win32.whl", hash = "sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d"}, + {file = "pyzmq-25.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7"}, {file = "pyzmq-25.1.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05"}, {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8"}, {file = "pyzmq-25.1.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e"}, @@ -1834,7 +1947,7 @@ files = [ [[package]] name = "referencing" -version = "0.32.1" +version = "0.33.0" requires_python = ">=3.8" summary = "JSON Referencing + Python" groups = ["default"] @@ -1843,8 +1956,8 @@ dependencies = [ "rpds-py>=0.7.0", ] files = [ - {file = "referencing-0.32.1-py3-none-any.whl", hash = "sha256:7e4dc12271d8e15612bfe35792f5ea1c40970dadf8624602e33db2758f7ee554"}, - {file = "referencing-0.32.1.tar.gz", hash = "sha256:3c57da0513e9563eb7e203ebe9bb3a1b509b042016433bd1e45a2853466c3dd3"}, + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, ] [[package]] @@ -1852,7 +1965,7 @@ name = "requests" version = "2.31.0" requires_python = ">=3.7" summary = "Python HTTP for Humans." -groups = ["default"] +groups = ["default", "dev"] dependencies = [ "certifi>=2017.4.17", "charset-normalizer<4,>=2", @@ -1866,97 +1979,110 @@ files = [ [[package]] name = "rpds-py" -version = "0.17.1" +version = "0.18.0" requires_python = ">=3.8" summary = "Python bindings to Rust's persistent data structures (rpds)" groups = ["default"] files = [ - {file = "rpds_py-0.17.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:4128980a14ed805e1b91a7ed551250282a8ddf8201a4e9f8f5b7e6225f54170d"}, - {file = "rpds_py-0.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ff1dcb8e8bc2261a088821b2595ef031c91d499a0c1b031c152d43fe0a6ecec8"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d65e6b4f1443048eb7e833c2accb4fa7ee67cc7d54f31b4f0555b474758bee55"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a71169d505af63bb4d20d23a8fbd4c6ce272e7bce6cc31f617152aa784436f29"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:436474f17733c7dca0fbf096d36ae65277e8645039df12a0fa52445ca494729d"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10162fe3f5f47c37ebf6d8ff5a2368508fe22007e3077bf25b9c7d803454d921"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:720215373a280f78a1814becb1312d4e4d1077b1202a56d2b0815e95ccb99ce9"}, - {file = "rpds_py-0.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:70fcc6c2906cfa5c6a552ba7ae2ce64b6c32f437d8f3f8eea49925b278a61453"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:91e5a8200e65aaac342a791272c564dffcf1281abd635d304d6c4e6b495f29dc"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:99f567dae93e10be2daaa896e07513dd4bf9c2ecf0576e0533ac36ba3b1d5394"}, - {file = "rpds_py-0.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24e4900a6643f87058a27320f81336d527ccfe503984528edde4bb660c8c8d59"}, - {file = "rpds_py-0.17.1-cp310-none-win32.whl", hash = "sha256:0bfb09bf41fe7c51413f563373e5f537eaa653d7adc4830399d4e9bdc199959d"}, - {file = "rpds_py-0.17.1-cp310-none-win_amd64.whl", hash = "sha256:20de7b7179e2031a04042e85dc463a93a82bc177eeba5ddd13ff746325558aa6"}, - {file = "rpds_py-0.17.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:65dcf105c1943cba45d19207ef51b8bc46d232a381e94dd38719d52d3980015b"}, - {file = "rpds_py-0.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:01f58a7306b64e0a4fe042047dd2b7d411ee82e54240284bab63e325762c1147"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:071bc28c589b86bc6351a339114fb7a029f5cddbaca34103aa573eba7b482382"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ae35e8e6801c5ab071b992cb2da958eee76340e6926ec693b5ff7d6381441745"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149c5cd24f729e3567b56e1795f74577aa3126c14c11e457bec1b1c90d212e38"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e796051f2070f47230c745d0a77a91088fbee2cc0502e9b796b9c6471983718c"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e820ee1004327609b28db8307acc27f5f2e9a0b185b2064c5f23e815f248f8"}, - {file = "rpds_py-0.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1957a2ab607f9added64478a6982742eb29f109d89d065fa44e01691a20fc20a"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8587fd64c2a91c33cdc39d0cebdaf30e79491cc029a37fcd458ba863f8815383"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4dc889a9d8a34758d0fcc9ac86adb97bab3fb7f0c4d29794357eb147536483fd"}, - {file = "rpds_py-0.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2953937f83820376b5979318840f3ee47477d94c17b940fe31d9458d79ae7eea"}, - {file = "rpds_py-0.17.1-cp311-none-win32.whl", hash = "sha256:1bfcad3109c1e5ba3cbe2f421614e70439f72897515a96c462ea657261b96518"}, - {file = "rpds_py-0.17.1-cp311-none-win_amd64.whl", hash = "sha256:99da0a4686ada4ed0f778120a0ea8d066de1a0a92ab0d13ae68492a437db78bf"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a3264e3e858de4fc601741498215835ff324ff2482fd4e4af61b46512dd7fc83"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f2f3b28b40fddcb6c1f1f6c88c6f3769cd933fa493ceb79da45968a21dccc920"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9584f8f52010295a4a417221861df9bea4c72d9632562b6e59b3c7b87a1522b7"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c64602e8be701c6cfe42064b71c84ce62ce66ddc6422c15463fd8127db3d8066"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:060f412230d5f19fc8c8b75f315931b408d8ebf56aec33ef4168d1b9e54200b1"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9412abdf0ba70faa6e2ee6c0cc62a8defb772e78860cef419865917d86c7342"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9737bdaa0ad33d34c0efc718741abaafce62fadae72c8b251df9b0c823c63b22"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9f0e4dc0f17dcea4ab9d13ac5c666b6b5337042b4d8f27e01b70fae41dd65c57"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1db228102ab9d1ff4c64148c96320d0be7044fa28bd865a9ce628ce98da5973d"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8bbd8e56f3ba25a7d0cf980fc42b34028848a53a0e36c9918550e0280b9d0b6"}, - {file = "rpds_py-0.17.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:be22ae34d68544df293152b7e50895ba70d2a833ad9566932d750d3625918b82"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bf046179d011e6114daf12a534d874958b039342b347348a78b7cdf0dd9d6041"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:1a746a6d49665058a5896000e8d9d2f1a6acba8a03b389c1e4c06e11e0b7f40d"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0b8bf5b8db49d8fd40f54772a1dcf262e8be0ad2ab0206b5a2ec109c176c0a4"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f7f4cb1f173385e8a39c29510dd11a78bf44e360fb75610594973f5ea141028b"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7fbd70cb8b54fe745301921b0816c08b6d917593429dfc437fd024b5ba713c58"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bdf1303df671179eaf2cb41e8515a07fc78d9d00f111eadbe3e14262f59c3d0"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad059a4bd14c45776600d223ec194e77db6c20255578bb5bcdd7c18fd169361"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3664d126d3388a887db44c2e293f87d500c4184ec43d5d14d2d2babdb4c64cad"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:698ea95a60c8b16b58be9d854c9f993c639f5c214cf9ba782eca53a8789d6b19"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:c3d2010656999b63e628a3c694f23020322b4178c450dc478558a2b6ef3cb9bb"}, - {file = "rpds_py-0.17.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:938eab7323a736533f015e6069a7d53ef2dcc841e4e533b782c2bfb9fb12d84b"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1e626b365293a2142a62b9a614e1f8e331b28f3ca57b9f05ebbf4cf2a0f0bdc5"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:380e0df2e9d5d5d339803cfc6d183a5442ad7ab3c63c2a0982e8c824566c5ccc"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b760a56e080a826c2e5af09002c1a037382ed21d03134eb6294812dda268c811"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5576ee2f3a309d2bb403ec292d5958ce03953b0e57a11d224c1f134feaf8c40f"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3c3461ebb4c4f1bbc70b15d20b565759f97a5aaf13af811fcefc892e9197ba"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:637b802f3f069a64436d432117a7e58fab414b4e27a7e81049817ae94de45d8d"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffee088ea9b593cc6160518ba9bd319b5475e5f3e578e4552d63818773c6f56a"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3ac732390d529d8469b831949c78085b034bff67f584559340008d0f6041a049"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:93432e747fb07fa567ad9cc7aaadd6e29710e515aabf939dfbed8046041346c6"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7b7d9ca34542099b4e185b3c2a2b2eda2e318a7dbde0b0d83357a6d4421b5296"}, - {file = "rpds_py-0.17.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:0387ce69ba06e43df54e43968090f3626e231e4bc9150e4c3246947567695f68"}, - {file = "rpds_py-0.17.1.tar.gz", hash = "sha256:0210b2668f24c078307260bf88bdac9d6f1093635df5123789bfee4d8d7fc8e7"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, + {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, + {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, + {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, + {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, + {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, + {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, + {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, + {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, + {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, + {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, + {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, + {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, + {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, + {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, + {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, + {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, + {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, + {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, + {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, ] [[package]] name = "ruff" -version = "0.1.14" +version = "0.3.2" requires_python = ">=3.7" summary = "An extremely fast Python linter and code formatter, written in Rust." groups = ["dev"] files = [ - {file = "ruff-0.1.14-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:96f76536df9b26622755c12ed8680f159817be2f725c17ed9305b472a757cdbb"}, - {file = "ruff-0.1.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ab3f71f64498c7241123bb5a768544cf42821d2a537f894b22457a543d3ca7a9"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060156ecc572b8f984fd20fd8b0fcb692dd5d837b7606e968334ab7ff0090ab"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a53d8e35313d7b67eb3db15a66c08434809107659226a90dcd7acb2afa55faea"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bea9be712b8f5b4ebed40e1949379cfb2a7d907f42921cf9ab3aae07e6fba9eb"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2270504d629a0b064247983cbc495bed277f372fb9eaba41e5cf51f7ba705a6a"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80258bb3b8909b1700610dfabef7876423eed1bc930fe177c71c414921898efa"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:653230dd00aaf449eb5ff25d10a6e03bc3006813e2cb99799e568f55482e5cae"}, - {file = "ruff-0.1.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b3acc6c4e6928459ba9eb7459dd4f0c4bf266a053c863d72a44c33246bfdbf"}, - {file = "ruff-0.1.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6b3dadc9522d0eccc060699a9816e8127b27addbb4697fc0c08611e4e6aeb8b5"}, - {file = "ruff-0.1.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1c8eca1a47b4150dc0fbec7fe68fc91c695aed798532a18dbb1424e61e9b721f"}, - {file = "ruff-0.1.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:62ce2ae46303ee896fc6811f63d6dabf8d9c389da0f3e3f2bce8bc7f15ef5488"}, - {file = "ruff-0.1.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b2027dde79d217b211d725fc833e8965dc90a16d0d3213f1298f97465956661b"}, - {file = "ruff-0.1.14-py3-none-win32.whl", hash = "sha256:722bafc299145575a63bbd6b5069cb643eaa62546a5b6398f82b3e4403329cab"}, - {file = "ruff-0.1.14-py3-none-win_amd64.whl", hash = "sha256:e3d241aa61f92b0805a7082bd89a9990826448e4d0398f0e2bc8f05c75c63d99"}, - {file = "ruff-0.1.14-py3-none-win_arm64.whl", hash = "sha256:269302b31ade4cde6cf6f9dd58ea593773a37ed3f7b97e793c8594b262466b67"}, - {file = "ruff-0.1.14.tar.gz", hash = "sha256:ad3f8088b2dfd884820289a06ab718cde7d38b94972212cc4ba90d5fbc9955f3"}, + {file = "ruff-0.3.2-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:77f2612752e25f730da7421ca5e3147b213dca4f9a0f7e0b534e9562c5441f01"}, + {file = "ruff-0.3.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9966b964b2dd1107797be9ca7195002b874424d1d5472097701ae8f43eadef5d"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b83d17ff166aa0659d1e1deaf9f2f14cbe387293a906de09bc4860717eb2e2da"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb875c6cc87b3703aeda85f01c9aebdce3d217aeaca3c2e52e38077383f7268a"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be75e468a6a86426430373d81c041b7605137a28f7014a72d2fc749e47f572aa"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:967978ac2d4506255e2f52afe70dda023fc602b283e97685c8447d036863a302"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1231eacd4510f73222940727ac927bc5d07667a86b0cbe822024dd00343e77e9"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c6d613b19e9a8021be2ee1d0e27710208d1603b56f47203d0abbde906929a9b"}, + {file = "ruff-0.3.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8439338a6303585d27b66b4626cbde89bb3e50fa3cae86ce52c1db7449330a7"}, + {file = "ruff-0.3.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:de8b480d8379620cbb5ea466a9e53bb467d2fb07c7eca54a4aa8576483c35d36"}, + {file = "ruff-0.3.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b74c3de9103bd35df2bb05d8b2899bf2dbe4efda6474ea9681280648ec4d237d"}, + {file = "ruff-0.3.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:f380be9fc15a99765c9cf316b40b9da1f6ad2ab9639e551703e581a5e6da6745"}, + {file = "ruff-0.3.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0ac06a3759c3ab9ef86bbeca665d31ad3aa9a4b1c17684aadb7e61c10baa0df4"}, + {file = "ruff-0.3.2-py3-none-win32.whl", hash = "sha256:9bd640a8f7dd07a0b6901fcebccedadeb1a705a50350fb86b4003b805c81385a"}, + {file = "ruff-0.3.2-py3-none-win_amd64.whl", hash = "sha256:0c1bdd9920cab5707c26c8b3bf33a064a4ca7842d91a99ec0634fec68f9f4037"}, + {file = "ruff-0.3.2-py3-none-win_arm64.whl", hash = "sha256:5f65103b1d76e0d600cabd577b04179ff592064eaa451a70a81085930e907d0b"}, + {file = "ruff-0.3.2.tar.gz", hash = "sha256:fa78ec9418eb1ca3db392811df3376b46471ae93792a81af2d1cbb0e5dcb5142"}, ] [[package]] @@ -1981,6 +2107,12 @@ files = [ {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, + {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, + {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, + {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, + {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, ] @@ -2002,13 +2134,13 @@ files = [ [[package]] name = "setuptools" -version = "69.0.3" +version = "69.1.1" requires_python = ">=3.8" summary = "Easily download, build, install, upgrade, and uninstall Python packages" groups = ["default"] files = [ - {file = "setuptools-69.0.3-py3-none-any.whl", hash = "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05"}, - {file = "setuptools-69.0.3.tar.gz", hash = "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"}, + {file = "setuptools-69.1.1-py3-none-any.whl", hash = "sha256:02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56"}, + {file = "setuptools-69.1.1.tar.gz", hash = "sha256:5c0806c7d9af348e6dd3777b4f4dbb42c7ad85b190104837488eab9a7c945cf8"}, ] [[package]] @@ -2031,6 +2163,13 @@ files = [ {file = "sgp4-2.23-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72868cd01169f45562954cdaaa9f1a2f738cac3c9ba3fdbd12b07a5f99bcb9d1"}, {file = "sgp4-2.23-cp311-cp311-win32.whl", hash = "sha256:137adf0e0fbe4d9a514284bb809590c5a2c52dc506b977ec7896165df8bc2a5e"}, {file = "sgp4-2.23-cp311-cp311-win_amd64.whl", hash = "sha256:34efb27f9f281c76b5650c9a39a0b8f43d383d5575a4f7b3d4d597c9b7ff3d75"}, + {file = "sgp4-2.23-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c45fa362763b5ae955a52bfdf05fee8d98351d1fa9db8fd1809b4f380cd9b0c6"}, + {file = "sgp4-2.23-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3765d0efae2c537228311591691a8fd7d44686d5322810be15eb7f204688f336"}, + {file = "sgp4-2.23-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b80dd3c3ee73a1bc24c0f63316889b3eff32e623ca67a91774c9c92ac663e98c"}, + {file = "sgp4-2.23-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ec001c6b5bd9a330ffa40d29ebf85f1cc2bfa558ba8f330efcb1aa50a8b733"}, + {file = "sgp4-2.23-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7424adc1d5f8cf93bf6ddeb079a9122af25c8a6b9234e7ed71d1868e128afe4a"}, + {file = "sgp4-2.23-cp312-cp312-win32.whl", hash = "sha256:4d954aa01a9f8c68a7b20e91ea6b5e0a195bb42b25e63698ea770d12c01927ea"}, + {file = "sgp4-2.23-cp312-cp312-win_amd64.whl", hash = "sha256:cc08bc23327f7b3cd052e79b026f02a1da885a273f10fa2a78734e5fa5ccfddd"}, {file = "sgp4-2.23.tar.gz", hash = "sha256:d8addc53a2fb9f88dee6bfd401d2865b014cc0b57bf2cee69bdee8d9685d5429"}, ] @@ -2047,7 +2186,7 @@ files = [ [[package]] name = "skyfield" -version = "1.47" +version = "1.48" summary = "Elegant astronomy for Python" groups = ["default"] dependencies = [ @@ -2057,8 +2196,8 @@ dependencies = [ "sgp4>=2.2", ] files = [ - {file = "skyfield-1.47-py3-none-any.whl", hash = "sha256:add77b3851d008ea8633de82efee54761df42896ffdc1b11f552e394adfb8cd1"}, - {file = "skyfield-1.47.tar.gz", hash = "sha256:3ac3e178c20547fa8e86adae4fdebcc8b4a744a184394268ce55338426bfe208"}, + {file = "skyfield-1.48-py3-none-any.whl", hash = "sha256:0d63e8e621e7b9207c78fd49c1bb714ab3ad8fcb3b7e7331c1ecfaa7c3d7cbd5"}, + {file = "skyfield-1.48.tar.gz", hash = "sha256:8b81f15b65e0b826341b17bf9e1446a0af94e49ed5983c04f123da49c1045fe1"}, ] [[package]] @@ -2113,7 +2252,7 @@ files = [ [[package]] name = "sphinx-book-theme" -version = "1.1.0" +version = "1.1.2" requires_python = ">=3.9" summary = "A clean book theme for scientific explanations and documentation with Sphinx" groups = ["default"] @@ -2122,8 +2261,8 @@ dependencies = [ "sphinx>=5", ] files = [ - {file = "sphinx_book_theme-1.1.0-py3-none-any.whl", hash = "sha256:088bc69d65fab8446adb8691ed61687f71bf7504c9740af68bc78cf936a26112"}, - {file = "sphinx_book_theme-1.1.0.tar.gz", hash = "sha256:ad4f92998e53e24751ecd0978d3eb79fdaa59692f005b1b286ecdd6146ebc9c1"}, + {file = "sphinx_book_theme-1.1.2-py3-none-any.whl", hash = "sha256:cee744466fde48f50302b851291b208aa67e726ca31b7a3bfb9b6e6a145663e0"}, + {file = "sphinx_book_theme-1.1.2.tar.gz", hash = "sha256:7f3abcd146ca82e6f39d6db53711102b1c1d328d12f65e3e47ad9bf842614a49"}, ] [[package]] @@ -2213,7 +2352,7 @@ files = [ [[package]] name = "sphinx-thebe" -version = "0.3.0" +version = "0.3.1" requires_python = ">=3.8" summary = "Integrate interactive code blocks into your documentation with Thebe and Binder." groups = ["default"] @@ -2221,8 +2360,8 @@ dependencies = [ "sphinx>=4", ] files = [ - {file = "sphinx_thebe-0.3.0-py3-none-any.whl", hash = "sha256:e58579c18562593a2dae4a561e2cf294af315a3e5ef961b048761202b49e4b34"}, - {file = "sphinx_thebe-0.3.0.tar.gz", hash = "sha256:c60dab1b59b92d6a2eab8d7119e87c0730470da62f3c84bf6ca75690487d0505"}, + {file = "sphinx_thebe-0.3.1-py3-none-any.whl", hash = "sha256:e7e7edee9f0d601c76bc70156c471e114939484b111dd8e74fe47ac88baffc52"}, + {file = "sphinx_thebe-0.3.1.tar.gz", hash = "sha256:576047f45560e82f64aa5f15200b1eb094dcfe1c5b8f531a8a65bd208e25a493"}, ] [[package]] @@ -2326,7 +2465,7 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.25" +version = "2.0.28" requires_python = ">=3.7" summary = "Database Abstraction Library" groups = ["default"] @@ -2335,24 +2474,32 @@ dependencies = [ "typing-extensions>=4.6.0", ] files = [ - {file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4344d059265cc8b1b1be351bfb88749294b87a8b2bbe21dfbe066c4199541ebd"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9e2e59cbcc6ba1488404aad43de005d05ca56e069477b33ff74e91b6319735"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84daa0a2055df9ca0f148a64fdde12ac635e30edbca80e87df9b3aaf419e144a"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc8b7dabe8e67c4832891a5d322cec6d44ef02f432b4588390017f5cec186a84"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f5693145220517b5f42393e07a6898acdfe820e136c98663b971906120549da5"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:db854730a25db7c956423bb9fb4bdd1216c839a689bf9cc15fada0a7fb2f4570"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-win32.whl", hash = "sha256:14a6f68e8fc96e5e8f5647ef6cda6250c780612a573d99e4d881581432ef1669"}, - {file = "SQLAlchemy-2.0.25-cp310-cp310-win_amd64.whl", hash = "sha256:87f6e732bccd7dcf1741c00f1ecf33797383128bd1c90144ac8adc02cbb98643"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:342d365988ba88ada8af320d43df4e0b13a694dbd75951f537b2d5e4cb5cd002"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f37c0caf14b9e9b9e8f6dbc81bc56db06acb4363eba5a633167781a48ef036ed"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa9373708763ef46782d10e950b49d0235bfe58facebd76917d3f5cbf5971aed"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d24f571990c05f6b36a396218f251f3e0dda916e0c687ef6fdca5072743208f5"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75432b5b14dc2fff43c50435e248b45c7cdadef73388e5610852b95280ffd0e9"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:884272dcd3ad97f47702965a0e902b540541890f468d24bd1d98bcfe41c3f018"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-win32.whl", hash = "sha256:e607cdd99cbf9bb80391f54446b86e16eea6ad309361942bf88318bcd452363c"}, - {file = "SQLAlchemy-2.0.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d505815ac340568fd03f719446a589162d55c52f08abd77ba8964fbb7eb5b5f"}, - {file = "SQLAlchemy-2.0.25-py3-none-any.whl", hash = "sha256:a86b4240e67d4753dc3092d9511886795b3c2852abe599cffe108952f7af7ac3"}, - {file = "SQLAlchemy-2.0.25.tar.gz", hash = "sha256:a2c69a7664fb2d54b8682dd774c3b54f67f84fa123cf84dda2a5f40dcaa04e08"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0b148ab0438f72ad21cb004ce3bdaafd28465c4276af66df3b9ecd2037bf252"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bbda76961eb8f27e6ad3c84d1dc56d5bc61ba8f02bd20fcf3450bd421c2fcc9c"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feea693c452d85ea0015ebe3bb9cd15b6f49acc1a31c28b3c50f4db0f8fb1e71"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5da98815f82dce0cb31fd1e873a0cb30934971d15b74e0d78cf21f9e1b05953f"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4a5adf383c73f2d49ad15ff363a8748319ff84c371eed59ffd0127355d6ea1da"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56856b871146bfead25fbcaed098269d90b744eea5cb32a952df00d542cdd368"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-win32.whl", hash = "sha256:943aa74a11f5806ab68278284a4ddd282d3fb348a0e96db9b42cb81bf731acdc"}, + {file = "SQLAlchemy-2.0.28-cp310-cp310-win_amd64.whl", hash = "sha256:c6c4da4843e0dabde41b8f2e8147438330924114f541949e6318358a56d1875a"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46a3d4e7a472bfff2d28db838669fc437964e8af8df8ee1e4548e92710929adc"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d3dd67b5d69794cfe82862c002512683b3db038b99002171f624712fa71aeaa"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61e2e41656a673b777e2f0cbbe545323dbe0d32312f590b1bc09da1de6c2a02"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0315d9125a38026227f559488fe7f7cee1bd2fbc19f9fd637739dc50bb6380b2"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:af8ce2d31679006e7b747d30a89cd3ac1ec304c3d4c20973f0f4ad58e2d1c4c9"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:81ba314a08c7ab701e621b7ad079c0c933c58cdef88593c59b90b996e8b58fa5"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-win32.whl", hash = "sha256:1ee8bd6d68578e517943f5ebff3afbd93fc65f7ef8f23becab9fa8fb315afb1d"}, + {file = "SQLAlchemy-2.0.28-cp311-cp311-win_amd64.whl", hash = "sha256:ad7acbe95bac70e4e687a4dc9ae3f7a2f467aa6597049eeb6d4a662ecd990bb6"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d3499008ddec83127ab286c6f6ec82a34f39c9817f020f75eca96155f9765097"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9b66fcd38659cab5d29e8de5409cdf91e9986817703e1078b2fdaad731ea66f5"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bea30da1e76cb1acc5b72e204a920a3a7678d9d52f688f087dc08e54e2754c67"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:124202b4e0edea7f08a4db8c81cc7859012f90a0d14ba2bf07c099aff6e96462"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e23b88c69497a6322b5796c0781400692eca1ae5532821b39ce81a48c395aae9"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b6303bfd78fb3221847723104d152e5972c22367ff66edf09120fcde5ddc2e2"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-win32.whl", hash = "sha256:a921002be69ac3ab2cf0c3017c4e6a3377f800f1fca7f254c13b5f1a2f10022c"}, + {file = "SQLAlchemy-2.0.28-cp312-cp312-win_amd64.whl", hash = "sha256:b4a2cf92995635b64876dc141af0ef089c6eea7e05898d8d8865e71a326c0385"}, + {file = "SQLAlchemy-2.0.28-py3-none-any.whl", hash = "sha256:78bb7e8da0183a8301352d569900d9d3594c48ac21dc1c2ec6b3121ed8b6c986"}, + {file = "SQLAlchemy-2.0.28.tar.gz", hash = "sha256:dd53b6c4e6d960600fd6532b79ee28e2da489322fcf6648738134587faf767b6"}, ] [[package]] @@ -2406,18 +2553,6 @@ files = [ {file = "tenacity-8.2.3.tar.gz", hash = "sha256:5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a"}, ] -[[package]] -name = "tomli" -version = "2.0.1" -requires_python = ">=3.7" -summary = "A lil' TOML parser" -groups = ["dev"] -marker = "python_version < \"3.11\"" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - [[package]] name = "tornado" version = "6.4" @@ -2440,57 +2575,57 @@ files = [ [[package]] name = "traitlets" -version = "5.14.1" +version = "5.14.2" requires_python = ">=3.8" summary = "Traitlets Python configuration system" groups = ["default"] files = [ - {file = "traitlets-5.14.1-py3-none-any.whl", hash = "sha256:2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74"}, - {file = "traitlets-5.14.1.tar.gz", hash = "sha256:8585105b371a04b8316a43d5ce29c098575c2e477850b62b848b964f1444527e"}, + {file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"}, + {file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"}, ] [[package]] name = "typing-extensions" -version = "4.9.0" +version = "4.10.0" requires_python = ">=3.8" summary = "Backported and Experimental Type Hints for Python 3.8+" -groups = ["default", "dev"] +groups = ["default"] files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, + {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, + {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, ] [[package]] name = "tzdata" -version = "2023.4" +version = "2024.1" requires_python = ">=2" summary = "Provider of IANA time zone data" groups = ["default"] files = [ - {file = "tzdata-2023.4-py2.py3-none-any.whl", hash = "sha256:aa3ace4329eeacda5b7beb7ea08ece826c28d761cda36e747cfbf97996d39bf3"}, - {file = "tzdata-2023.4.tar.gz", hash = "sha256:dd54c94f294765522c77399649b4fefd95522479a664a0cec87f41bebc6148c9"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] name = "uc-micro-py" -version = "1.0.2" +version = "1.0.3" requires_python = ">=3.7" summary = "Micro subset of unicode data files for linkify-it-py projects." groups = ["default"] files = [ - {file = "uc-micro-py-1.0.2.tar.gz", hash = "sha256:30ae2ac9c49f39ac6dce743bd187fcd2b574b16ca095fa74cd9396795c954c54"}, - {file = "uc_micro_py-1.0.2-py3-none-any.whl", hash = "sha256:8c9110c309db9d9e87302e2f4ad2c3152770930d88ab385cd544e7a7e75f3de0"}, + {file = "uc-micro-py-1.0.3.tar.gz", hash = "sha256:d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a"}, + {file = "uc_micro_py-1.0.3-py3-none-any.whl", hash = "sha256:db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5"}, ] [[package]] name = "urllib3" -version = "2.1.0" +version = "2.2.1" requires_python = ">=3.8" summary = "HTTP library with thread-safe connection pooling, file post, and more." -groups = ["default"] +groups = ["default", "dev"] files = [ - {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, - {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [[package]] @@ -2515,24 +2650,24 @@ files = [ [[package]] name = "wheel" -version = "0.42.0" -requires_python = ">=3.7" +version = "0.43.0" +requires_python = ">=3.8" summary = "A built-package format for Python" groups = ["default"] files = [ - {file = "wheel-0.42.0-py3-none-any.whl", hash = "sha256:177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d"}, - {file = "wheel-0.42.0.tar.gz", hash = "sha256:c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8"}, + {file = "wheel-0.43.0-py3-none-any.whl", hash = "sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81"}, + {file = "wheel-0.43.0.tar.gz", hash = "sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85"}, ] [[package]] name = "widgetsnbextension" -version = "4.0.9" +version = "4.0.10" requires_python = ">=3.7" summary = "Jupyter interactive widgets for Jupyter Notebook" groups = ["default"] files = [ - {file = "widgetsnbextension-4.0.9-py3-none-any.whl", hash = "sha256:91452ca8445beb805792f206e560c1769284267a30ceb1cec9f5bcc887d15175"}, - {file = "widgetsnbextension-4.0.9.tar.gz", hash = "sha256:3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385"}, + {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, + {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index 2d3c9e86..882154e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,43 +1,34 @@ #:schema https://json.schemastore.org/pyproject.json [project] dependencies = [ - "astropy>=6.0.0", - "docutils>=0.20.1", - "ipympl>=0.9.3", - "jupyter-book>=1.0.0", - "matplotlib>=3.8.2", - "myst-nb-bokeh>=2024.1.0", - "myst-nb>=1.0.0", - "numpy>=1.26.3", - "pint>=0.23", - "plotly>=5.18.0", - "poliastro>=0.18.dev0", - "scipy>=1.12.0", - "skyfield>=1.47", - "sphinx-design>=0.5.0", - "sympy>=1.12", - "wheel>=0.42.0", + "astropy>=6.0.0", + "docutils>=0.20.1", + "ipympl>=0.9.3", + "jupyter-book>=1.0.0", + "matplotlib>=3.8.3", + "myst-nb-bokeh>=2024.1.0", + "myst-nb>=1.0.0", + "numpy>=1.26.4", + "pint>=0.23", + "plotly>=5.19.0", + "poliastro>=0.18.dev0", + "scipy>=1.12.0", + "skyfield>=1.48", + "sphinx-design>=0.5.0", + "sympy>=1.12", + "wheel>=0.42.0", ] -# Numba 0.58.1 requires Python < 3.12 -requires-python = ">=3.10,<3.12" +requires-python = ">=3.10,<3.13" name = "orbital-mechanics-notes" -version = "2024.01.0" -description = "Orbital Mechanics Notes built with JupyterBook" -authors = [ - {name = "Bryan Weber", email = "bryan.w.weber@gmail.com"}, -] -license = {text = "CC-BY-SA-4.0"} +authors = [{ name = "Bryan Weber", email = "bryan.w.weber@gmail.com" }] +license = { text = "CC-BY-SA-4.0" } [tool.pdm] distribution = false [tool.pdm.dev-dependencies] -dev = [ - "doit>=0.36.0", - "pyyaml>=6.0.1", - "mypy>=1.8.0", - "ruff>=0.1.14", -] +dev = ["doit>=0.36.0", "pyyaml>=6.0.1", "ruff>=0.3.2", "requests>=2.31.0"] + [tool.pdm.resolution.overrides] # Unfortunately, poliastro is no longer maintained. I updated some dependencies on my # fork to be able to upgrade some other things like astropy. Nothing seems to be broken @@ -46,6 +37,8 @@ dev = [ [tool.ruff] extend-include = ["*.ipynb"] + +[tool.ruff.lint] select = [ "E", # pycodestyle "W", # pycodestyle @@ -55,3 +48,4 @@ select = [ "NPY", # NumPy rules "RUF", # Ruff rules ] +ignore = ["E402"] diff --git a/raw_svg/render_math_svg.py b/raw_svg/render_math_svg.py index 65b7ae10..65eeab19 100644 --- a/raw_svg/render_math_svg.py +++ b/raw_svg/render_math_svg.py @@ -1,20 +1,19 @@ -from __future__ import annotations -import requests -from xml.etree import ElementTree as ET -from pathlib import Path import json -from typing import Optional, Union, Dict +import re import sys from datetime import datetime -import re +from pathlib import Path +from xml.etree import ElementTree as ET + +import requests HERE = Path(__file__).parent OUTPUT = HERE.parent / "images" # HOST = "https://math.vercel.app" HOST = "http://localhost:3000" -PARAMS: dict[str, Optional[Union[str, bytes]]] = {"from": None} +PARAMS: dict[str, str | bytes | None] = {"from": None} CACHE = HERE / "mathjax_cache.json" -CACHE_T = Dict[Optional[Union[str, bytes]], str] +CACHE_T = dict[str | bytes | None, str] SESSION = requests.Session() NAMESPACES = { "": "http://www.w3.org/2000/svg", @@ -60,7 +59,7 @@ -""" +""" # noqa: E501 # Match sizes from height and width attributes SIZE_REGEX = re.compile(r"([\d.]+)?(\w*)?") # Match a scaling factor in the class attribute @@ -148,7 +147,7 @@ def replace_text(search_elem: ET.Element, cache: CACHE_T) -> None: search_elem.remove(elem) -def main(svg_file: Optional[Path] = None) -> None: +def main(svg_file: Path | None = None) -> None: if svg_file is None: for svg_f in HERE.glob("*.svg"): main(svg_f) diff --git a/reference/planetary-ephemeris.md b/reference/planetary-ephemeris.md index f16f193f..2810ae7a 100644 --- a/reference/planetary-ephemeris.md +++ b/reference/planetary-ephemeris.md @@ -359,10 +359,10 @@ The default interface of HORIZONS is shown in {numref}`fig:horizons-default` The default web interface for HORIZONS. ::: -Each of the options can be changed by clicking the *Edit* buttons. For our purposes, we can change the following: +Each of the options can be changed by clicking the _Edit_ buttons. For our purposes, we can change the following: 1. _Ephemeris Type_: Either _Vector Table_ or _Osculating Orbital Elements_ is suitable, although the latter is more direct for this example -2. _Target Body_: This option opens a pop-up where we can search for the body of interest. In the drop-down menu under *Choose a method for specifying the target body*, you can choose *Select from a list of major bodies*, then choose *Mercury* +2. _Target Body_: This option opens a pop-up where we can search for the body of interest. In the drop-down menu under _Choose a method for specifying the target body_, you can choose _Select from a list of major bodies_, then choose *Mercury* 3. _Center_: The default selection here is _Solar System Barycenter_, the center of gravity of the entire solar system. This is usually a little bit outside the sun, depending on the relative locations of the planets, especially Jupiter. In our case, we want the center of the Sun as the focus of the orbit, so click _Edit_ and then type `@sun` into the search box. 4. _Time Span_: This can be used to generate a range of dates, or to input specific dates. We will choose _Specify a list of times_ for this example, and then input the date of interest, in JDT, {glue:text}`planetary-ephemeris-JDT`. 5. _Table Settings_: Here, we want to change the units to _km and seconds_. Another useful option is the _Reference plane_. The default of _ecliptic x-y plane derived from reference plane_ is appropriate for this example. You may also want to set the CSV output option, depending on how you will use the data. diff --git a/reference/planetary-parameters.md b/reference/planetary-parameters.md index e063e756..dc0d44e1 100644 --- a/reference/planetary-parameters.md +++ b/reference/planetary-parameters.md @@ -13,6 +13,7 @@ kernelspec: --- (sec:planetary-parameters)= + # Planetary Parameters ## Planetary Mass Parameters diff --git a/reference/scripts/planet-orbital-elements.py b/reference/scripts/planet-orbital-elements.py index 8460e6fd..45aa6e06 100644 --- a/reference/scripts/planet-orbital-elements.py +++ b/reference/scripts/planet-orbital-elements.py @@ -1,17 +1,16 @@ -from __future__ import annotations -from pathlib import Path import re from datetime import datetime +from pathlib import Path -from dateutil.rrule import rrule, DAILY +import numpy as np from dateutil import tz -from skyfield.iokit import load_file, Loader +from dateutil.rrule import DAILY, rrule +from IPython.display import display +from myst_nb.ext.glue import GLUE_PREFIX from skyfield.elementslib import OsculatingElements, osculating_elements_of from skyfield.framelib import build_ecliptic_matrix +from skyfield.iokit import Loader, load_file from skyfield.units import Distance, Velocity -import numpy as np -from myst_nb.ext.glue import GLUE_PREFIX -from IPython.display import display class CelestialObject: @@ -33,7 +32,7 @@ def format_units(self, obj: float): mantissa, exponent = initial_format.split("E") sign = exponent[0] if exponent[0] == "-" else "" value = int(exponent[1:]) - return f"{mantissa} × 10{sign}{value}" + return f"{mantissa} × 10{sign}{value}" # noqa: RUF001 def glue(self): metadata = {"scrapbook": {"mime_prefix": GLUE_PREFIX}} diff --git a/reference/scripts/planet-radii.py b/reference/scripts/planet-radii.py index 932d3acc..1866e32e 100644 --- a/reference/scripts/planet-radii.py +++ b/reference/scripts/planet-radii.py @@ -1,6 +1,7 @@ import csv -from myst_nb.ext.glue import GLUE_PREFIX + from IPython.display import display +from myst_nb.ext.glue import GLUE_PREFIX # Data source: https://link.springer.com/article/10.1007/s10569-017-9805-5/tables/5 planet_data = """\ @@ -16,7 +17,7 @@ Saturn,58232 ± 6,60268 ± 4,54364 ± 10,102.9,8,205 Uranus,25362 ± 7,25559 ± 4,24973 ± 20,16.8,28,0 Neptune,24622 ± 19,24764 ± 15,24341 ± 30,8.0,14,0 -""" +""" # noqa: E501 # Data source: https://link.springer.com/article/10.1007/s10569-017-9805-5/tables/6 moon_data = """\ @@ -87,7 +88,7 @@ Neptune,VIII,Proteus,208 ± 8,218,208,201,7.9,18.0,13.0 Neptune,I,Triton,1352.6 ± 2.4,,,,,, Neptune,II,Nereid,170 ± 25,,,,,, -""" +""" # noqa: E501 # Data source: https://link.springer.com/article/10.1007/s10569-017-9805-5/tables/7 dwarf_data = """\ @@ -113,7 +114,7 @@ 67P/Churyumov–Gerasimenko,1.65,2.40,1.55,1.20,(f) 81P/Wild 2,1.975,2.7,1.9,1.5, 103P/Hartley 2,0.58,0.34,1.16,1.16,(g) -""" +""" # noqa: E501, RUF001 def glue(row: dict[str, str], name: str, object: str) -> None: diff --git a/reference/scripts/standard-gravitational-parameter.py b/reference/scripts/standard-gravitational-parameter.py index e52884aa..0dd44151 100644 --- a/reference/scripts/standard-gravitational-parameter.py +++ b/reference/scripts/standard-gravitational-parameter.py @@ -1,5 +1,4 @@ from dataclasses import dataclass -from typing import Optional import pint from IPython.display import display @@ -17,8 +16,8 @@ class CelestialObject: GM_in_au: pint.Quantity GM_ratio: pint.Quantity GM_in_km: pint.Quantity - mass: Optional[pint.Quantity] = None - mass_fraction: Optional[pint.Quantity] = None + mass: pint.Quantity | None = None + mass_fraction: pint.Quantity | None = None def compute_mass(self): self.mass = (self.GM_in_km / self.G).to("kg") @@ -35,7 +34,7 @@ def format_units(self, obj): sign = exponent[0] if exponent[0] == "-" else "" value = int(exponent[1:]) - return f"{mantissa} × 10{sign}{value}{units}" + return f"{mantissa} × 10{sign}{value}{units}" # noqa: RUF001 def glue(self): assert self.mass is not None, "Mass has not been computed" diff --git a/references.bib b/references.bib index d81518a6..cec4a346 100644 --- a/references.bib +++ b/references.bib @@ -59,7 +59,7 @@ @book{Bate2020 title = {Fundamentals of Astrodynamics}, author = {Bate, Roger R. and Mueller, Donald D. and White, Jerry E. and Saylor, William W.}, year = {2020}, - edition = {Second edition}, + edition = {second}, publisher = {{Dover Publications, Inc}}, address = {{Mineola, New York}}, abstract = {"Developed at the U.S. Air Force Academy, this teaching text is widely known and used throughout the astrodynamics and aerospace engineering communities. Completely revised and updated, this second edition takes into account new developments of the past four decades, especially regarding information technology. Central emphasis is placed on the use of the universal variable formulation, although classical methods are also discussed. The development of the basic two-body and n-body equations of motion serves as a foundation for all that follows. Subsequent topics include orbit determination and the classical orbital elements, coordinate transformations, and differential correction. The Kepler and Gauss problems are treated in detail, and two-body mechanics are applied to the ballistic missile problem. Perturbations, integration schemes and error, and analytic formulations of several common perturbations are introduced. Example problems and exercises appear throughout the text, along with photographs, diagrams, and drawings. Four helpful appendixes conclude the book"--}, @@ -109,7 +109,7 @@ @book{Curtis2020 title = {Orbital Mechanics for Engineering Students}, author = {Curtis, Howard D}, year = {2020}, - edition = {Fourth}, + edition = {fourth}, publisher = {{Elsevier}}, isbn = {978-0-08-102133-0}, langid = {english}, @@ -135,7 +135,7 @@ @book{Gradshtein2007 title = {Table of Integrals, Series, and Products}, author = {Gradshte{\u \i}n, I. S. and Ryzhik, I. M. and Jeffrey, Alan}, year = {2007}, - edition = {7th ed}, + edition = {seventh}, publisher = {{Academic Press}}, address = {{Amsterdam ; Boston}}, isbn = {978-0-12-373637-6}, @@ -281,7 +281,7 @@ @book{Prussing2013 title = {Orbital Mechanics}, author = {Prussing, John E. and Conway, Bruce A.}, year = {2013}, - edition = {Second edition}, + edition = {Second}, publisher = {{Oxford University Press}}, address = {{New York}}, isbn = {978-0-19-983770-0}, @@ -373,7 +373,7 @@ @book{Seidelmann1992 title = {Explanatory Supplement to the {{Astronomical}} Almanac}, editor = {Seidelmann, P. Kenneth and United States Naval Observatory and Great Britain}, year = {1992}, - edition = {Rev. ed.}, + edition = {Rev.}, publisher = {{University Science Books}}, address = {{Mill Valley, Calif}}, isbn = {978-0-935702-68-2}, @@ -437,7 +437,7 @@ @book{Vallado2013 author = {Vallado, David A. and McClain, Wayne D.}, year = {2013}, series = {Space Technology Library}, - edition = {4. ed}, + edition = {fourth}, number = {21}, publisher = {{Microcosm Press}}, address = {{Hawthorne, Calif}}, @@ -456,5 +456,3 @@ @book{Zwillinger2003 langid = {english}, annotation = {OCLC: 493531816} } - - diff --git a/the-n-body-problem/Equations-of-Motion-CR3BP.ipynb b/the-n-body-problem/Equations-of-Motion-CR3BP.ipynb index b05278c0..fe248c56 100644 --- a/the-n-body-problem/Equations-of-Motion-CR3BP.ipynb +++ b/the-n-body-problem/Equations-of-Motion-CR3BP.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "metadata": {}, "source": [ "# Example: CR3BP Equations of Motion\n", "\n", @@ -33,45 +34,46 @@ ":::\n", "\n", "We need to provide $\\pi_2$, the mass ratio, as the parameter of the system, along with the initial position and velocity. Let's solve this system of equations numerically to find the position of $m$ as a function of non-dimensional time in the rotating frame of reference. First, we import the appropriate libraries:" - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "from scipy.integrate import solve_ivp\n", + "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "import matplotlib.pyplot as plt" - ], - "outputs": [], - "metadata": {} + "from scipy.integrate import solve_ivp" + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# These masses represent the Earth-Moon system\n", - "m_1 = 5.974E24 # kg\n", - "m_2 = 7.348E22 # kg\n", - "pi_2 = m_2/(m_1 + m_2)" - ], - "outputs": [], - "metadata": {} + "m_1 = 5.974e24 # kg\n", + "m_2 = 7.348e22 # kg\n", + "pi_2 = m_2 / (m_1 + m_2)" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "The system of equations is very sensitive to the initial conditions that we pick. In this case, we are choosing the initial position at the $x^*$ position of the secondary mass, offset slightly in the $y^*$ axis. The initial velocity is directed along the positive $y^*$ axis and the negative $x^*$ axis." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "x_0 = 1 - pi_2\n", - "y_0 = .0455\n", + "y_0 = 0.0455\n", "z_0 = 0\n", "vx_0 = -0.5\n", "vy_0 = 0.5\n", @@ -81,27 +83,27 @@ "r_0 = np.array((x_0, y_0, z_0))\n", "v_0 = np.array((vx_0, vy_0, vz_0))\n", "Y_0 = np.hstack((r_0, v_0))" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Now we need to define the function that solves the non-dimensional equations of motion, much like the function in the relative motion problem." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "def nondim_cr3bp(t, Y):\n", " \"\"\"Solve the CR3BP in nondimensional coordinates.\n", - " \n", + "\n", " The state vector is Y, with the first three components as the\n", " position of $m$, and the second three components its velocity.\n", - " \n", + "\n", " The solution is parameterized on $\\\\pi_2$, the mass ratio.\n", " \"\"\"\n", " # Get the position and velocity from the solution vector\n", @@ -114,24 +116,29 @@ "\n", " sigma = np.sqrt(np.sum(np.square([x + pi_2, y, z])))\n", " psi = np.sqrt(np.sum(np.square([x - 1 + pi_2, y, z])))\n", - " Ydot[3] = 2 * ydot + x - (1 - pi_2) * (x + pi_2) / sigma**3 - pi_2 * (x - 1 + pi_2) / psi**3\n", + " Ydot[3] = (\n", + " 2 * ydot\n", + " + x\n", + " - (1 - pi_2) * (x + pi_2) / sigma**3\n", + " - pi_2 * (x - 1 + pi_2) / psi**3\n", + " )\n", " Ydot[4] = -2 * xdot + y - (1 - pi_2) * y / sigma**3 - pi_2 * y / psi**3\n", - " Ydot[5] = -(1 - pi_2)/sigma**3 * z - pi_2/psi**3 * z\n", + " Ydot[5] = -(1 - pi_2) / sigma**3 * z - pi_2 / psi**3 * z\n", " return Ydot" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Now we can solve the problem with `solve_ivp()`. We choose an end time of 25 non-dimensional units, pretty much arbitrarily to see what we can get." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "t_0 = 0 # nondimensional time\n", "t_f = 20 # nondimensional time\n", @@ -141,69 +148,68 @@ "Y = sol.y.T\n", "r = Y[:, :3] # nondimensional distance\n", "v = Y[:, 3:] # nondimensional velocity" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Finally, to plot the trajectory, we will define some values for the circular orbit of $m_2$ around the barycenter and then plot the trajectory of $m$ in red." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "from myst_nb import glue" - ], - "outputs": [], "metadata": { "tags": [ "remove-cell" ] - } + }, + "outputs": [], + "source": [ + "from myst_nb import glue" + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-output" + ] + }, + "outputs": [], "source": [ "x_2 = (1 - pi_2) * np.cos(np.linspace(0, np.pi, 100))\n", "y_2 = (1 - pi_2) * np.sin(np.linspace(0, np.pi, 100))\n", - "fig, ax = plt.subplots(figsize=(5,5), dpi=96)\n", + "fig, ax = plt.subplots(figsize=(5, 5), dpi=96)\n", "\n", "# Plot the orbits\n", - "ax.plot(r[:, 0], r[:, 1], 'r', label=\"Trajectory\")\n", - "ax.axhline(0, color='k')\n", + "ax.plot(r[:, 0], r[:, 1], \"r\", label=\"Trajectory\")\n", + "ax.axhline(0, color=\"k\")\n", "ax.plot(np.hstack((x_2, x_2[::-1])), np.hstack((y_2, -y_2[::-1])))\n", - "ax.plot(-pi_2, 0, 'bo', label=\"$m_1$\")\n", - "ax.plot(1 - pi_2, 0, 'go', label=\"$m_2$\")\n", - "ax.plot(x_0, y_0, 'ro')\n", + "ax.plot(-pi_2, 0, \"bo\", label=\"$m_1$\")\n", + "ax.plot(1 - pi_2, 0, \"go\", label=\"$m_2$\")\n", + "ax.plot(x_0, y_0, \"ro\")\n", "ax.set_aspect(\"equal\")" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-output" - ] - } + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "glue(\"cr3bp-example-trajectory\", fig, display=False)" - ], - "outputs": [], "metadata": { "tags": [ "remove-cell" ] - } + }, + "outputs": [], + "source": [ + "glue(\"cr3bp-example-trajectory\", fig, display=False)" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ ":::{glue:figure} cr3bp-example-trajectory\n", ":name: fig:cr3bp-example-trajectory\n", @@ -211,14 +217,12 @@ "The trajectory of $m$ in the rotating frame of reference, in non-dimensional coordinates.\n", ":::\n", "\n", - "As shown in {numref}`fig:cr3bp-example-trajectory`, we can get some very interesting behavior of $m$ in the rotating frame of reference. The behavior of $m$ depends very strongly on the initial conditions that we set.\n", - "\n", - "**See what interesting patterns you can get, and post your efforts on Piazza!**" - ], - "metadata": {} + "As shown in {numref}`fig:cr3bp-example-trajectory`, we can get some very interesting behavior of $m$ in the rotating frame of reference. The behavior of $m$ depends very strongly on the initial conditions that we set." + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Calculating the Jacobi Constant\n", "\n", @@ -229,12 +233,13 @@ ":::\n", "\n", "This value should be constant over the entire trajectory of the tertiary mass." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "speed_sq = np.sum(np.square(v), axis=1)\n", "\n", @@ -244,51 +249,55 @@ "psi = np.sqrt(np.sum(np.square(r), axis=1))\n", "r[:, 0] = r[:, 0] + 1.0 - pi_2\n", "\n", - "J = 0.5 * speed_sq - (1 - pi_2) / sigma - pi_2 / psi - 0.5 * ((1 - pi_2) * sigma**2 + pi_2 * psi**2)" - ], - "outputs": [], - "metadata": {} + "J = (\n", + " 0.5 * speed_sq\n", + " - (1 - pi_2) / sigma\n", + " - pi_2 / psi\n", + " - 0.5 * ((1 - pi_2) * sigma**2 + pi_2 * psi**2)\n", + ")" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Now that we have calculated $J$ as a function of time, let's plot it! Hopefully it's constant..." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-output" + ] + }, + "outputs": [], "source": [ - "fig, ax = plt.subplots(figsize=(8,6), dpi=96)\n", + "fig, ax = plt.subplots(figsize=(8, 6), dpi=96)\n", "ax.plot(sol.t, J, label=\"Jacobi Constant\")\n", "ax.axhline(J[0], color=\"C1\", label=\"Initial Jacobi Constant\")\n", "ax.legend(loc=\"center left\")\n", "ax.set_xlabel(\"$\\\\tau$\")\n", "ax.set_ylabel(\"$J$\")" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-output" - ] - } + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "glue(\"runge-kutta-jacobi-constant\", fig, display=False)" - ], - "outputs": [], "metadata": { "tags": [ "remove-cell" ] - } + }, + "outputs": [], + "source": [ + "glue(\"runge-kutta-jacobi-constant\", fig, display=False)" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ ":::{glue:figure} runge-kutta-jacobi-constant\n", ":name: fig:runge-kutta-jacobi-constant\n", @@ -303,12 +312,17 @@ "According to Rubinsztejn {cite}`Rubinsztejn2019`, the problem may be with the integrator we're using, which doesn't guarantee that energy is conserved because of the algorithm it uses. We can change the precision requirements for the solver. The default integrator for `solve_ivp()` is a [5th order Runge-Kutta integrator](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.RK45.html#scipy.integrate.RK45), with absolute and relative tolerances of $10^{-6}$ and $10^{-3}$, respectively.\n", "\n", "We will decrease the absolute and relative tolerances, to ensure that the solver is producing a high-accuracy solution." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-output" + ] + }, + "outputs": [], "source": [ "sol_hp = solve_ivp(nondim_cr3bp, [t_0, t_f], Y_0, atol=1e-9, rtol=1e-6, t_eval=t_points)\n", "Y_hp = sol_hp.y.T\n", @@ -323,9 +337,14 @@ "psi_hp = np.sqrt(np.sum(np.square(r_hp), axis=1))\n", "r_hp[:, 0] = r_hp[:, 0] + 1 - pi_2\n", "\n", - "J_hp = 0.5 * speed_sq_hp - (1 - pi_2) / sigma_hp - pi_2 / psi_hp - 0.5 * ((1 - pi_2) * sigma_hp**2 + pi_2 * psi_hp**2)\n", + "J_hp = (\n", + " 0.5 * speed_sq_hp\n", + " - (1 - pi_2) / sigma_hp\n", + " - pi_2 / psi_hp\n", + " - 0.5 * ((1 - pi_2) * sigma_hp**2 + pi_2 * psi_hp**2)\n", + ")\n", "\n", - "fig, ax = plt.subplots(figsize=(6,4), dpi=96)\n", + "fig, ax = plt.subplots(figsize=(6, 4), dpi=96)\n", "ax.plot(sol_hp.t, J_hp, label=\"Jacobi Constant\")\n", "ax.axhline(J_hp[0], color=\"C1\", label=\"Initial Jacobi Constant\")\n", "ax.set_ylim(-1.4988, -1.49886)\n", @@ -333,29 +352,24 @@ "ax.set_xlabel(\"$\\\\tau$\")\n", "ax.set_ylabel(\"$J$\")\n", "ax.ticklabel_format(style=\"plain\", useOffset=False)" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-output" - ] - } + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "glue(\"runge-kutta-small-tolerance\", fig, display=False)" - ], - "outputs": [], "metadata": { "tags": [ "remove-cell" ] - } + }, + "outputs": [], + "source": [ + "glue(\"runge-kutta-small-tolerance\", fig, display=False)" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ ":::{glue:figure} runge-kutta-small-tolerance\n", ":name: fig:runge-kutta-small-tolerance\n", @@ -366,35 +380,40 @@ "As shown in {numref}`fig:runge-kutta-small-tolerance`, reducing the tolerances significantly improves the behavior of the solver. The change in $J$ is now on the order of $1\\times 10^{-5}$, which is acceptable for reasonable lengths of integration time.\n", "\n", "{numref}`fig:trajectory-comparison-cr3bp` shows the trajectory of $m$ for both of the solution cases here. The trajectories clearly diverge quite quickly after the simulation starts." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-output" + ] + }, + "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(5, 5), dpi=96)\n", "\n", "# Plot the orbits\n", - "ax.plot(r_hp[:, 0], r[:, 1], 'r', label=\"Reduced Tolerances Trajectory\")\n", - "ax.axhline(0, color='k')\n", + "ax.plot(r_hp[:, 0], r[:, 1], \"r\", label=\"Reduced Tolerances Trajectory\")\n", + "ax.axhline(0, color=\"k\")\n", "ax.plot(np.hstack((x_2, x_2[::-1])), np.hstack((y_2, -y_2[::-1])))\n", - "ax.plot(-pi_2, 0, 'bo')\n", - "ax.plot(1 - pi_2, 0, 'go')\n", - "ax.plot(x_0, y_0, 'ro')\n", - "ax.plot(r[:, 0], r[:, 1], 'C2', label=\"Original Trajectory\")\n", + "ax.plot(-pi_2, 0, \"bo\")\n", + "ax.plot(1 - pi_2, 0, \"go\")\n", + "ax.plot(x_0, y_0, \"ro\")\n", + "ax.plot(r[:, 0], r[:, 1], \"C2\", label=\"Original Trajectory\")\n", "ax.set_aspect(\"equal\")" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-output" - ] - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-cell" + ] + }, + "outputs": [], "source": [ "box = ax.get_position()\n", "ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])\n", @@ -402,16 +421,11 @@ "# Put a legend to the right of the current axis\n", "ax.legend(loc=\"upper left\", bbox_to_anchor=(1, 1))\n", "glue(\"trajectory-comparison-cr3bp\", fig, display=False)" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-cell" - ] - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ ":::{glue:figure} trajectory-comparison-cr3bp\n", ":name: fig:trajectory-comparison-cr3bp\n", @@ -422,50 +436,50 @@ "## Cause of Error\n", "\n", "Now, let's examine {numref}`fig:runge-kutta-jacobi-constant` and {numref}`fig:runge-kutta-small-tolerance` again. There appears to be a structure to the changes in $J$. This gives us a hint that the problem might be related to the physical situation that the tertiary mass finds itself in. Let's plot the distance from the larger mass, given by $\\sigma$, on the same plot as the Jacobi constant." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-output" + ] + }, + "outputs": [], "source": [ "fig, J_ax = plt.subplots(figsize=(6, 4), dpi=96)\n", "Jacobi_plot = J_ax.plot(sol_hp.t, J_hp, label=\"Jacobi Constant\")\n", - "initial_Jacobi = J_ax.axhline(J_hp[0], color='C1', label=\"Initial Jacobi Constant\")\n", + "initial_Jacobi = J_ax.axhline(J_hp[0], color=\"C1\", label=\"Initial Jacobi Constant\")\n", "s_ax = J_ax.twinx()\n", - "sigma_plot = s_ax.plot(sol_hp.t, sigma_hp, 'C2', label=\"$\\sigma$\")\n", + "sigma_plot = s_ax.plot(sol_hp.t, sigma_hp, \"C2\", label=r\"$\\sigma$\")\n", "s_ax.set_ylim(0, 1.15)\n", "J_ax.ticklabel_format(style=\"plain\", useOffset=False)\n", "J_ax.set_xlabel(\"$\\\\tau$\")\n", "J_ax.set_ylabel(\"$J$\")\n", "s_ax.set_ylabel(\"$\\\\sigma$\")" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-output" - ] - } + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "lns = Jacobi_plot + [initial_Jacobi] + sigma_plot\n", - "labs = [l.get_label() for l in lns]\n", - "J_ax.legend(lns, labs, loc=\"best\")\n", - "\n", - "glue(\"jacobi-constant-with-sigma\", fig, display=False)" - ], - "outputs": [], "metadata": { "tags": [ "remove-cell" ] - } + }, + "outputs": [], + "source": [ + "lns = [*Jacobi_plot, initial_Jacobi, *sigma_plot]\n", + "labs = [ll.get_label() for ll in lns]\n", + "J_ax.legend(lns, labs, loc=\"best\")\n", + "\n", + "glue(\"jacobi-constant-with-sigma\", fig, display=False)" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ ":::{glue:figure} jacobi-constant-with-sigma\n", ":name: fig:jacobi-constant-with-sigma\n", @@ -476,12 +490,17 @@ "As you can see in {numref}`fig:jacobi-constant-with-sigma`, the error in the Jacobi constant spikes when the tertiary mass gets closer to the primary mass, $m_1$. This makes a certain amount of sense, because the acceleration terms depend inversely on the cube of $\\sigma$. As the value of $\\sigma$ gets smaller, the error grows.\n", "\n", "This error can be avoided by using a different class of numerical integrators, called [**symplectic integrators**](https://en.wikipedia.org/wiki/Symplectic_integrator). We won't have time to discuss those further right now, though. If you're interested in taking a crack at an implementation, you can find sample code here: , and you will be interested in the **Structure-Preserving Algorithms**." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-cell" + ] + }, + "outputs": [], "source": [ "# Plot the inertial motion\n", "from scipy.spatial.transform import Rotation as R\n", @@ -489,38 +508,32 @@ "theta = sol_hp.t % (2 * np.pi)\n", "rot = R.from_euler(\"z\", theta)\n", "r_abs = rot.apply(r_hp)" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-cell" - ] - } + ] }, { "cell_type": "code", "execution_count": null, - "source": [ - "fig, ax = plt.subplots(figsize=(5, 5), dpi=96)\n", - "ax.plot(r_abs[:, 0], r_abs[:, 1], 'r')\n", - "ax.plot(np.hstack((x_2, x_2[::-1])), np.hstack((y_2, -y_2[::-1])))\n", - "ax.plot(-pi_2, 0, 'bo')\n", - "ax.plot(1 - pi_2, 0, 'go')\n", - "ax.plot(x_0, y_0, 'ro')" - ], - "outputs": [], "metadata": { "tags": [ "remove-cell" ] - } + }, + "outputs": [], + "source": [ + "fig, ax = plt.subplots(figsize=(5, 5), dpi=96)\n", + "ax.plot(r_abs[:, 0], r_abs[:, 1], \"r\")\n", + "ax.plot(np.hstack((x_2, x_2[::-1])), np.hstack((y_2, -y_2[::-1])))\n", + "ax.plot(-pi_2, 0, \"bo\")\n", + "ax.plot(1 - pi_2, 0, \"go\")\n", + "ax.plot(x_0, y_0, \"ro\")" + ] }, { "cell_type": "code", "execution_count": null, - "source": [], + "metadata": {}, "outputs": [], - "metadata": {} + "source": [] } ], "metadata": { @@ -539,9 +552,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.6" + "version": "3.12.2" } }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/the-n-body-problem/Lagrange-points-example.ipynb b/the-n-body-problem/Lagrange-points-example.ipynb index 2601e1c0..5dd785b0 100644 --- a/the-n-body-problem/Lagrange-points-example.ipynb +++ b/the-n-body-problem/Lagrange-points-example.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "metadata": {}, "source": [ "# Example: Plotting Lagrange Points\n", "\n", @@ -43,42 +44,43 @@ " * MATLAB (`fzero`): `[-1, -1.5]`\n", "\n", "For some reason, the `fzero()` in MATLAB seems much more sensitive to the initial guess value, and if you only provide a single value for the initial guess, it chooses a positive value as the second part of the interval. Thus, if the root is below your initial guess the MATLAB solver will not be able to find it." - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Python\n", "\n", "First, we will demonstrate the Python solver. Like for the `solve_ivp` function, we need to define a function that returns a value given the single input `xstar`. Python is flexible enough to allow us to define `pi_2` as another parameter." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": 1, + "metadata": {}, + "outputs": [], "source": [ "# %matplotlib notebook\n", - "from scipy.optimize import newton\n", - "import numpy as np\n", + "import matplotlib.path as mpath\n", "import matplotlib.pyplot as plt\n", - "import matplotlib.path as mpath" - ], - "outputs": [], - "metadata": {} + "import numpy as np\n", + "from scipy.optimize import newton" + ] }, { "cell_type": "code", "execution_count": 7, - "source": [ - "from myst_nb import glue" - ], + "metadata": { + "tags": [ + "remove-cell" + ] + }, "outputs": [ { - "output_type": "error", "ename": "ModuleNotFoundError", "evalue": "No module named 'myst_nb'", + "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", @@ -87,49 +89,51 @@ ] } ], - "metadata": { - "tags": [ - "remove-cell" - ] - } + "source": [ + "from myst_nb import glue" + ] }, { "cell_type": "code", "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "# This code defines a nice shape for the center of mass of the system.\n", "circle = mpath.Path.unit_circle()\n", "wedge_1 = mpath.Path.wedge(90, 180)\n", "wedge_2 = mpath.Path.wedge(270, 0)\n", "\n", - "verts = np.concatenate([circle.vertices, wedge_1.vertices[::-1, ...], wedge_2.vertices[::-1, ...]])\n", + "verts = np.concatenate(\n", + " [circle.vertices, wedge_1.vertices[::-1, ...], wedge_2.vertices[::-1, ...]]\n", + ")\n", "codes = np.concatenate([circle.codes, wedge_1.codes, wedge_2.codes])\n", "center_of_mass = mpath.Path(verts, codes)" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": 3, + "metadata": {}, + "outputs": [], "source": [ "# These masses represent the Earth-Moon system\n", - "m_1 = 5.974E24 # kg\n", - "m_2 = 7.348E22 # kg\n", - "pi_2 = m_2/(m_1 + m_2)\n", + "m_1 = 5.974e24 # kg\n", + "m_2 = 7.348e22 # kg\n", + "pi_2 = m_2 / (m_1 + m_2)\n", "\n", "# These give us the coordinates of the orbits of m_2 and m_1\n", "x_2 = (1 - pi_2) * np.cos(np.linspace(0, np.pi, 100))\n", "y_2 = (1 - pi_2) * np.sin(np.linspace(0, np.pi, 100))\n", "x_1 = (-pi_2) * np.cos(np.linspace(0, np.pi, 100))\n", "y_1 = (-pi_2) * np.sin(np.linspace(0, np.pi, 100))" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": 4, + "metadata": {}, + "outputs": [], "source": [ "def collinear_lagrange(xstar, pi_2):\n", " \"\"\"Calculate the resultant of the collinear Lagrange point equation.\n", @@ -139,18 +143,18 @@ " scipy.optimize.newton (or another Newton solver) to find a value for xstar\n", " that satsifies the equation, for a given value of pi_2.\n", "\n", - " The solver will try different values of xstar until the return value is equal to zero.\n", + " The solver will try different values of xstar until the return value is equal to\n", + " zero.\n", " \"\"\"\n", " first_term = xstar\n", - " second_term = (1 - pi_2) / np.abs(xstar + pi_2)**3 * (xstar + pi_2)\n", - " third_term = pi_2 / np.abs(xstar - 1 + pi_2)**3 * (xstar - 1 + pi_2)\n", + " second_term = (1 - pi_2) / np.abs(xstar + pi_2) ** 3 * (xstar + pi_2)\n", + " third_term = pi_2 / np.abs(xstar - 1 + pi_2) ** 3 * (xstar - 1 + pi_2)\n", " return first_term - second_term - third_term" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Then we need to pass this to the Newton solver. The function signature is:\n", "\n", @@ -159,75 +163,55 @@ "```\n", "\n", "where `func` is the function to be solved, `x0` is the initial guess, and `args` is a tuple of additional arguments to pass to `func`." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": 8, - "source": [ - "L_2 = newton(func=collinear_lagrange, x0=1, args=(pi_2,))\n", - "L_1 = newton(func=collinear_lagrange, x0=0, args=(pi_2,))\n", - "L_3 = newton(func=collinear_lagrange, x0=-1, args=(pi_2,))\n", - "print(f\"{L_1=}, {L_2=}, {L_3=}\")" - ], + "metadata": {}, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "L_1=0.8369154703225321, L_2=1.1556818961296604, L_3=-1.0050626166357435\n" ] } ], - "metadata": {} + "source": [ + "L_2 = newton(func=collinear_lagrange, x0=1, args=(pi_2,))\n", + "L_1 = newton(func=collinear_lagrange, x0=0, args=(pi_2,))\n", + "L_3 = newton(func=collinear_lagrange, x0=-1, args=(pi_2,))\n", + "print(f\"{L_1=}, {L_2=}, {L_3=}\")" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "Remember, these are in nondimensional coordinates. We can then plot the Lagrange points relative to $m_1$ and $m_2$ in the rotating frame of reference." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": 14, - "source": [ - "fig, ax = plt.subplots(figsize=(5,5), dpi=96)\n", - "ax.set_xlabel(\"$x^*$\")\n", - "ax.set_ylabel(\"$y^*$\")\n", - "\n", - "# Plot the orbits\n", - "ax.axhline(0, color='k')\n", - "ax.plot(np.hstack((x_2, x_2[::-1])), np.hstack((y_2, -y_2[::-1])))\n", - "ax.plot(np.hstack((x_1, x_1[::-1])), np.hstack((y_1, -y_1[::-1])))\n", - "ax.plot([-pi_2, 0.5 - pi_2, 1 - pi_2, 0.5 - pi_2, -pi_2], [0, np.sqrt(3)/2, 0, -np.sqrt(3)/2, 0], 'k', ls=\"--\", lw=1)\n", - "\n", - "# Plot the Lagrange Points and masses\n", - "ax.plot(L_1, 0, 'rv', label=\"$L_1$\")\n", - "ax.plot(L_2, 0, 'r^', label=\"$L_2$\")\n", - "ax.plot(L_3, 0, 'rp', label=\"$L_3$\")\n", - "ax.plot(0.5 - pi_2, np.sqrt(3)/2, 'rX', label=\"$L_4$\")\n", - "ax.plot(0.5 - pi_2, -np.sqrt(3)/2, 'rs', label=\"$L_5$\")\n", - "ax.plot(0, 0, 'k', marker=center_of_mass, markersize=10)\n", - "ax.plot(-pi_2, 0, 'bo', label=\"$m_1$\")\n", - "ax.plot(1 - pi_2, 0, 'go', label=\"$m_2$\")\n", - "ax.legend()\n", - "ax.set_aspect(\"equal\")" - ], + "metadata": { + "tags": [ + "remove-output" + ] + }, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "" ] }, + "execution_count": 14, "metadata": {}, - "execution_count": 14 + "output_type": "execute_result" }, { - "output_type": "display_data", "data": { "image/png": "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", "text/plain": [ @@ -236,18 +220,49 @@ }, "metadata": { "needs_background": "light" - } + }, + "output_type": "display_data" } ], - "metadata": { - "tags": [ - "remove-output" - ] - } + "source": [ + "fig, ax = plt.subplots(figsize=(5, 5), dpi=96)\n", + "ax.set_xlabel(\"$x^*$\")\n", + "ax.set_ylabel(\"$y^*$\")\n", + "\n", + "# Plot the orbits\n", + "ax.axhline(0, color=\"k\")\n", + "ax.plot(np.hstack((x_2, x_2[::-1])), np.hstack((y_2, -y_2[::-1])))\n", + "ax.plot(np.hstack((x_1, x_1[::-1])), np.hstack((y_1, -y_1[::-1])))\n", + "ax.plot(\n", + " [-pi_2, 0.5 - pi_2, 1 - pi_2, 0.5 - pi_2, -pi_2],\n", + " [0, np.sqrt(3) / 2, 0, -np.sqrt(3) / 2, 0],\n", + " \"k\",\n", + " ls=\"--\",\n", + " lw=1,\n", + ")\n", + "\n", + "# Plot the Lagrange Points and masses\n", + "ax.plot(L_1, 0, \"rv\", label=\"$L_1$\")\n", + "ax.plot(L_2, 0, \"r^\", label=\"$L_2$\")\n", + "ax.plot(L_3, 0, \"rp\", label=\"$L_3$\")\n", + "ax.plot(0.5 - pi_2, np.sqrt(3) / 2, \"rX\", label=\"$L_4$\")\n", + "ax.plot(0.5 - pi_2, -np.sqrt(3) / 2, \"rs\", label=\"$L_5$\")\n", + "ax.plot(0, 0, \"k\", marker=center_of_mass, markersize=10)\n", + "ax.plot(-pi_2, 0, \"bo\", label=\"$m_1$\")\n", + "ax.plot(1 - pi_2, 0, \"go\", label=\"$m_2$\")\n", + "ax.legend()\n", + "ax.set_aspect(\"equal\")" + ] }, { "cell_type": "code", "execution_count": null, + "metadata": { + "tags": [ + "remove-input" + ] + }, + "outputs": [], "source": [ "box = ax.get_position()\n", "ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])\n", @@ -255,27 +270,22 @@ "# Put a legend to the right of the current axis\n", "ax.legend(loc=\"upper left\", bbox_to_anchor=(1, 1))\n", "glue(\"lagrange-points-earth-moon\", fig, display=False)" - ], - "outputs": [], - "metadata": { - "tags": [ - "remove-input" - ] - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ ":::{glue:figure} lagrange-points-earth-moon\n", ":name: fig:lagrange-points-earth-moon\n", "\n", "The location of the Lagrange points in the Earth-Moon system, shown in non-dimensional coordinates.\n", ":::" - ], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## Matlab\n", "\n", @@ -288,15 +298,14 @@ "Notice that to find $L_1$ in Matlab, we had to use the initial guess range from 0.01 to 0.97. Matlab is more sensitive to the initial guess, so you need to make sure that the root is within the initial guess you choose. The `collinear_lagrange` function is discontinuous around 0 and 1.0, so you need to choose your limits carefully.\n", "\n", "It may help to plot the function for a given problem. To do so, within the script, add the line `fplot(@collinear_lagrange)` to show a plot of the function." - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": null, - "source": [], + "metadata": {}, "outputs": [], - "metadata": {} + "source": [] } ], "metadata": { @@ -323,4 +332,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/the-n-body-problem/circular-restricted-three-body-problem.md b/the-n-body-problem/circular-restricted-three-body-problem.md index 89820c11..0c54141e 100644 --- a/the-n-body-problem/circular-restricted-three-body-problem.md +++ b/the-n-body-problem/circular-restricted-three-body-problem.md @@ -255,9 +255,9 @@ The characteristic length is the circular orbit radius, $r_{12}$. Using this, we :::{math} :label: eq:non-dim-r-vectors-cr3bp \begin{aligned} - \vector{\rho} &= \frac{\vector{r}}{r_{12}} = x^*\uvec{\imath} + y^*\uvec{\jmath} + z^*\uvec{k} \\ - \vector{\sigma} &= \frac{\vector{r}_1}{r_{12}} = \left(x^* + \pi_2\right)\uvec{\imath} + y^*\uvec{\jmath} + z^*\uvec{k} \\ - \vector{\psi} &= \frac{\vector{r}_2}{r_{12}} = \left(x^* - 1 + \pi_2\right)\uvec{\imath} + y^*\uvec{\jmath} + z^*\uvec{k} + \vector{\rho} &= \frac{\vector{r}}{r_{12}} = x^_\uvec{\imath} + y^_\uvec{\jmath} + z^_\uvec{k} \\ + \vector{\sigma} &= \frac{\vector{r}_1}{r_{12}} = \left(x^_ + \pi_2\right)\uvec{\imath} + y^_\uvec{\jmath} + z^_\uvec{k} \\ + \vector{\psi} &= \frac{\vector{r}_2}{r_{12}} = \left(x^* - 1 + \pi_2\right)\uvec{\imath} + y^_\uvec{\jmath} + z^_\uvec{k} \end{aligned} ::: @@ -281,7 +281,7 @@ where $\tau = t/t_C$. Making the terms on the right hand side of Eq. {eq}`eq:fiv :::{math} :label: eq:non-dim-five-term-accel-cr3bp -\ddot{\vector{\rho}} = \left(\ddot{x}^* - 2\dot{y}^* - x^*\right)\uvec{\imath} + \left(\ddot{y}^* + 2\dot{x}^* - y^*\right)\uvec{\jmath} + \ddot{z}^*\uvec{k} +\ddot{\vector{\rho}} = \left(\ddot{x}^* - 2\dot{y}^* - x^_\right)\uvec{\imath} + \left(\ddot{y}^_ + 2\dot{x}^* - y^_\right)\uvec{\jmath} + \ddot{z}^_\uvec{k} ::: Now we have the non-dimensional inertial acceleration, we need to make Eq. {eq}`eq:vector-eom-cr3bp`, the equation of motion, non-dimensional. After a bunch of algebra, not shown here, we end up with: diff --git a/the-n-body-problem/jacobi-constant.md b/the-n-body-problem/jacobi-constant.md index 03bb5911..c88d3631 100644 --- a/the-n-body-problem/jacobi-constant.md +++ b/the-n-body-problem/jacobi-constant.md @@ -187,7 +187,7 @@ The forbidden regions in the Earth-Moon system, for varying values of the Jacobi At a given instant, assume that the position and and velocity of the satellite are known, such that $J$ can be calculated. {numref}`fig:jacobi-forbidden-regions` tells us what regions of space a satellite can access purely by exchanging kinetic and potential energy. -One example of a use for these data is to determine whether or not a spacecraft can complete a [**free return trajectory**](https://en.wikipedia.org/wiki/Free-return_trajectory) from the moon back to Earth. A free return trajectory requires no additional propulsion. Depending on the exact trajectory, the return can result in the spacecraft entering Earth's atmosphere for a safe landing, as was done in the _Apollo 13_ mission. +One example of a use for these data is to determine whether or not a spacecraft can complete a [**free return trajectory**](https://en.wikipedia.org/wiki/Free-return_trajectory) from the moon back to Earth. A free return trajectory requires no additional propulsion. Depending on the exact trajectory, the return can result in the spacecraft entering Earth's atmosphere for a safe landing, as was done in the *Apollo 13* mission. Imagine a spacecraft in orbit around the moon. The spacecraft has $J =$ -1.797, corresponding to the upper left axis in {numref}`fig:jacobi-forbidden-regions`. With this value of $J$, the spacecraft cannot leave orbit around the moon, because it does not have enough energy to enter any of the gray areas. diff --git a/the-n-body-problem/lagrange-points.md b/the-n-body-problem/lagrange-points.md index 5b735535..5fcf930e 100644 --- a/the-n-body-problem/lagrange-points.md +++ b/the-n-body-problem/lagrange-points.md @@ -80,7 +80,7 @@ Then we can use the definition of $\psi$ to find $r_2$ in dimensional coordinate :::{math} :label: eq:r_2-equilateral-lagrange -\psi = \frac{\mag{\vector{r}_2}}{r_{12}} \Rightarrow r_2 = r_{12} +\psi = \frac{\mag{\vector{r}*2}}{r*{12}} \Rightarrow r_2 = r_{12} ::: Plugging the result of Eq. {eq}`eq:psi-equilateral-lagrange` back into Eq. {eq}`eq:y-star-equilateral-lagrange` equation, we find: @@ -94,7 +94,7 @@ Then we can use the definition of $\sigma$ to find $r_1$ in dimensional coordina :::{math} :label: eq:r_1-equilateral-lagrange -\sigma = \frac{\mag{\vector{r}_1}}{r_{12}} \Rightarrow r_1 = r_{12} +\sigma = \frac{\mag{\vector{r}*1}}{r*{12}} \Rightarrow r_1 = r_{12} ::: Since if $a = b$ and $b = c$, then $a = c$, we find: @@ -104,7 +104,7 @@ Since if $a = b$ and $b = c$, then $a = c$, we find: r_1 = r_2 = r_{12}\qquad \text{and}\qquad \psi = \sigma ::: -for the _equilateral Lagrange points_. Eq. {eq}`eq:equilateral-lagrange-distances` shows that the distance from $m_1$ to $m$ is the same as the distance from $m_2$ to $m$ and from $m_1$ to $m_2$. This defines an equilateral triangle, giving these Lagrange points their name. +for the *equilateral Lagrange points*. Eq. {eq}`eq:equilateral-lagrange-distances` shows that the distance from $m_1$ to $m$ is the same as the distance from $m_2$ to $m$ and from $m_1$ to $m_2$. This defines an equilateral triangle, giving these Lagrange points their name. From the definition of $\vector{\sigma}$ and $\vector{\psi}$, we can take their magnitudes and equate them to solve for the values of $x^*$ and $y^{*}$ at the equilibrium points: @@ -335,7 +335,7 @@ For the Earth-Moon system, the value of $\pi_2$ is approximately 0.012. ## Lagrange Point Stability -Although all the Lagrange points are equilibrium points, they may not be _stable_ equilibrium points. Stability is the ability of the system to return to its initial position after being perturbed. +Although all the Lagrange points are equilibrium points, they may not be *stable* equilibrium points. Stability is the ability of the system to return to its initial position after being perturbed. To analyze the stability of the Lagrange points, we will use the potential energy function for the CR3BP. diff --git a/the-n-body-problem/scripts/two-body-inertial-numerical-solution.py b/the-n-body-problem/scripts/two-body-inertial-numerical-solution.py index 66128a8f..29b66c2e 100644 --- a/the-n-body-problem/scripts/two-body-inertial-numerical-solution.py +++ b/the-n-body-problem/scripts/two-body-inertial-numerical-solution.py @@ -21,19 +21,19 @@ r = np.sqrt((X_2 - X_1) ** 2 + (Y_2 - Y_1) ** 2 + (Z_2 - Z_1) ** 2) -ddotX_1 = G * m_2 * (X_2 - X_1) / r ** 3 -ddotY_1 = G * m_2 * (Y_2 - Y_1) / r ** 3 -ddotZ_1 = G * m_2 * (Z_2 - Z_1) / r ** 3 -ddotX_2 = -G * m_1 * (X_2 - X_1) / r ** 3 -ddotY_2 = -G * m_1 * (Y_2 - Y_1) / r ** 3 -ddotZ_2 = -G * m_1 * (Z_2 - Z_1) / r ** 3 +ddotX_1 = G * m_2 * (X_2 - X_1) / r**3 +ddotY_1 = G * m_2 * (Y_2 - Y_1) / r**3 +ddotZ_1 = G * m_2 * (Z_2 - Z_1) / r**3 +ddotX_2 = -G * m_1 * (X_2 - X_1) / r**3 +ddotY_2 = -G * m_1 * (Y_2 - Y_1) / r**3 +ddotZ_2 = -G * m_1 * (Z_2 - Z_1) / r**3 # [section-3] R_1 = y_0[:3] R_2 = y_0[3:6] r = np.sqrt(np.sum(np.square(R_2 - R_1))) -ddot = G * (R_2 - R_1) / r ** 3 +ddot = G * (R_2 - R_1) / r**3 ddotR_1_0 = m_2 * ddot ddotR_2_0 = -m_1 * ddot @@ -46,9 +46,8 @@ R_2_1 = dotR_2_0 * Delta_t + R_2_0 # [section-5] -from scipy.integrate import solve_ivp import matplotlib.pyplot as plt -from mpl_toolkits.mplot3d import Axes3D +from scipy.integrate import solve_ivp # [section-6] @@ -76,7 +75,7 @@ def absolute_motion(t, y): # Calculate the acceleration terms and fill them in to the rest # of the derivative array r = np.sqrt(np.sum(np.square(R_2 - R_1))) - ddot = G * (R_2 - R_1) / r ** 3 + ddot = G * (R_2 - R_1) / r**3 ddotR_1 = m_2 * ddot ddotR_2 = -m_1 * ddot diff --git a/the-n-body-problem/scripts/two-body-relative-numerical-solution.py b/the-n-body-problem/scripts/two-body-relative-numerical-solution.py index 219ffeff..b8c95850 100644 --- a/the-n-body-problem/scripts/two-body-relative-numerical-solution.py +++ b/the-n-body-problem/scripts/two-body-relative-numerical-solution.py @@ -1,8 +1,8 @@ # [section-1] -from scipy.integrate import solve_ivp -import numpy as np import matplotlib.pyplot as plt +import numpy as np from mpl_toolkits.mplot3d import Axes3D # noqa: F401, needed for 3d plots +from scipy.integrate import solve_ivp # [section-2] G = 6.67430e-20 # km**3/(kg * s**2) @@ -34,7 +34,7 @@ def relative_motion(t, Y): # Calculate the accelerations r = np.sqrt(np.sum(np.square(r_vec))) - a_vec = -mu * r_vec / r ** 3 + a_vec = -mu * r_vec / r**3 Ydot[3:] = a_vec return Ydot diff --git a/the-n-body-problem/scripts/two-body-relative.npz b/the-n-body-problem/scripts/two-body-relative.npz index cfce8d897d5d232fddf0c1116d194bf405dc556b..24cf6c1afe5d3b7a06868bfc566c457953be7d5c 100644 GIT binary patch delta 119 zcmdmTka5dFMyUXAW)@ur2vB73TKM1mKNM_~N{kajNLg((O@m2Io*1_lNy@o*(=51D dNc>u6U1r_MEC~i++C0GoOxwqcPi{@n2LJ`$E~)?k delta 98 zcmdmTka5dFMyUXAW)=|!2vB73TKM1GA&!9ogf~hh#)%=MtTvjabpX|Y@Z^bcYZ*l* d=Ou_w4vSySEW#`@nI*vhOq(Z|fa$yhHvluQ77G9X diff --git a/the-orbit-equation/hyperbolic_trajectory.py b/the-orbit-equation/hyperbolic_trajectory.py index 324fb4f8..6edd2377 100644 --- a/the-orbit-equation/hyperbolic_trajectory.py +++ b/the-orbit-equation/hyperbolic_trajectory.py @@ -1,6 +1,6 @@ -import numpy as np -import matplotlib.pyplot as plt import matplotlib.animation as animation +import matplotlib.pyplot as plt +import numpy as np plt.ioff() @@ -30,13 +30,13 @@ def plot_figure(): e = 1.1 theta_inf = np.arccos(-1 / e) a = 1 - b = a * np.sqrt(e ** 2 - 1) + b = a * np.sqrt(e**2 - 1) r_p = a * (e - 1) (m1,) = ax.plot(-a - r_p, 0, "ko") x = np.linspace(a, 2 * a, 1000) - y = b / a * np.sqrt(x ** 2 - a ** 2) + y = b / a * np.sqrt(x**2 - a**2) (r_pos,) = ax.plot(x, y, color="C0") (r_neg,) = ax.plot(x, -y, color="C0") (l_neg,) = ax.plot(-x, -y, color="C1") @@ -58,7 +58,7 @@ def init(): return (r_pos, r_neg, l_neg, l_pos, ann_2, ann_3, ann_4, m1, point, ann) def animate(t): - r = a * (e ** 2 - 1) / (1 + e * np.cos(t)) + r = a * (e**2 - 1) / (1 + e * np.cos(t)) point.set_data(-a - r_p + r * np.cos(t), r * np.sin(t)) ann.set_text(rf"$\nu$ = {np.degrees(t):.2F}°") return (point, ann) diff --git a/the-orbit-equation/orbital-nomenclature.md b/the-orbit-equation/orbital-nomenclature.md index 35e16c61..b02aecc5 100644 --- a/the-orbit-equation/orbital-nomenclature.md +++ b/the-orbit-equation/orbital-nomenclature.md @@ -40,7 +40,7 @@ For circular orbits, we usually pick the apse line to be along the $x$-axis and A parabolic trajectory, $e = 1$ ::: -The parabolic trajectory has eccentricity $e = 1$. The parabolic trajectory extends to infinity towards the left of the domain. It is the limiting case where an object on a parabolic trajectory will never return to the primary mass. Thus, it is called a _trajectory_ rather than _orbit_ since it is not periodic. +The parabolic trajectory has eccentricity $e = 1$. The parabolic trajectory extends to infinity towards the left of the domain. It is the limiting case where an object on a parabolic trajectory will never return to the primary mass. Thus, it is called a *trajectory* rather than *orbit* since it is not periodic. The parabolic trajectory has a periapsis, a point of closest approach, but no apoapsis, since the trajectory extends to infinity. :::: diff --git a/time-since-periapsis-and-keplers-equation/time-since-periapsis.md b/time-since-periapsis-and-keplers-equation/time-since-periapsis.md index 7346013f..bf8622c0 100644 --- a/time-since-periapsis-and-keplers-equation/time-since-periapsis.md +++ b/time-since-periapsis-and-keplers-equation/time-since-periapsis.md @@ -217,6 +217,7 @@ The true, mean, and eccentric anomalies for an elliptical orbit. The true anomal ::: (sec:time-since-periapsis-solution-procedures)= + ## Solution Procedures There are now two cases that we want to consider: