diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 4b255c0e28..d4c7195975 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -17,8 +17,6 @@ Closes # (if applicable). ## Checklist - - - [ ] I tested my contribution locally and it works as intended. - [ ] Code and workflow changes are sufficiently documented. - [ ] Changed dependencies are added to `pixi.toml` (using `pixi add `). @@ -26,7 +24,7 @@ Closes # (if applicable). - [ ] Changes in configuration options are documented in `doc/configtables/*.csv`. - [ ] Changes in configuration options are added in `config/test/*.yaml`. - [ ] Open-TYNDP SPDX license header added to all touched files. -- [ ] Sources of newly added data are documented in `doc/data_sources.rst`. +- [ ] For new data sources or versions, [these instructions](https://pypsa-eur.readthedocs.io/en/latest/data_sources.html) have been followed. - [ ] New rules are documented in the appropriate `doc/*.rst` files. - [ ] A release note `doc/release_notes.rst` is added. - [ ] Major features are documented with up-to-date information in `README` and `doc/index.rst`. diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a39f915ac6..6908510210 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -30,6 +30,23 @@ jobs: shell: bash -l {0} steps: + - uses: actions/checkout@v6 + + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + src: + - 'scripts/**' + - 'rules/**' + - 'data/**' + - 'Snakefile' + - 'config/**' + - 'test/**' + - 'pixi.toml' + - 'pixi.lock' + - '.github/workflows/test.yaml' + - name: Free up disk space run: | echo "Initial disk space" @@ -40,10 +57,12 @@ jobs: sudo docker builder prune -a --force echo "Final disk space" df -h - - - uses: actions/checkout@v6 + - name: Skip - no source changes + if: steps.filter.outputs.src != 'true' && github.event_name != 'schedule' + run: echo "Skipping tests because no source code changes detected" - name: Setup Pixi + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' uses: prefix-dev/setup-pixi@v0.9.3 with: pixi-version: v0.59.0 @@ -53,22 +72,30 @@ jobs: environments: open-tyndp - name: Setup cache keys + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' run: | echo "WEEK=$(date +'%Y%U')" >> $GITHUB_ENV # data and cutouts - - uses: actions/cache@v4 + - uses: actions/cache@v5 + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' with: path: | data cutouts key: data-cutouts-${{ env.WEEK }} + - name: Restore git-tracked files in data/ + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' + run: git checkout HEAD -- data/ + - name: Run pylint check on scripts + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' # check for undefined variables to reuse functions across scripts run: | pixi run pylint --disable=all --enable=E0601,E0606 --output-format=parseable scripts/add_* scripts/prepare_* scripts/solve_* - name: Run snakemake test workflows (sb) + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' env: SNAKEMAKE_STORAGE_CACHED_HTTP_CACHE: "" SNAKEMAKE_STORAGE_CACHED_HTTP_SKIP_REMOTE_CHECKS: "1" @@ -76,6 +103,7 @@ jobs: pixi run -e open-tyndp tyndp-sb-test - name: Run snakemake test workflows (cba) + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' env: SNAKEMAKE_STORAGE_CACHED_HTTP_CACHE: "" SNAKEMAKE_STORAGE_CACHED_HTTP_SKIP_REMOTE_CHECKS: "1" @@ -83,6 +111,7 @@ jobs: pixi run -e open-tyndp tyndp-cba-test - name: Run snakemake test workflows (upstream) + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' env: SNAKEMAKE_STORAGE_CACHED_HTTP_CACHE: "" SNAKEMAKE_STORAGE_CACHED_HTTP_SKIP_REMOTE_CHECKS: "1" @@ -90,12 +119,13 @@ jobs: pixi run -e open-tyndp integration-tests - name: Run unit tests + if: steps.filter.outputs.src == 'true' || github.event_name == 'schedule' run: | pixi run -e open-tyndp unit-tests - name: Upload artifacts if: always() - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: results-${{ matrix.os }} path: | diff --git a/.github/workflows/update-lockfile.yaml b/.github/workflows/update-lockfile.yaml index f249f94804..a719387900 100644 --- a/.github/workflows/update-lockfile.yaml +++ b/.github/workflows/update-lockfile.yaml @@ -44,7 +44,7 @@ jobs: pixi workspace export conda-environment -e default envs/environment.yaml -n pypsa-eur - name: Upload artifacts - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: lockfiles path: | @@ -75,12 +75,12 @@ jobs: steps: - uses: actions/checkout@v6 - name: Download all artifacts - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: name: lockfiles - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 with: token: ${{ secrets.GITHUB_TOKEN }} branch: update-locked-environment diff --git a/.gitignore b/.gitignore index dadac410fc..ed57276761 100644 --- a/.gitignore +++ b/.gitignore @@ -5,9 +5,12 @@ master +.env + .snakemake* .ipynb_checkpoints __pycache__ +*.egg-info *dconf gurobi.log .vscode @@ -37,7 +40,6 @@ config/config.yaml config/scenarios.yaml config/config.private.yaml -dconf /data/links_p_nom.csv /data/*totals.csv /data/biomass* @@ -50,7 +52,6 @@ dconf /data/transport_data.csv /data/.nfs* /data/retro/* -/data/bundle/nuts* data/gas_network/scigrid-gas/ data/costs_*.csv !/data/custom_costs.csv diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cae11f402e..f045be4c0b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,7 +17,7 @@ repos: # Run ruff to lint and format - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.13.3 + rev: v0.14.10 hooks: # Run the linter. - id: ruff @@ -58,7 +58,7 @@ repos: # Check for FSFE REUSE compliance (licensing) - repo: https://github.com/fsfe/reuse-tool - rev: v6.0.0 + rev: v6.2.0 hooks: - id: reuse-lint-file diff --git a/LICENSES/CC-BY-SA-4.0.txt b/LICENSES/CC-BY-SA-4.0.txt new file mode 100644 index 0000000000..835a6836b3 --- /dev/null +++ b/LICENSES/CC-BY-SA-4.0.txt @@ -0,0 +1,170 @@ +Creative Commons Attribution-ShareAlike 4.0 International + + Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + +Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. + +Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. + +Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. + +Creative Commons Attribution-ShareAlike 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + + e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + + i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights under this Public License. + + k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + + 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + + 5. Downstream recipients. + + A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + + B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply. + + C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + + 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this Public License. + + 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified form), You must: + + A. retain the following if it is supplied by the Licensor with the Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + + 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + + b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply. + + 1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; + + b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + + b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + + a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + + c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + + d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 – Interpretation. + + a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + + c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + + d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/REUSE.toml b/REUSE.toml index 46b8113f0e..87215ddf88 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -6,11 +6,11 @@ SPDX-PackageDownloadLocation = "https://github.com/open-energy-transition/open-t [[annotations]] path = [ - "data/**", "doc/configtables/*", - "doc/data.csv", + "doc/data_inventory.csv", "doc/img/*", "test/test_data/*", + "data/versions.csv", ] SPDX-FileCopyrightText = [ "The Open-TYNDP Authors", @@ -57,3 +57,105 @@ path = [ ] SPDX-FileCopyrightText = "Copyright (c) 2025 Open Energy Transition gGmbH" SPDX-License-Identifier = "LicenseRef-AllRightsReserved" + + +# Make sure to keep in sync with: https://pypsa-eur.readthedocs.io/en/latest/data-repos.html + +[[annotations]] +path = [ + "data/agg_p_nom_minmax.csv", + "data/ammonia_plants.csv", + "data/ch_industrial_production_per_subsector.csv", + "data/district_heat_share.csv", + "data/entsoegridkit/*", + "data/heat_load_profile_BDEW.csv", + "data/hydro_capacities.csv", + "data/links_p_nom.csv", + "data/parameter_corrections.yaml", + "data/retro/window_assumptions.csv", + "data/retro/retro_cost_germany.csv", + "data/switzerland-new_format-all_years.csv", + "data/transmission_projects/**", + "data/unit_commitment.csv", + "data/custom_costs.csv", +] +SPDX-FileCopyrightText = "The PyPSA-Eur Authors" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/custom_powerplants.csv", +] +SPDX-FileCopyrightText = "The PyPSA-Eur Authors" +SPDX-License-Identifier = "CC0-1.0" + +[[annotations]] +path = [ + "data/retro/comparative_level_investments.csv", + "data/retro/electricity_taxes_eu.csv", + "data/retro/comparative_level_investment.csv", +] +SPDX-FileCopyrightText = "eurostat" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/retro/floor_area_missing.csv", + "data/retro/u_values_poland.csv", + "data/existing_infrastructure/existing_heating_raw.csv", +] +SPDX-FileCopyrightText = "European Commission, Directorate-General for Energy (DG ENER)" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/retro/data_building_stock.csv", +] +SPDX-FileCopyrightText = "Simon Pezzutto" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/refineries-noneu.csv", + "data/eia_hydro_annual_capacity.csv", + "data/eia_hydro_annual_generation.csv", +] +SPDX-FileCopyrightText = "Energy Information Agency (EIA)" +SPDX-License-Identifier = "CC0-1.0" + +[[annotations]] +path = [ + "data/nuclear_p_max_pu.csv", +] +SPDX-FileCopyrightText = "International Atomic Energy Agency (IAEA)" +SPDX-License-Identifier = "CC-BY-4.0" + + +[[annotations]] +path = [ + "data/cement-plants-noneu.csv", +] +SPDX-FileCopyrightText = "United States Geological Survey (USGS)" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/biomass_transport_costs_supplychain1.csv", + "data/biomass_transport_costs_supplychain2.csv", +] +SPDX-FileCopyrightText = "European Commission, Joint Research Centre (JRC)" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/egs_costs.json", +] +SPDX-FileCopyrightText = "Arman Aghahosseini and Christian Breyer" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "data/ch_cantons.csv", +] +SPDX-FileCopyrightText = "Wikipedia contributors" +SPDX-License-Identifier = "CC-BY-SA-4.0" diff --git a/Snakefile b/Snakefile index 24e4ab3c9e..24d96597c2 100644 --- a/Snakefile +++ b/Snakefile @@ -14,10 +14,10 @@ from snakemake.utils import min_version min_version("8.11") from scripts._helpers import ( - path_provider, - get_scenarios, get_rdir, + get_scenarios, get_shadow, + path_provider, ) @@ -42,8 +42,6 @@ logs = path_provider("logs/", RDIR, shared_resources, exclude_from_shared) benchmarks = path_provider("benchmarks/", RDIR, shared_resources, exclude_from_shared) resources = path_provider("resources/", RDIR, shared_resources, exclude_from_shared) -cutout_dir = config["atlite"]["cutout_directory"] -CDIR = Path(cutout_dir).joinpath("" if run["shared_cutouts"] else RDIR) RESULTS = "results/" + RDIR @@ -59,6 +57,12 @@ wildcard_constraints: include: "rules/common.smk" + + +# Data constants +OSM_DATASET = dataset_version("osm") + + include: "rules/collect.smk" include: "rules/retrieve.smk" include: "rules/build_electricity.smk" @@ -67,8 +71,12 @@ include: "rules/solve_electricity.smk" include: "rules/postprocess.smk" include: "rules/development.smk" include: "rules/report.smk" -include: "rules/cba.smk" -include: "rules/sb.smk" + + +if config["tyndp_scenario"]: + + include: "rules/cba.smk" + include: "rules/sb.smk" if config["foresight"] == "overnight": @@ -90,7 +98,9 @@ if config["foresight"] == "perfect": def input_all_tyndp(w): files = [] - if config_provider("sector", "H2_network")(w): + if config_provider("tyndp_scenario")(w) and config_provider("sector", "H2_network")( + w + ): files.extend( expand( ( @@ -150,7 +160,7 @@ rule all: ), expand( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-costs-all_{planning_horizons}.pdf", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-costs-all_{planning_horizons}.pdf", run=config["run"]["name"], **config["scenario"], ), @@ -163,7 +173,7 @@ rule all: lambda w: expand( ( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-h2_network_{planning_horizons}.pdf" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-h2_network_{planning_horizons}.pdf" if config_provider("sector", "H2_network")(w) else [] ), @@ -173,7 +183,7 @@ rule all: lambda w: expand( ( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-ch4_network_{planning_horizons}.pdf" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-ch4_network_{planning_horizons}.pdf" if config_provider("sector", "gas_network")(w) else [] ), @@ -188,15 +198,6 @@ rule all: ), run=config["run"]["name"], ), - lambda w: expand( - ( - RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-balance_map_{carrier}.pdf" - ), - **config["scenario"], - run=config["run"]["name"], - carrier=config_provider("plotting", "balance_map", "bus_carriers")(w), - ), expand( RESULTS + "graphics/balance_timeseries/s_{clusters}_{opts}_{sector_opts}_{planning_horizons}", @@ -213,7 +214,7 @@ rule all: lambda w: expand( ( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_river_water.html" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_river_water.html" if config_provider("plotting", "enable_heat_source_maps")(w) and "river_water" in config_provider("sector", "heat_pump_sources", "urban central")(w) @@ -225,7 +226,7 @@ rule all: lambda w: expand( ( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_sea_water.html" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_sea_water.html" if config_provider("plotting", "enable_heat_source_maps")(w) and "sea_water" in config_provider("sector", "heat_pump_sources", "urban central")(w) @@ -237,7 +238,7 @@ rule all: lambda w: expand( ( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_ambient_air.html" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_ambient_air.html" if config_provider("plotting", "enable_heat_source_maps")(w) and "air" in config_provider("sector", "heat_pump_sources", "urban central")(w) @@ -250,7 +251,7 @@ rule all: lambda w: expand( ( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_energy_map_river_water.html" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_energy_map_river_water.html" if config_provider("plotting", "enable_heat_source_maps")(w) and "river_water" in config_provider("sector", "heat_pump_sources", "urban central")(w) @@ -277,6 +278,8 @@ rule all: run=config["run"]["name"], **config["scenario"], ), + lambda w: balance_map_paths("static", w), + lambda w: balance_map_paths("interactive", w), default_target: True diff --git a/config/config.default.yaml b/config/config.default.yaml index aac8e6b89a..b06313d80a 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -10,7 +10,7 @@ tutorial: false logging: level: INFO - format: '%(levelname)s:%(name)s:%(message)s' + format: "%(levelname)s:%(name)s:%(message)s" remote: ssh: "" @@ -27,7 +27,6 @@ run: shared_resources: policy: false exclude: [] - shared_cutouts: true use_shadow_directory: false # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#foresight @@ -92,11 +91,6 @@ snapshots: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#enable enable: - retrieve: auto - retrieve_databundle: true - retrieve_cost_data: true - build_cutout: false - retrieve_cutout: true drop_leap_day: true # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#co2-budget @@ -112,8 +106,7 @@ co2_budget: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#electricity electricity: voltages: [220., 300., 330., 380., 400., 500., 750.] - base_network: osm-prebuilt - osm-prebuilt-version: 0.6 + base_network: osm gaslimit_enable: false gaslimit: false co2limit_enable: false @@ -150,10 +143,7 @@ electricity: pecd_renewable_profiles: enable: false - version: 3.1 pre_built: - retrieve: true - pecd_prebuilt_version: 0.1 cyears: - 1995 - 2008 @@ -228,7 +218,6 @@ electricity: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#atlite atlite: - cutout_directory: cutouts default_cutout: europe-2013-sarah3-era5 nprocesses: 16 show_progress: false @@ -243,8 +232,22 @@ atlite: dx: 0.3 dy: 0.3 time: ['2013', '2013'] - # features: [] - # sarah_dir: "" + # prepare_kwargs: + # features: [] + # sarah_dir: "" + europe-1940-2024-era5: + module: era5 + x: [-12., 42.] + y: [33., 72.] + dx: 0.3 + dy: 0.3 + time: ['1940', '2024'] + chunks: + time: 500 + prepare_kwargs: + features: ['temperature', 'height', 'runoff'] + monthly_requests: true + tmpdir: "./cutouts_tmp/" # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#renewable renewable: @@ -1031,7 +1034,6 @@ industry: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#costs costs: year: 2050 - version: v0.13.3 social_discountrate: 0.02 fill_values: FOM: 0 @@ -1090,6 +1092,190 @@ adjustments: capital_cost: 1.0 absolute: false +# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#data +data: + hotmaps_industrial_sites: + source: archive + version: latest + enspreso_biomass: + source: archive + version: latest + osm: + source: archive + version: latest + worldbank_urban_population: + source: archive + version: latest + gem_europe_gas_tracker: + source: archive + version: latest + co2stop: + source: archive + version: latest + nitrogen_statistics: + source: archive + version: latest + eu_nuts2013: + source: archive + version: latest + eu_nuts2021: + source: archive + version: latest + eurostat_balances: + source: archive + version: latest + eurostat_household_balances: + source: archive + version: latest + wdpa: + source: archive + version: latest + wdpa_marine: + source: archive + version: latest + luisa_land_cover: + source: archive + version: latest + jrc_idees: + source: archive + version: latest + scigrid_gas: + source: primary + version: latest + seawater_temperature: + source: archive + version: latest + synthetic_electricity_demand: + source: primary + version: latest + copernicus_land_cover: + source: primary + version: latest + ship_raster: + source: archive + version: latest + eez: + source: archive + version: latest + nuts3_population: + source: archive + version: latest + gdp_per_capita: + source: archive + version: latest + population_count: + source: archive + version: latest + ghg_emissions: + source: archive + version: latest + gebco: + source: archive + version: latest + attributed_ports: + source: archive + version: latest + corine: + source: archive + version: latest + emobility: + source: archive + version: latest + h2_salt_caverns: + source: archive + version: latest + lau_regions: + source: archive + version: latest + aquifer_data: + source: archive + version: latest + osm_boundaries: + source: archive + version: latest + gem_gspt: + source: archive + version: latest + tyndp: + source: archive + version: latest + tyndp_bundle: + source: archive + version: latest + powerplants: + source: primary + version: latest + costs: + source: primary + version: latest + country_runoff: + source: archive + version: latest + country_hdd: + source: archive + version: latest + natura: + source: archive + version: latest + bfs_road_vehicle_stock: + source: primary + version: latest + bfs_gdp_and_population: + source: primary + version: latest + mobility_profiles: + source: archive + version: latest + cutout: + source: archive + version: latest + dh_areas: + source: archive + version: latest + geothermal_heat_utilisation_potentials: + source: archive + version: latest + jrc_ardeco: + source: archive + version: latest + cutout_additional: + source: archive + version: latest + tyndp_pecd: + source: archive + version: latest + tyndp_hydro_inflows: + source: archive + version: latest + tyndp_pemmdb: + source: archive + version: latest + tyndp_supply_tool: + source: archive + version: latest + tyndp_benchmark: + source: archive + version: latest + tyndp_vis_plfm: + source: archive + version: latest + tyndp_cba_projects: + source: archive + version: latest + +# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#overpass_api +overpass_api: + url: https://overpass-api.de/api/interpreter + max_tries: 5 + timeout: 600 + user_agent: + project_name: PyPSA-Eur + email: contact@pypsa.org + website: https://github.com/PyPSA/pypsa-eur + +secrets: + corine: '' #Add API key here if primary source is used for retrieving corine dataset after registering in https://land.copernicus.eu/user/login + # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#solving solving: options: diff --git a/config/config.tyndp.yaml b/config/config.tyndp.yaml index cd364f2536..90c0072c7e 100644 --- a/config/config.tyndp.yaml +++ b/config/config.tyndp.yaml @@ -75,10 +75,7 @@ electricity: pecd_renewable_profiles: enable: true - version: 3.1 pre_built: - retrieve: true - pecd_prebuilt_version: 0.1 cyears: - 1995 - 2008 @@ -368,11 +365,18 @@ plotting: - H2 - gas - oil - - co2 stored + - co2_stored H2: bus_factor: 0.005 branch_factor: 0.04 flow_factor: 25 + balance_map_interactive: + bus_carriers: + - AC + - H2 + - gas + - oil + - co2_stored benchmarking: enable: true diff --git a/config/examples/config.distribution-grid-experimental.yaml b/config/examples/config.distribution-grid-experimental.yaml index 9eb484527b..abdb514079 100644 --- a/config/examples/config.distribution-grid-experimental.yaml +++ b/config/examples/config.distribution-grid-experimental.yaml @@ -6,7 +6,22 @@ run: electricity: voltages: [63., 66., 90., 110., 132., 150., 220., 300., 330., 380., 400., 500., 750.] - base_network: osm-raw + base_network: osm transmission_projects: enable: false + +data: + osm: + source: build + version: unknown + +# Please provide your own user agent details when using the Overpass API +overpass_api: + url: https://overpass-api.de/api/interpreter + max_tries: 5 + timeout: 600 + user_agent: + project_name: PyPSA-Eur + email: contact@pypsa.org + website: https://github.com/PyPSA/pypsa-eur diff --git a/config/examples/config.entsoe-all.yaml b/config/examples/config.entsoe-all.yaml index 736ae2b4d2..64a831a82b 100644 --- a/config/examples/config.entsoe-all.yaml +++ b/config/examples/config.entsoe-all.yaml @@ -7,7 +7,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true scenario: ll: @@ -33,9 +32,3 @@ electricity: lines: reconnect_crimea: true - -enable: - retrieve: true - retrieve_databundle: true - retrieve_cost_data: true - retrieve_cutout: true diff --git a/config/examples/config.iterative.yaml b/config/examples/config.iterative.yaml new file mode 100644 index 0000000000..2836f7c5e1 --- /dev/null +++ b/config/examples/config.iterative.yaml @@ -0,0 +1,126 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: CC0-1.0 + +tutorial: true + +run: + name: "test-iterative" + disable_progressbar: true + shared_resources: + policy: false + shared_cutouts: true + + +scenario: + clusters: + - 5 + sector_opts: + - '' + planning_horizons: + - 2030 + +countries: ['BE'] + +snapshots: + start: "2013-03-01" + end: "2013-03-08" + +electricity: + + extendable_carriers: + Generator: [OCGT] + StorageUnit: [battery] + Store: [H2] + Link: [H2 pipeline] + + renewable_carriers: [solar, solar-hsat, onwind, offwind-ac, offwind-dc, offwind-float] + +atlite: + default_cutout: be-03-2013-era5 + cutouts: + be-03-2013-era5: + module: era5 + x: [4., 15.] + y: [46., 56.] + time: ["2013-03-01", "2013-03-08"] + +renewable: + offwind-ac: + max_depth: false + offwind-dc: + max_depth: false + offwind-float: + max_depth: false + min_depth: false + +clustering: + temporal: + resolution_sector: 24h + +sector: + gas_network: true + H2_retrofit: true + district_heating: + ptes: + supplemental_heating: + enable: true + booster_heat_pump: true + ates: + enable: true + heat_pump_sources: + urban central: + - air + - geothermal + - river_water + - sea_water + urban decentral: + - air + rural: + - air + - ground + hydrogen_turbine: false + regional_oil_demand: false + regional_co2_sequestration_potential: + enable: false + co2_spatial: false + co2_network: false + methanol: + methanol_to_power: + ocgt: false + biomass_to_methanol: false + ammonia: false + biomass_spatial: false + biomass_to_liquid: false + electrobiofuels: false + +industry: + HVC_environment_sequestration_fraction: 0.5 + waste_to_energy: true + waste_to_energy_cc: true + +solving: + solver: + name: highs + options: highs-simplex + + options: + skip_iterations: false # Enable iterative optimization + track_iterations: true + min_iterations: 2 + max_iterations: 3 + +plotting: + map: + boundaries: + eu_node_location: + x: -5.5 + y: 46. + costs_max: 1000 + costs_threshold: 0.0000001 + energy_max: + energy_min: + energy_threshold: 0.000001 + interactive_bus_balance: + bus_name_pattern: "*central heat*" + enable_heat_source_maps: true diff --git a/config/plotting.default.yaml b/config/plotting.default.yaml index ef1edec32a..563ec86a25 100644 --- a/config/plotting.default.yaml +++ b/config/plotting.default.yaml @@ -105,19 +105,20 @@ plotting: imports_as_flows: false bus_carriers: - AC - - H2 + - co2_stored - gas - - oil + - H2 - methanol - - co2 stored - - urban central heat + - oil + - urban_central_heat AC: - unit: TWh - unit_conversion: 1_000_000 cmap: Greens vmin: vmax: region_unit: €/MWh + branch_color: darkseagreen + unit: TWh + unit_conversion: 1_000_000 bus_factor: 0.002 branch_factor: 0.01 flow_factor: 100 @@ -127,13 +128,46 @@ plotting: branch_sizes: - 100 - 20 - gas: + biogas: + cmap: Greens + vmin: + vmax: + region_unit: €/MWh + branch_color: darkseagreen unit: TWh unit_conversion: 1_000_000 + bus_factor: 0.1 + branch_factor: 0.1 + flow_factor: 100 + bus_sizes: + - 100 + - 50 + branch_sizes: + co2_stored: cmap: Purples vmin: vmax: + region_unit: €/t_${CO_2}$ + branch_color: orange + unit: Mt + unit_conversion: 1_000_000 + bus_factor: 0.015 + branch_factor: 0.4 + flow_factor: 120 + bus_sizes: + - 50 + - 10 + branch_sizes: + - 5 + - 2 + gas: + cmap: Oranges + vmin: + vmax: region_unit: €/MWh + branch_color: darkred + unit: TWh + unit_conversion: 1_000_000 bus_factor: 0.002 branch_factor: 0.05 flow_factor: 60 @@ -144,58 +178,30 @@ plotting: - 100 - 50 H2: - unit: TWh - unit_conversion: 1_000_000 cmap: Blues vmin: vmax: region_unit: €/MWh + branch_color: pink + unit: TWh + unit_conversion: 1_000_000 bus_factor: 0.002 - branch_factor: 0.07 - flow_factor: 50 + branch_factor: 0.03 + flow_factor: 8 bus_sizes: - 50 - 25 branch_sizes: - 40 - 20 - co2 stored: - unit: Mt - unit_conversion: 1_000_000 - cmap: Purples - vmin: - vmax: - region_unit: €/t_${CO_2}$ - bus_factor: 0.03 - branch_factor: 1 - flow_factor: 2_000 - bus_sizes: - - 50 - - 10 - branch_sizes: - - 5 - - 2 - urban central heat: - unit: TWh - unit_conversion: 1_000_000 - cmap: Oranges - vmin: - vmax: - region_unit: €/MWh - bus_factor: 0.005 - branch_factor: 0.1 - flow_factor: 100 - bus_sizes: - - 300 - - 100 - branch_sizes: methanol: - unit: TWh - unit_conversion: 1_000_000 cmap: Greens vmin: vmax: region_unit: €/MWh + branch_color: yellow + unit: TWh + unit_conversion: 1_000_000 bus_factor: 0.005 branch_factor: 0.1 flow_factor: 100 @@ -203,48 +209,164 @@ plotting: - 20 - 10 branch_sizes: - biogas: + oil: + cmap: Greys + region_unit: €/MWh + vmin: + vmax: + branch_color: black unit: TWh unit_conversion: 1_000_000 + bus_factor: 0.002 + branch_factor: 0.01 + flow_factor: 100 + bus_sizes: + - 200 + - 100 + branch_sizes: + solid_biomass: cmap: Greens vmin: vmax: region_unit: €/MWh - bus_factor: 0.1 + branch_color: darkseagreen + unit: TWh + unit_conversion: 1_000_000 + bus_factor: 0.01 branch_factor: 0.1 flow_factor: 100 bus_sizes: - 100 - 50 branch_sizes: - solid biomass: - unit: TWh - unit_conversion: 1_000_000 - cmap: Greens + urban_central_heat: + cmap: Oranges vmin: vmax: region_unit: €/MWh - bus_factor: 0.01 + branch_color: darkred + unit: TWh + unit_conversion: 1_000_000 + bus_factor: 0.005 branch_factor: 0.1 flow_factor: 100 bus_sizes: + - 300 - 100 - - 50 branch_sizes: - oil: - unit: TWh + balance_map_interactive: + bus_carriers: + - AC + - co2_stored + - gas + - H2 + - methanol + - oil + - urban_central_heat + AC: + cmap: Greens + region_unit: €/MWh + vmin: + vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: darkseagreen + branch_width_max: 20 + bus_size_max: 15000 + arrow_size_factor: 2 + map_style: road + tooltip: true + co2_stored: + cmap: Purples + region_unit: €/t CO2 + vmin: + vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: orange + branch_width_max: 20 + bus_size_max: 15000 + arrow_size_factor: 2 + map_style: road + tooltip: true + gas: + cmap: Oranges + region_unit: €/MWh + vmin: + vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: darkred + branch_width_max: 20 + bus_size_max: 15000 + arrow_size_factor: 2 + map_style: road + tooltip: true + H2: + cmap: Blues + region_unit: €/MWh + vmin: + vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: pink + branch_width_max: 45 + bus_size_max: 20000 + arrow_size_factor: 2 + map_style: road + tooltip: true + methanol: + cmap: Greens + region_unit: €/MWh + vmin: + vmax: + region_alpha: 0.8 unit_conversion: 1_000_000 + branch_color: yellow + branch_width_max: 45 + bus_size_max: 20000 + arrow_size_factor: 2 + map_style: road + tooltip: true + oil: cmap: Greys + region_unit: €/MWh vmin: vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: black + branch_width_max: 45 + bus_size_max: 20000 + arrow_size_factor: 2 + map_style: road + tooltip: true + solid_biomass: + cmap: Greens region_unit: €/MWh - bus_factor: 0.002 - branch_factor: 0.01 - flow_factor: 100 - bus_sizes: - - 200 - - 100 - branch_sizes: + vmin: + vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: darkseagreen + branch_width_max: 45 + bus_size_max: 20000 + arrow_size_factor: 2 + map_style: road + tooltip: true + urban_central_heat: + cmap: Oranges + region_unit: €/MWh + vmin: + vmax: + region_alpha: 0.8 + unit_conversion: 1_000_000 + branch_color: darkred + branch_width_max: 45 + bus_size_max: 20000 + arrow_size_factor: 2 + map_style: road + tooltip: true offshore_maps: bus_carriers: - DC_OH diff --git a/config/test/config.clusters.yaml b/config/test/config.clusters.yaml index 0015c4e606..f7552bb441 100644 --- a/config/test/config.clusters.yaml +++ b/config/test/config.clusters.yaml @@ -7,7 +7,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true scenario: clusters: diff --git a/config/test/config.electricity.yaml b/config/test/config.electricity.yaml index 0fe266f9c6..687cfec68e 100644 --- a/config/test/config.electricity.yaml +++ b/config/test/config.electricity.yaml @@ -10,7 +10,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true scenario: clusters: diff --git a/config/test/config.myopic.yaml b/config/test/config.myopic.yaml index 21b11d19d6..5a3d3af68a 100644 --- a/config/test/config.myopic.yaml +++ b/config/test/config.myopic.yaml @@ -9,7 +9,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true foresight: myopic diff --git a/config/test/config.overnight.yaml b/config/test/config.overnight.yaml index 26fed3959c..624f1be7ba 100644 --- a/config/test/config.overnight.yaml +++ b/config/test/config.overnight.yaml @@ -9,7 +9,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true scenario: diff --git a/config/test/config.perfect.yaml b/config/test/config.perfect.yaml index 035aba3ebe..6941212c88 100644 --- a/config/test/config.perfect.yaml +++ b/config/test/config.perfect.yaml @@ -9,7 +9,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true foresight: perfect diff --git a/config/test/config.scenarios.yaml b/config/test/config.scenarios.yaml index f5a876fb30..12e3464b7b 100644 --- a/config/test/config.scenarios.yaml +++ b/config/test/config.scenarios.yaml @@ -12,7 +12,6 @@ run: enable: true file: "config/test/scenarios.yaml" disable_progressbar: true - shared_cutouts: true scenario: clusters: diff --git a/config/test/config.tyndp.yaml b/config/test/config.tyndp.yaml index 20638e37fb..e599986df6 100644 --- a/config/test/config.tyndp.yaml +++ b/config/test/config.tyndp.yaml @@ -8,7 +8,6 @@ run: disable_progressbar: true shared_resources: policy: false - shared_cutouts: true # TODO set foresight foresight: myopic @@ -78,10 +77,7 @@ electricity: pecd_renewable_profiles: enable: true - version: 3.1 pre_built: - retrieve: true - pecd_prebuilt_version: 0.1 cyears: - 1995 - 2008 @@ -376,18 +372,24 @@ plotting: - H2 - gas - oil - - co2 stored + - co2_stored H2: bus_factor: 0.005 branch_factor: 0.04 flow_factor: 25 + balance_map_interactive: + bus_carriers: + - AC + - H2 + - gas + - oil + - co2_stored benchmarking: enable: true cba: hurdle_costs: 0.01 # Transmission line marginal cost - planning_horizons: - 2030 - 2040 diff --git a/data/attributed_ports.json b/data/attributed_ports.json deleted file mode 100644 index 1234481188..0000000000 --- a/data/attributed_ports.json +++ /dev/null @@ -1,861 +0,0 @@ -{ -"type": "FeatureCollection", -"features": [ -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-345---", "LOCODE": "AEAUH", "Name": "Abu Dhabi", "NameWoDiac": "Abu Dhabi", "Status": "AI", "outflows": 41597.142851999997 }, "geometry": { "type": "Point", "coordinates": [ 54.366666666666667, 24.466666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-------", "LOCODE": "AERUW", "Name": "Ar Ruways", "NameWoDiac": "Ar Ruways", "Status": "RL", "outflows": 166556.0 }, "geometry": { "type": "Point", "coordinates": [ 52.733333333333334, 24.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-------", "LOCODE": "AEKLF", "Name": "Khor al Fakkan", "NameWoDiac": "Khor al Fakkan", "Status": "RL", "outflows": 790406.5 }, "geometry": { "type": "Point", "coordinates": [ 56.35, 25.333333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-3-----", "LOCODE": "AEMKH", "Name": "Mina Khalid", "NameWoDiac": "Mina Khalid", "Status": "RL", "outflows": 646965.0 }, "geometry": { "type": "Point", "coordinates": [ 55.366666666666667, 25.35 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-------", "LOCODE": "AEKHL", "Name": "Mina Khalifa\/Abu Dhabi", "NameWoDiac": "Mina Khalifa\/Abu Dhabi", "Status": "RL", "outflows": 18341458.820419993 }, "geometry": { "type": "Point", "coordinates": [ 54.666666666666664, 24.833333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1--4----", "LOCODE": "AEQIW", "Name": "Umm al Qaiwain", "NameWoDiac": "Umm al Qaiwain", "Status": "AI", "outflows": 14196.0 }, "geometry": { "type": "Point", "coordinates": [ 55.55, 25.566666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Antigua and Barbuda", "Function": "1-------", "LOCODE": "AGSJO", "Name": "Saint John's", "NameWoDiac": "Saint John's", "Status": "AI", "outflows": 208663.0 }, "geometry": { "type": "Point", "coordinates": [ -61.85, 17.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1--4----", "LOCODE": "ARBHI", "Name": "Bah�a Blanca", "NameWoDiac": "Bahia Blanca", "Status": "AI", "outflows": 677327.625 }, "geometry": { "type": "Point", "coordinates": [ -62.283333333333331, -38.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "12345---", "LOCODE": "ARBUE", "Name": "Buenos Aires", "NameWoDiac": "Buenos Aires", "Status": "AI", "outflows": 11083411.036479998 }, "geometry": { "type": "Point", "coordinates": [ -58.666666666666664, -34.583333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1-345---", "LOCODE": "ARMDQ", "Name": "Mar del Plata", "NameWoDiac": "Mar del Plata", "Status": "AI", "outflows": 24960.0 }, "geometry": { "type": "Point", "coordinates": [ -57.533333333333331, -38.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1--4----", "LOCODE": "ARPUD", "Name": "Puerto Deseado", "NameWoDiac": "Puerto Deseado", "Status": "AI", "outflows": 24960.0 }, "geometry": { "type": "Point", "coordinates": [ -65.9, -47.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1--4----", "LOCODE": "ARPMY", "Name": "Puerto Madryn", "NameWoDiac": "Puerto Madryn", "Status": "AI", "outflows": 671555.625 }, "geometry": { "type": "Point", "coordinates": [ -65.033333333333331, -42.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "12345---", "LOCODE": "ARROS", "Name": "Rosario", "NameWoDiac": "Rosario", "Status": "AI", "outflows": 110227.0 }, "geometry": { "type": "Point", "coordinates": [ -60.65, -32.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1-------", "LOCODE": "ARSAE", "Name": "San Antonio Este", "NameWoDiac": "San Antonio Este", "Status": "RQ", "outflows": 23075.0 }, "geometry": { "type": "Point", "coordinates": [ -64.733333333333334, -40.8 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1--4----", "LOCODE": "ARUSH", "Name": "Ushuaia", "NameWoDiac": "Ushuaia", "Status": "AI", "outflows": 30732.0 }, "geometry": { "type": "Point", "coordinates": [ -68.3, -54.8 ] } }, -{ "type": "Feature", "properties": { "Country": "Argentina", "Function": "1-------", "LOCODE": "ARZAE", "Name": "Z�rate", "NameWoDiac": "Zarate", "Status": "AI", "outflows": 164645.0 }, "geometry": { "type": "Point", "coordinates": [ -59.033333333333331, -34.1 ] } }, -{ "type": "Feature", "properties": { "Country": "American Samoa", "Function": "1--45---", "LOCODE": "ASPPG", "Name": "Pago Pago", "NameWoDiac": "Pago Pago", "Status": "AI", "outflows": 338184.5 }, "geometry": { "type": "Point", "coordinates": [ -170.7, 14.266666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "12345---", "LOCODE": "AUADL", "Name": "Adelaide", "NameWoDiac": "Adelaide", "Status": "AC", "outflows": 5338947.2004299983 }, "geometry": { "type": "Point", "coordinates": [ 138.583333333333343, -34.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "12345---", "LOCODE": "AUBNE", "Name": "Brisbane", "NameWoDiac": "Brisbane", "Status": "AC", "outflows": 8402703.6401499975 }, "geometry": { "type": "Point", "coordinates": [ 153.01666666666668, -27.466666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "12345---", "LOCODE": "AUDRW", "Name": "Darwin", "NameWoDiac": "Darwin", "Status": "AC", "outflows": 88640.416664000004 }, "geometry": { "type": "Point", "coordinates": [ 130.833333333333343, -12.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "12345---", "LOCODE": "AUMEL", "Name": "Melbourne", "NameWoDiac": "Melbourne", "Status": "AC", "outflows": 9957826.0957300067 }, "geometry": { "type": "Point", "coordinates": [ 144.966666666666669, -37.81666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "12345---", "LOCODE": "AUSYD", "Name": "Sydney", "NameWoDiac": "Sydney", "Status": "AC", "outflows": 10352110.143530006 }, "geometry": { "type": "Point", "coordinates": [ 151.2, -33.85 ] } }, -{ "type": "Feature", "properties": { "Country": "Aruba", "Function": "1-------", "LOCODE": "AWBAR", "Name": "Barcadera", "NameWoDiac": "Barcadera", "Status": "RL", "outflows": 65431.8 }, "geometry": { "type": "Point", "coordinates": [ -69.983333333333334, 12.483333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Bangladesh", "Function": "1--45---", "LOCODE": "BDCGP", "Name": "Chattogram", "NameWoDiac": "Chattogram", "Status": "AI", "outflows": 1379549.0523300001 }, "geometry": { "type": "Point", "coordinates": [ 91.833333333333329, 22.333333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "Belgium", "Function": "12345---", "LOCODE": "BEANR", "Name": "Antwerpen", "NameWoDiac": "Antwerpen", "Status": "AI", "outflows": 51827814.560638025 }, "geometry": { "type": "Point", "coordinates": [ 4.416666666666667, 51.216666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Belgium", "Function": "1234----", "LOCODE": "BEGNE", "Name": "Gent (Ghent)", "NameWoDiac": "Gent (Ghent)", "Status": "AI", "outflows": 13260.0 }, "geometry": { "type": "Point", "coordinates": [ 3.716666666666667, 51.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Belgium", "Function": "1-3-----", "LOCODE": "BEZEE", "Name": "Zeebrugge", "NameWoDiac": "Zeebrugge", "Status": "AI", "outflows": 5650583.2502299985 }, "geometry": { "type": "Point", "coordinates": [ 3.2, 51.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Bahrain", "Function": "1-------", "LOCODE": "BHMIN", "Name": "Mina Sulman Port", "NameWoDiac": "Mina Sulman Port", "Status": "AA", "outflows": 632118.5 }, "geometry": { "type": "Point", "coordinates": [ 50.616666666666667, 26.2 ] } }, -{ "type": "Feature", "properties": { "Country": "Bonaire, Sint Eustatius and Saba", "Function": "1-------", "LOCODE": "BQKRA", "Name": "Kralendijk", "NameWoDiac": "Kralendijk", "Status": "AI", "outflows": 117162.5 }, "geometry": { "type": "Point", "coordinates": [ -68.266666666666666, 12.15 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "-23-----", "LOCODE": "BRIGI", "Name": "Itagua�", "NameWoDiac": "Itaguai", "Status": "RL", "outflows": 2879859.0476199985 }, "geometry": { "type": "Point", "coordinates": [ -43.766666666666666, -22.866666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-3-----", "LOCODE": "BRIOA", "Name": "Itapo�", "NameWoDiac": "Itapoa", "Status": "RL", "outflows": 9027277.19 }, "geometry": { "type": "Point", "coordinates": [ -48.6, -26.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-34----", "LOCODE": "BRNVT", "Name": "Navegantes", "NameWoDiac": "Navegantes", "Status": "AI", "outflows": 10279036.91334 }, "geometry": { "type": "Point", "coordinates": [ -48.65, -26.9 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRPNG", "Name": "Paranagu�", "NameWoDiac": "Paranagua", "Status": "AI", "outflows": 13802196.524050001 }, "geometry": { "type": "Point", "coordinates": [ -48.5, -25.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "12------", "LOCODE": "BRPEC", "Name": "Pec�m Pt\/S�o Gon�alo do Amarante", "NameWoDiac": "Pecem Pt\/Sao Goncalo do Amarante", "Status": "AA", "outflows": 2174063.6046599997 }, "geometry": { "type": "Point", "coordinates": [ -38.866666666666667, -3.533333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "123-567-", "LOCODE": "BRRIO", "Name": "Rio de Janeiro", "NameWoDiac": "Rio de Janeiro", "Status": "AA", "outflows": 9600221.3041699976 }, "geometry": { "type": "Point", "coordinates": [ -43.233333333333334, -22.883333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-------", "LOCODE": "BRMCP", "Name": "Santana Pt.\/Macap�", "NameWoDiac": "Santana Pt.\/Macapa", "Status": "AA", "outflows": 837504.77784000011 }, "geometry": { "type": "Point", "coordinates": [ -51.166666666666664, -0.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1234----", "LOCODE": "BRSSZ", "Name": "Santos", "NameWoDiac": "Santos", "Status": "AI", "outflows": 17682777.003890004 }, "geometry": { "type": "Point", "coordinates": [ -46.333333333333336, -23.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-34----", "LOCODE": "BRSLZ", "Name": "S�o Lu�s", "NameWoDiac": "Sao Luis", "Status": "AI", "outflows": 45240.0 }, "geometry": { "type": "Point", "coordinates": [ -44.3, -2.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-------", "LOCODE": "BRVIX", "Name": "Vit�ria Pt", "NameWoDiac": "Vitoria Pt", "Status": "AA", "outflows": 738129.52788000007 }, "geometry": { "type": "Point", "coordinates": [ -40.333333333333336, -20.316666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Bahamas", "Function": "1--45---", "LOCODE": "BSNAS", "Name": "Nassau", "NameWoDiac": "Nassau", "Status": "AI", "outflows": 62842.0 }, "geometry": { "type": "Point", "coordinates": [ -77.35, 25.083333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "Belize", "Function": "1-34----", "LOCODE": "BZBGK", "Name": "Big Creek", "NameWoDiac": "Big Creek", "Status": "RL", "outflows": 199368.0 }, "geometry": { "type": "Point", "coordinates": [ -88.4, 16.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1-34----", "LOCODE": "CANWP", "Name": "Argentia", "NameWoDiac": "Argentia", "Status": "AI", "outflows": 27248.000001 }, "geometry": { "type": "Point", "coordinates": [ -54.0, 47.3 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1-34-6--", "LOCODE": "CASJB", "Name": "Saint-John", "NameWoDiac": "Saint-John", "Status": "AS", "outflows": 389420.2 }, "geometry": { "type": "Point", "coordinates": [ -66.066666666666663, 45.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1-3-----", "LOCODE": "CASJF", "Name": "Saint-John's", "NameWoDiac": "Saint-John's", "Status": "AS", "outflows": 26845.0 }, "geometry": { "type": "Point", "coordinates": [ -52.733333333333334, 47.56666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Congo, The Democratic Republic of the", "Function": "1-3-----", "LOCODE": "CDBNW", "Name": "Banana", "NameWoDiac": "Banana", "Status": "RL", "outflows": 48681.0 }, "geometry": { "type": "Point", "coordinates": [ 12.401211892732039, -6.003633266930797 ] } }, -{ "type": "Feature", "properties": { "Country": "Congo", "Function": "1--45---", "LOCODE": "CGPNR", "Name": "Pointe Noire", "NameWoDiac": "Pointe Noire", "Status": "AI", "outflows": 3473713.5811700015 }, "geometry": { "type": "Point", "coordinates": [ 11.85, -4.8 ] } }, -{ "type": "Feature", "properties": { "Country": "C�te d'Ivoire", "Function": "1--45---", "LOCODE": "CIABJ", "Name": "Abidjan", "NameWoDiac": "Abidjan", "Status": "AI", "outflows": 3248845.4334399998 }, "geometry": { "type": "Point", "coordinates": [ -4.016666666666667, 5.333333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "C�te d'Ivoire", "Function": "1-34----", "LOCODE": "CISPY", "Name": "San-P�dro", "NameWoDiac": "San-Pedro", "Status": "AI", "outflows": 2312502.0286400001 }, "geometry": { "type": "Point", "coordinates": [ -6.616666666666667, 4.733333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1--4----", "LOCODE": "CLANF", "Name": "Antofagasta", "NameWoDiac": "Antofagasta", "Status": "AI", "outflows": 2136460.625 }, "geometry": { "type": "Point", "coordinates": [ -70.38333333333334, -23.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1-34----", "LOCODE": "CLARI", "Name": "Arica", "NameWoDiac": "Arica", "Status": "AI", "outflows": 1400600.825 }, "geometry": { "type": "Point", "coordinates": [ -70.316666666666663, -18.483333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "123-----", "LOCODE": "CLCNL", "Name": "Coronel", "NameWoDiac": "Coronel", "Status": "AI", "outflows": 5437390.8332000002 }, "geometry": { "type": "Point", "coordinates": [ -73.15, -37.016666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1--4----", "LOCODE": "CLIQQ", "Name": "Iquique", "NameWoDiac": "Iquique", "Status": "AI", "outflows": 1915647.5 }, "geometry": { "type": "Point", "coordinates": [ -70.13333333333334, -20.216666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "123-----", "LOCODE": "CLLQN", "Name": "Lirqu�n", "NameWoDiac": "Lirquen", "Status": "AI", "outflows": 3185838.4995000004 }, "geometry": { "type": "Point", "coordinates": [ -72.983333333333334, -36.7 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1-------", "LOCODE": "CLMJS", "Name": "Mejillones", "NameWoDiac": "Mejillones", "Status": "AI", "outflows": 32362.2 }, "geometry": { "type": "Point", "coordinates": [ -70.45, -23.1 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "123-----", "LOCODE": "CLPAG", "Name": "Puerto Angamos", "NameWoDiac": "Puerto Angamos", "Status": "RL", "outflows": 5408319.3663000017 }, "geometry": { "type": "Point", "coordinates": [ -70.45, -23.083333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1-34----", "LOCODE": "CLPUQ", "Name": "Punta Arenas", "NameWoDiac": "Punta Arenas", "Status": "AI", "outflows": 18174.0 }, "geometry": { "type": "Point", "coordinates": [ -70.933333333333337, -53.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "123-----", "LOCODE": "CLSAI", "Name": "San Antonio", "NameWoDiac": "San Antonio", "Status": "AI", "outflows": 9417069.025 }, "geometry": { "type": "Point", "coordinates": [ -71.6, -33.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1-3-----", "LOCODE": "CLSVE", "Name": "San Vicente", "NameWoDiac": "San Vicente", "Status": "AI", "outflows": 945075.625 }, "geometry": { "type": "Point", "coordinates": [ -73.13333333333334, -36.7 ] } }, -{ "type": "Feature", "properties": { "Country": "Chile", "Function": "1234----", "LOCODE": "CLVAP", "Name": "Valparaiso", "NameWoDiac": "Valparaiso", "Status": "AI", "outflows": 2059925.0 }, "geometry": { "type": "Point", "coordinates": [ -71.63333333333334, -33.033333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNCFD", "Name": "Caofeidian Pt", "NameWoDiac": "Caofeidian Pt", "Status": "AS", "outflows": 168350.0 }, "geometry": { "type": "Point", "coordinates": [ 118.533333333333331, 38.95 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1----6--", "LOCODE": "CNDCB", "Name": "DA CHAN BAY", "NameWoDiac": "DA CHAN BAY", "Status": "RL", "outflows": 4367401.0713399984 }, "geometry": { "type": "Point", "coordinates": [ 113.86666666666666, 22.533333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNDGG", "Name": "Dongguan Pt", "NameWoDiac": "Dongguan Pt", "Status": "AS", "outflows": 94354.0 }, "geometry": { "type": "Point", "coordinates": [ 113.75, 23.033333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNDJK", "Name": "Dongjiangkou", "NameWoDiac": "Dongjiangkou", "Status": "AS", "outflows": 386750.0 }, "geometry": { "type": "Point", "coordinates": [ 119.52253982618285, 35.308885331582253 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "--3-----", "LOCODE": "CNFQG", "Name": "Fuqing", "NameWoDiac": "Fuqing", "Status": "RL", "outflows": 1164780.9333599997 }, "geometry": { "type": "Point", "coordinates": [ 119.36666666666666, 25.716666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNHUI", "Name": "Huizhou Pt", "NameWoDiac": "Huizhou Pt", "Status": "AS", "outflows": 27300.0 }, "geometry": { "type": "Point", "coordinates": [ 114.36666666666666, 23.083333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNHMN", "Name": "Humen Pt", "NameWoDiac": "Humen Pt", "Status": "AS", "outflows": 630027.5 }, "geometry": { "type": "Point", "coordinates": [ 113.666666666666671, 22.833333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-3-----", "LOCODE": "CNJGY", "Name": "Jiangyin", "NameWoDiac": "Jiangyin", "Status": "RL", "outflows": 594906.0 }, "geometry": { "type": "Point", "coordinates": [ 119.3, 25.466666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNJNZ", "Name": "Jinzhou Pt", "NameWoDiac": "Jinzhou Pt", "Status": "AS", "outflows": 684866.0 }, "geometry": { "type": "Point", "coordinates": [ 121.15, 41.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNLYG", "Name": "Lianyungang", "NameWoDiac": "Lianyungang", "Status": "AS", "outflows": 9288988.8094500005 }, "geometry": { "type": "Point", "coordinates": [ 119.433333333333337, 34.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNNSA", "Name": "Nansha Pt", "NameWoDiac": "Nansha Pt", "Status": "AS", "outflows": 42484636.038412996 }, "geometry": { "type": "Point", "coordinates": [ 113.583333333333329, 22.75 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNNTG", "Name": "Nantong Pt", "NameWoDiac": "Nantong Pt", "Status": "AS", "outflows": 261618.5 }, "geometry": { "type": "Point", "coordinates": [ 120.85, 32.016666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNSHP", "Name": "Qinhuangdao Pt", "NameWoDiac": "Qinhuangdao Pt", "Status": "AS", "outflows": 105300.0 }, "geometry": { "type": "Point", "coordinates": [ 119.583333333333329, 39.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNQZJ", "Name": "Quanzhou Pt", "NameWoDiac": "Quanzhou Pt", "Status": "AS", "outflows": 512451.33335000003 }, "geometry": { "type": "Point", "coordinates": [ 118.6, 24.933333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNRZH", "Name": "Rizhao Pt", "NameWoDiac": "Rizhao Pt", "Status": "AS", "outflows": 1075073.00003 }, "geometry": { "type": "Point", "coordinates": [ 119.533333333333331, 35.383333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNSHK", "Name": "Shekou Pt", "NameWoDiac": "Shekou Pt", "Status": "AS", "outflows": 74635666.140550002 }, "geometry": { "type": "Point", "coordinates": [ 113.916666666666671, 22.483333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNSHD", "Name": "Shidao Pt", "NameWoDiac": "Shidao Pt", "Status": "AS", "outflows": 54886.0 }, "geometry": { "type": "Point", "coordinates": [ 122.433333333333337, 36.866666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNWIH", "Name": "Waihai", "NameWoDiac": "Waihai", "Status": "AS", "outflows": 50050.0 }, "geometry": { "type": "Point", "coordinates": [ 113.13333333333334, 22.583333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1--4----", "LOCODE": "CNWEF", "Name": "Weifang Pt", "NameWoDiac": "Weifang Pt", "Status": "AS", "outflows": 65923.0 }, "geometry": { "type": "Point", "coordinates": [ 119.1, 36.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1--45---", "LOCODE": "CNWEI", "Name": "Weihai", "NameWoDiac": "Weihai", "Status": "AS", "outflows": 238257.5 }, "geometry": { "type": "Point", "coordinates": [ 122.11666666666666, 37.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNYPG", "Name": "Yangpu Pt", "NameWoDiac": "Yangpu Pt", "Status": "AS", "outflows": 872543.16658000019 }, "geometry": { "type": "Point", "coordinates": [ 109.2, 19.7 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNYTN", "Name": "Yantian Pt", "NameWoDiac": "Yantian Pt", "Status": "AS", "outflows": 74187678.537459999 }, "geometry": { "type": "Point", "coordinates": [ 119.86666666666666, 26.85 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNYIK", "Name": "Yingkou Pt", "NameWoDiac": "Yingkou Pt", "Status": "AS", "outflows": 1421671.0 }, "geometry": { "type": "Point", "coordinates": [ 122.216666666666669, 40.65 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNZJG", "Name": "Zhangjiagang", "NameWoDiac": "Zhangjiagang", "Status": "AS", "outflows": 196865.5 }, "geometry": { "type": "Point", "coordinates": [ 120.533333333333331, 31.866666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNZZU", "Name": "Zhangzhou Pt", "NameWoDiac": "Zhangzhou Pt", "Status": "AS", "outflows": 340964.0 }, "geometry": { "type": "Point", "coordinates": [ 117.65, 24.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "China", "Function": "1-------", "LOCODE": "CNZUH", "Name": "Zhuhai Pt", "NameWoDiac": "Zhuhai Pt", "Status": "AS", "outflows": 929467.5 }, "geometry": { "type": "Point", "coordinates": [ 113.566666666666663, 22.283333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--4----", "LOCODE": "COLET", "Name": "Leticia", "NameWoDiac": "Leticia", "Status": "AI", "outflows": 9675.0 }, "geometry": { "type": "Point", "coordinates": [ -69.933333333333337, -4.216666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--4----", "LOCODE": "COTLU", "Name": "Tol�", "NameWoDiac": "Tolu", "Status": "AI", "outflows": 9675.0 }, "geometry": { "type": "Point", "coordinates": [ -75.583333333333329, 9.533333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--4----", "LOCODE": "COTRB", "Name": "Turbo", "NameWoDiac": "Turbo", "Status": "AI", "outflows": 799731.40001499979 }, "geometry": { "type": "Point", "coordinates": [ -76.716666666666669, 8.083333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Costa Rica", "Function": "123-----", "LOCODE": "CRCAL", "Name": "Caldera", "NameWoDiac": "Caldera", "Status": "RL", "outflows": 704191.8 }, "geometry": { "type": "Point", "coordinates": [ -84.716666666666669, 9.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Costa Rica", "Function": "1-3-----", "LOCODE": "CRMOB", "Name": "Mo�n", "NameWoDiac": "Moin", "Status": "RL", "outflows": 2884497.4165249998 }, "geometry": { "type": "Point", "coordinates": [ -83.083333333333329, 10.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Costa Rica", "Function": "1-3-----", "LOCODE": "CRLIO", "Name": "Puerto Lim�n", "NameWoDiac": "Puerto Limon", "Status": "AI", "outflows": 2372283.3334299996 }, "geometry": { "type": "Point", "coordinates": [ -83.033333333333331, 10.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Cuba", "Function": "1234----", "LOCODE": "CUMAR", "Name": "Mariel", "NameWoDiac": "Mariel", "Status": "RL", "outflows": 370296.8 }, "geometry": { "type": "Point", "coordinates": [ -82.75, 23.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Cabo Verde", "Function": "1-3-----", "LOCODE": "CVMIN", "Name": "Mindelo", "NameWoDiac": "Mindelo", "Status": "RL", "outflows": 114309.0 }, "geometry": { "type": "Point", "coordinates": [ -25.0, 16.883333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Cura�ao", "Function": "1-------", "LOCODE": "CWWIL", "Name": "Willemstad", "NameWoDiac": "Willemstad", "Status": "AI", "outflows": 721990.3 }, "geometry": { "type": "Point", "coordinates": [ -68.916666666666671, 12.1 ] } }, -{ "type": "Feature", "properties": { "Country": "Christmas Island", "Function": "1-------", "LOCODE": "CXFFC", "Name": "Flying Fish Cove", "NameWoDiac": "Flying Fish Cove", "Status": "RL", "outflows": 2520.0 }, "geometry": { "type": "Point", "coordinates": [ 105.716666666666669, -10.416666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Cyprus", "Function": "1-3-5---", "LOCODE": "CYLMS", "Name": "Limassol", "NameWoDiac": "Limassol", "Status": "AA", "outflows": 2366252.75 }, "geometry": { "type": "Point", "coordinates": [ 33.05, 34.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "123-----", "LOCODE": "DEBKE", "Name": "Brake", "NameWoDiac": "Brake", "Status": "AF", "outflows": 27774.0 }, "geometry": { "type": "Point", "coordinates": [ 8.483333333333333, 53.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "123-----", "LOCODE": "DECUX", "Name": "Cuxhaven", "NameWoDiac": "Cuxhaven", "Status": "AF", "outflows": 128258.0 }, "geometry": { "type": "Point", "coordinates": [ 8.7, 53.883333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "1234----", "LOCODE": "DEEME", "Name": "Emden", "NameWoDiac": "Emden", "Status": "AF", "outflows": 14598.0 }, "geometry": { "type": "Point", "coordinates": [ 7.216666666666667, 53.366666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "1234----", "LOCODE": "DEKEL", "Name": "Kiel", "NameWoDiac": "Kiel", "Status": "AF", "outflows": 14040.0 }, "geometry": { "type": "Point", "coordinates": [ 10.133333333333333, 54.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "12345---", "LOCODE": "DERSK", "Name": "Rostock", "NameWoDiac": "Rostock", "Status": "AF", "outflows": 7984.0 }, "geometry": { "type": "Point", "coordinates": [ 12.133333333333333, 54.083333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "1234----", "LOCODE": "DEWVN", "Name": "Wilhelmshaven", "NameWoDiac": "Wilhelmshaven", "Status": "AF", "outflows": 7664957.3927999986 }, "geometry": { "type": "Point", "coordinates": [ 8.133333333333333, 53.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "12345---", "LOCODE": "DKAAR", "Name": "Aarhus", "NameWoDiac": "Aarhus", "Status": "AF", "outflows": 4009844.4282799996 }, "geometry": { "type": "Point", "coordinates": [ 10.216666666666667, 56.15 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "12345---", "LOCODE": "DKCPH", "Name": "K�benhavn", "NameWoDiac": "Kobenhavn", "Status": "AF", "outflows": 138606.0 }, "geometry": { "type": "Point", "coordinates": [ 12.583333333333334, 55.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Dominican Republic", "Function": "1-3--6--", "LOCODE": "DOCAU", "Name": "Caucedo", "NameWoDiac": "Caucedo", "Status": "RL", "outflows": 11771542.79576 }, "geometry": { "type": "Point", "coordinates": [ -69.63333333333334, 18.416666666666668 ] } }, -{ "type": "Feature", "properties": { "Country": "Dominican Republic", "Function": "123-----", "LOCODE": "DOMAN", "Name": "Manzanillo", "NameWoDiac": "Manzanillo", "Status": "RL", "outflows": 53258.4 }, "geometry": { "type": "Point", "coordinates": [ -71.75, 19.7 ] } }, -{ "type": "Feature", "properties": { "Country": "Algeria", "Function": "123456--", "LOCODE": "DZALG", "Name": "Alger (Algiers)", "NameWoDiac": "Alger (Algiers)", "Status": "AI", "outflows": 835952.4 }, "geometry": { "type": "Point", "coordinates": [ 3.05, 36.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Algeria", "Function": "123-----", "LOCODE": "DZAZW", "Name": "Arzew", "NameWoDiac": "Arzew", "Status": "RL", "outflows": 24660.0 }, "geometry": { "type": "Point", "coordinates": [ -0.316666666666667, 35.866666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Algeria", "Function": "123-----", "LOCODE": "DZGHZ", "Name": "Ghazaouet", "NameWoDiac": "Ghazaouet", "Status": "RL", "outflows": 72735.0 }, "geometry": { "type": "Point", "coordinates": [ -1.85, 35.1 ] } }, -{ "type": "Feature", "properties": { "Country": "Ecuador", "Function": "1--4----", "LOCODE": "ECESM", "Name": "Esmeraldas", "NameWoDiac": "Esmeraldas", "Status": "AI", "outflows": 153990.2 }, "geometry": { "type": "Point", "coordinates": [ -79.7, 0.983333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Ecuador", "Function": "1--45---", "LOCODE": "ECGYE", "Name": "Guayaquil", "NameWoDiac": "Guayaquil", "Status": "AI", "outflows": 8368052.2252000012 }, "geometry": { "type": "Point", "coordinates": [ -79.9, -2.166666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Ecuador", "Function": "--3--6--", "LOCODE": "ECPSJ", "Name": "Posorja", "NameWoDiac": "Posorja", "Status": "RL", "outflows": 1776250.6667999995 }, "geometry": { "type": "Point", "coordinates": [ -80.25, -2.7 ] } }, -{ "type": "Feature", "properties": { "Country": "Ecuador", "Function": "1-------", "LOCODE": "ECPBO", "Name": "Puerto Bol�var", "NameWoDiac": "Puerto Bolivar", "Status": "AI", "outflows": 1601516.8 }, "geometry": { "type": "Point", "coordinates": [ -79.983333333333334, -3.266666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Estonia", "Function": "1------B", "LOCODE": "EEKND", "Name": "Kunda", "NameWoDiac": "Kunda", "Status": "AA", "outflows": 4176.0 }, "geometry": { "type": "Point", "coordinates": [ 26.533333333333335, 59.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Estonia", "Function": "1------B", "LOCODE": "EEMUG", "Name": "Muuga", "NameWoDiac": "Muuga", "Status": "AA", "outflows": 74880.0 }, "geometry": { "type": "Point", "coordinates": [ 24.966666666666665, 59.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Estonia", "Function": "-23----B", "LOCODE": "EEPLA", "Name": "Paldiski", "NameWoDiac": "Paldiski", "Status": "AA", "outflows": 90009.0 }, "geometry": { "type": "Point", "coordinates": [ 24.05, 59.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Estonia", "Function": "1--45---", "LOCODE": "EETLL", "Name": "Tallinn", "NameWoDiac": "Tallinn", "Status": "AI", "outflows": 493596.99998000002 }, "geometry": { "type": "Point", "coordinates": [ 24.733333333333334, 59.43333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Egypt", "Function": "1234----", "LOCODE": "EGDAM", "Name": "Dumyat (Damietta)", "NameWoDiac": "Dumyat (Damietta)", "Status": "RL", "outflows": 9993066.850010002 }, "geometry": { "type": "Point", "coordinates": [ 31.816666666666666, 31.416666666666668 ] } }, -{ "type": "Feature", "properties": { "Country": "Egypt", "Function": "1--45---", "LOCODE": "EGALY", "Name": "El Iskandariya (Alexandria)", "NameWoDiac": "El Iskandariya (Alexandria)", "Status": "AI", "outflows": 6389301.2997899996 }, "geometry": { "type": "Point", "coordinates": [ 29.916666666666668, 31.183333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Egypt", "Function": "1-------", "LOCODE": "EGSOK", "Name": "Sokhna Port", "NameWoDiac": "Sokhna Port", "Status": "RQ", "outflows": 3639356.7318400005 }, "geometry": { "type": "Point", "coordinates": [ 32.35, 29.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Eritrea", "Function": "1234----", "LOCODE": "ERMSW", "Name": "Massawa (Mitsiwa)", "NameWoDiac": "Massawa (Mitsiwa)", "Status": "AI", "outflows": 44242.0 }, "geometry": { "type": "Point", "coordinates": [ 39.45, 15.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1234----", "LOCODE": "ESLEI", "Name": "Almer�a", "NameWoDiac": "Almeria", "Status": "AI", "outflows": 123708.0 }, "geometry": { "type": "Point", "coordinates": [ -2.45, 36.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "12345---", "LOCODE": "ESBIO", "Name": "Bilbao", "NameWoDiac": "Bilbao", "Status": "AI", "outflows": 757628.79999199987 }, "geometry": { "type": "Point", "coordinates": [ -2.966666666666667, 43.25 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "123-----", "LOCODE": "ESCAR", "Name": "Cartagena", "NameWoDiac": "Cartagena", "Status": "AA", "outflows": 161718.0 }, "geometry": { "type": "Point", "coordinates": [ -0.983333333333333, 37.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "123-----", "LOCODE": "ESCAS", "Name": "Castell�n de la Plana", "NameWoDiac": "Castellon de la Plana", "Status": "AI", "outflows": 2188540.79158 }, "geometry": { "type": "Point", "coordinates": [ -0.033333333333333, 39.983333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "123-----", "LOCODE": "ESFRO", "Name": "Ferrol", "NameWoDiac": "Ferrol", "Status": "AI", "outflows": 165064.5 }, "geometry": { "type": "Point", "coordinates": [ -8.25, 43.483333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1234----", "LOCODE": "ESGIJ", "Name": "Gij�n", "NameWoDiac": "Gijon", "Status": "AI", "outflows": 356746.0 }, "geometry": { "type": "Point", "coordinates": [ -5.666666666666667, 43.533333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1--4----", "LOCODE": "ESACE", "Name": "Lanzarote", "NameWoDiac": "Lanzarote", "Status": "AI", "outflows": 421980.0 }, "geometry": { "type": "Point", "coordinates": [ -13.533333333333333, 28.966666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1-3456--", "LOCODE": "ESLPA", "Name": "Las Palmas de Gran Canaria", "NameWoDiac": "Las Palmas de Gran Canaria", "Status": "AI", "outflows": 5009347.5287000006 }, "geometry": { "type": "Point", "coordinates": [ -15.416666666666666, 28.1 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1--45---", "LOCODE": "ESAGP", "Name": "M�laga", "NameWoDiac": "Malaga", "Status": "AI", "outflows": 439868.0 }, "geometry": { "type": "Point", "coordinates": [ -4.416666666666667, 36.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1-34----", "LOCODE": "ESMLN", "Name": "Melilla", "NameWoDiac": "Melilla", "Status": "AI", "outflows": 45500.0 }, "geometry": { "type": "Point", "coordinates": [ -2.883333333333333, 35.31666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "123-----", "LOCODE": "ESSAG", "Name": "Sagunto", "NameWoDiac": "Sagunto", "Status": "AI", "outflows": 417560.0 }, "geometry": { "type": "Point", "coordinates": [ -0.266666666666667, 39.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1--4----", "LOCODE": "ESSPC", "Name": "Santa Cruz de La Palma", "NameWoDiac": "Santa Cruz de La Palma", "Status": "AI", "outflows": 245440.0 }, "geometry": { "type": "Point", "coordinates": [ -17.766666666666666, 28.683333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1-3-----", "LOCODE": "ESVIL", "Name": "Villagarc�a de Arosa", "NameWoDiac": "Villagarcia de Arosa", "Status": "AI", "outflows": 130988.0 }, "geometry": { "type": "Point", "coordinates": [ -8.75, 42.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-34----", "LOCODE": "FITKU", "Name": "�bo (Turku)", "NameWoDiac": "Abo (Turku)", "Status": "AI", "outflows": 16263.0 }, "geometry": { "type": "Point", "coordinates": [ 22.283333333333335, 60.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-34----", "LOCODE": "FITKU", "Name": "Turku (�bo)", "NameWoDiac": "Turku (Abo)", "Status": "AI", "outflows": 16263.0 }, "geometry": { "type": "Point", "coordinates": [ 22.283333333333335, 60.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-34----", "LOCODE": "FIPOR", "Name": "Bj�rneborg (Pori)", "NameWoDiac": "Bjorneborg (Pori)", "Status": "AI", "outflows": 5220.0 }, "geometry": { "type": "Point", "coordinates": [ 21.8, 61.483333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-34----", "LOCODE": "FIPOR", "Name": "Pori (Bj�rneborg)", "NameWoDiac": "Pori (Bjorneborg)", "Status": "AI", "outflows": 5220.0 }, "geometry": { "type": "Point", "coordinates": [ 21.8, 61.483333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FIHMN", "Name": "Fredrikshamn (Hamina)", "NameWoDiac": "Fredrikshamn (Hamina)", "Status": "AI", "outflows": 4437.0 }, "geometry": { "type": "Point", "coordinates": [ 27.2, 60.56666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FIHMN", "Name": "Hamina (Fredrikshamn)", "NameWoDiac": "Hamina (Fredrikshamn)", "Status": "AI", "outflows": 4437.0 }, "geometry": { "type": "Point", "coordinates": [ 27.2, 60.56666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123-----", "LOCODE": "FIPRS", "Name": "Jakobstad (Pietarsaari)", "NameWoDiac": "Jakobstad (Pietarsaari)", "Status": "AI", "outflows": 9396.0 }, "geometry": { "type": "Point", "coordinates": [ 22.783333333333335, 63.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123-----", "LOCODE": "FIPRS", "Name": "Pietarsaari (Jakobstad)", "NameWoDiac": "Pietarsaari (Jakobstad)", "Status": "AI", "outflows": 9396.0 }, "geometry": { "type": "Point", "coordinates": [ 22.783333333333335, 63.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123-----", "LOCODE": "FIKOK", "Name": "Karleby (Kokkola)", "NameWoDiac": "Karleby (Kokkola)", "Status": "AI", "outflows": 39182.0 }, "geometry": { "type": "Point", "coordinates": [ 23.116666666666667, 63.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123-----", "LOCODE": "FIKOK", "Name": "Kokkola (Karleby)", "NameWoDiac": "Kokkola (Karleby)", "Status": "AI", "outflows": 39182.0 }, "geometry": { "type": "Point", "coordinates": [ 23.116666666666667, 63.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-34----", "LOCODE": "FIKEM", "Name": "Kemi\/Torne� (Kemi\/Tornio)", "NameWoDiac": "Kemi\/Tornea (Kemi\/Tornio)", "Status": "AI", "outflows": 106574.0 }, "geometry": { "type": "Point", "coordinates": [ 24.566666666666666, 65.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-34----", "LOCODE": "FIKEM", "Name": "Kemi\/Tornio (Kemi\/Torne�)", "NameWoDiac": "Kemi\/Tornio (Kemi\/Tornea)", "Status": "AI", "outflows": 106574.0 }, "geometry": { "type": "Point", "coordinates": [ 24.566666666666666, 65.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123----B", "LOCODE": "FIKTK", "Name": "Kotka", "NameWoDiac": "Kotka", "Status": "AC", "outflows": 1116795.4999200001 }, "geometry": { "type": "Point", "coordinates": [ 26.916666666666668, 60.466666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123----B", "LOCODE": "FIRAU", "Name": "Rauma (Raumo)", "NameWoDiac": "Rauma (Raumo)", "Status": "AC", "outflows": 705561.49998000008 }, "geometry": { "type": "Point", "coordinates": [ 21.5, 61.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "123----B", "LOCODE": "FIRAU", "Name": "Raumo (Rauma)", "NameWoDiac": "Raumo (Rauma)", "Status": "AC", "outflows": 705561.49998000008 }, "geometry": { "type": "Point", "coordinates": [ 21.5, 61.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FITOR", "Name": "Torne� (Tornio)", "NameWoDiac": "Tornea (Tornio)", "Status": "AI", "outflows": 91624.0 }, "geometry": { "type": "Point", "coordinates": [ 24.183333333333334, 65.85 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FITOR", "Name": "Tornio (Torne�)", "NameWoDiac": "Tornio (Tornea)", "Status": "AI", "outflows": 91624.0 }, "geometry": { "type": "Point", "coordinates": [ 24.183333333333334, 65.85 ] } }, -{ "type": "Feature", "properties": { "Country": "Fiji", "Function": "123-----", "LOCODE": "FJLTK", "Name": "Lautoka", "NameWoDiac": "Lautoka", "Status": "RL", "outflows": 490393.0 }, "geometry": { "type": "Point", "coordinates": [ 177.45, -17.616666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Fiji", "Function": "1--45---", "LOCODE": "FJSUV", "Name": "Suva", "NameWoDiac": "Suva", "Status": "AI", "outflows": 535295.0 }, "geometry": { "type": "Point", "coordinates": [ 178.45, -18.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Faroe Islands", "Function": "1-3-----", "LOCODE": "FOKOL", "Name": "Kollafj�rdur", "NameWoDiac": "Kollafjordur", "Status": "RL", "outflows": 82628.0 }, "geometry": { "type": "Point", "coordinates": [ -6.883333333333333, 62.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Faroe Islands", "Function": "1-------", "LOCODE": "FOTHO", "Name": "Thorshavn", "NameWoDiac": "Thorshavn", "Status": "RL", "outflows": 91104.0 }, "geometry": { "type": "Point", "coordinates": [ -6.766666666666667, 62.016666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12------", "LOCODE": "FRBAS", "Name": "Bassens", "NameWoDiac": "Bassens", "Status": "AF", "outflows": 33930.0 }, "geometry": { "type": "Point", "coordinates": [ -0.516666666666667, 44.9 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "1234----", "LOCODE": "FRBES", "Name": "Brest", "NameWoDiac": "Brest", "Status": "AF", "outflows": 107185.0 }, "geometry": { "type": "Point", "coordinates": [ -4.483333333333333, 48.4 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12--5---", "LOCODE": "FRDKK", "Name": "Dunkerque", "NameWoDiac": "Dunkerque", "Status": "AF", "outflows": 4450642.0836299993 }, "geometry": { "type": "Point", "coordinates": [ 2.383333333333333, 51.033333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "123---7-", "LOCODE": "FRFOS", "Name": "Fos-sur-Mer", "NameWoDiac": "Fos-sur-Mer", "Status": "AF", "outflows": 18248513.215530016 }, "geometry": { "type": "Point", "coordinates": [ 4.933333333333334, 43.43333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "1-------", "LOCODE": "FRLPE", "Name": "la Pallice", "NameWoDiac": "la Pallice", "Status": "AF", "outflows": 22725.0 }, "geometry": { "type": "Point", "coordinates": [ -1.216666666666667, 46.166666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12-4----", "LOCODE": "FRLRH", "Name": "La Rochelle", "NameWoDiac": "La Rochelle", "Status": "AF", "outflows": 33930.0 }, "geometry": { "type": "Point", "coordinates": [ -1.15, 46.166666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12345---", "LOCODE": "FRLEH", "Name": "Le Havre", "NameWoDiac": "Le Havre", "Status": "AF", "outflows": 35976285.665610015 }, "geometry": { "type": "Point", "coordinates": [ 0.1, 49.5 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12-45---", "LOCODE": "FRMRS", "Name": "Marseille", "NameWoDiac": "Marseille", "Status": "AF", "outflows": 629024.0 }, "geometry": { "type": "Point", "coordinates": [ 5.4, 43.3 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "123-----", "LOCODE": "FRMTX", "Name": "Montoir-de-Bretagne", "NameWoDiac": "Montoir-de-Bretagne", "Status": "AF", "outflows": 1130547.1665700004 }, "geometry": { "type": "Point", "coordinates": [ -2.15, 47.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12------", "LOCODE": "FRPOV", "Name": "Port-Vendres", "NameWoDiac": "Port-Vendres", "Status": "AF", "outflows": 21450.0 }, "geometry": { "type": "Point", "coordinates": [ 3.116666666666667, 42.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "1-3-----", "LOCODE": "FRRAD", "Name": "Radicatel", "NameWoDiac": "Radicatel", "Status": "RL", "outflows": 42900.000003000001 }, "geometry": { "type": "Point", "coordinates": [ 0.5, 49.5 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "1-34----", "LOCODE": "FRURO", "Name": "Rouen", "NameWoDiac": "Rouen", "Status": "AF", "outflows": 34842.0 }, "geometry": { "type": "Point", "coordinates": [ 1.1, 49.45 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "123-----", "LOCODE": "FRSET", "Name": "S�te", "NameWoDiac": "Sete", "Status": "AF", "outflows": 34041.0 }, "geometry": { "type": "Point", "coordinates": [ 3.7, 43.4 ] } }, -{ "type": "Feature", "properties": { "Country": "France", "Function": "12-4----", "LOCODE": "FRTLN", "Name": "Toulon", "NameWoDiac": "Toulon", "Status": "AF", "outflows": 1080.0 }, "geometry": { "type": "Point", "coordinates": [ 5.933333333333334, 43.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1--4----", "LOCODE": "GBABD", "Name": "Aberdeen", "NameWoDiac": "Aberdeen", "Status": "AF", "outflows": 48681.0 }, "geometry": { "type": "Point", "coordinates": [ -2.1, 57.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1--4-6--", "LOCODE": "GBBEL", "Name": "Belfast", "NameWoDiac": "Belfast", "Status": "AF", "outflows": 137826.0 }, "geometry": { "type": "Point", "coordinates": [ -5.916666666666667, 54.983333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBGRG", "Name": "Grangemouth", "NameWoDiac": "Grangemouth", "Status": "AF", "outflows": 192244.0 }, "geometry": { "type": "Point", "coordinates": [ -3.716666666666667, 56.0 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBGRK", "Name": "Greenock", "NameWoDiac": "Greenock", "Status": "AF", "outflows": 275567.66664999997 }, "geometry": { "type": "Point", "coordinates": [ -4.75, 55.93333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBHUL", "Name": "Hull", "NameWoDiac": "Hull", "Status": "AF", "outflows": 219740.33333800005 }, "geometry": { "type": "Point", "coordinates": [ -0.316666666666667, 53.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBIMM", "Name": "Immingham", "NameWoDiac": "Immingham", "Status": "AF", "outflows": 329625.0 }, "geometry": { "type": "Point", "coordinates": [ -0.216666666666667, 53.6 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1--4----", "LOCODE": "GBLIV", "Name": "Liverpool", "NameWoDiac": "Liverpool", "Status": "AF", "outflows": 1673890.2916200003 }, "geometry": { "type": "Point", "coordinates": [ -3.0, 53.416666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "123--6--", "LOCODE": "GBLGP", "Name": "London Gateway Port", "NameWoDiac": "London Gateway Port", "Status": "RL", "outflows": 21704403.092420008 }, "geometry": { "type": "Point", "coordinates": [ 0.483333333333333, 51.5 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBTEE", "Name": "Teesport", "NameWoDiac": "Teesport", "Status": "AF", "outflows": 556920.0 }, "geometry": { "type": "Point", "coordinates": [ -1.15, 54.583333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBTYN", "Name": "Tyne", "NameWoDiac": "Tyne", "Status": "RQ", "outflows": 31668.0 }, "geometry": { "type": "Point", "coordinates": [ -1.433333333333333, 55.0 ] } }, -{ "type": "Feature", "properties": { "Country": "French Guiana", "Function": "1-------", "LOCODE": "GFDDC", "Name": "D�grad des Cannes", "NameWoDiac": "Degrad des Cannes", "Status": "RL", "outflows": 286520.0 }, "geometry": { "type": "Point", "coordinates": [ -52.266666666666666, 4.85 ] } }, -{ "type": "Feature", "properties": { "Country": "Greenland", "Function": "1-34----", "LOCODE": "GLGOH", "Name": "Nuuk (Godthaab)", "NameWoDiac": "Nuuk (Godthaab)", "Status": "AI", "outflows": 23426.0 }, "geometry": { "type": "Point", "coordinates": [ -51.75, 64.183333333333337 ] } }, -{ "type": "Feature", "properties": { "Country": "Guadeloupe", "Function": "1--45---", "LOCODE": "GPPTP", "Name": "Point-�-Pitre Apt", "NameWoDiac": "Point-a-Pitre Apt", "Status": "AF", "outflows": 1970512.9165490004 }, "geometry": { "type": "Point", "coordinates": [ -61.516666666666666, 16.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Greece", "Function": "1--4----", "LOCODE": "GRHER", "Name": "Heraklion (Iraklion)", "NameWoDiac": "Heraklion (Iraklion)", "Status": "AI", "outflows": 23582.0 }, "geometry": { "type": "Point", "coordinates": [ 25.166666666666668, 35.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Greece", "Function": "1--4----", "LOCODE": "GRHER", "Name": "Iraklion (Heraklion)", "NameWoDiac": "Iraklion (Heraklion)", "Status": "AI", "outflows": 23582.0 }, "geometry": { "type": "Point", "coordinates": [ 25.166666666666668, 35.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Greece", "Function": "1-------", "LOCODE": "GRPIR", "Name": "Piraeus", "NameWoDiac": "Piraeus", "Status": "AI", "outflows": 25227137.508840002 }, "geometry": { "type": "Point", "coordinates": [ 23.616666666666667, 37.93333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Greece", "Function": "1--45---", "LOCODE": "GRSKG", "Name": "Thessalon�ki", "NameWoDiac": "Thessaloniki", "Status": "AI", "outflows": 790815.99999000016 }, "geometry": { "type": "Point", "coordinates": [ 22.95, 40.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Greece", "Function": "1--4----", "LOCODE": "GRVOL", "Name": "V�los", "NameWoDiac": "Volos", "Status": "AI", "outflows": 23582.0 }, "geometry": { "type": "Point", "coordinates": [ 22.95, 39.366666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Guatemala", "Function": "1-------", "LOCODE": "GTSTC", "Name": "Puerto Santo Tom�s de Castilla", "NameWoDiac": "Puerto Santo Tomas de Castilla", "Status": "AI", "outflows": 1241734.0000599998 }, "geometry": { "type": "Point", "coordinates": [ -88.61666666666666, 15.7 ] } }, -{ "type": "Feature", "properties": { "Country": "Guam", "Function": "--3-----", "LOCODE": "GUPIT", "Name": "Piti", "NameWoDiac": "Piti", "Status": "RL", "outflows": 52903.5 }, "geometry": { "type": "Point", "coordinates": [ 144.683333333333337, 13.433333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Guinea-Bissau", "Function": "1-345---", "LOCODE": "GWOXB", "Name": "Bissau", "NameWoDiac": "Bissau", "Status": "AI", "outflows": 114309.0 }, "geometry": { "type": "Point", "coordinates": [ -15.583333333333334, 11.85 ] } }, -{ "type": "Feature", "properties": { "Country": "Croatia", "Function": "123-----", "LOCODE": "HRPLE", "Name": "Ploce", "NameWoDiac": "Ploce", "Status": "RL", "outflows": 136773.0 }, "geometry": { "type": "Point", "coordinates": [ 17.433333333333334, 43.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Croatia", "Function": "1234----", "LOCODE": "HRRJK", "Name": "Rijeka", "NameWoDiac": "Rijeka", "Status": "AI", "outflows": 3818455.3333799997 }, "geometry": { "type": "Point", "coordinates": [ 14.4, 45.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Croatia", "Function": "1234----", "LOCODE": "HRSPU", "Name": "Split", "NameWoDiac": "Split", "Status": "AI", "outflows": 63609.0 }, "geometry": { "type": "Point", "coordinates": [ 16.45, 43.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Haiti", "Function": "1--4----", "LOCODE": "HTCAP", "Name": "Cap-Ha�tien", "NameWoDiac": "Cap-Haitien", "Status": "AI", "outflows": 47268.0 }, "geometry": { "type": "Point", "coordinates": [ -72.2, 19.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Haiti", "Function": "1-------", "LOCODE": "HTLFF", "Name": "Lafiteau", "NameWoDiac": "Lafiteau", "Status": "AI", "outflows": 1098127.3333000003 }, "geometry": { "type": "Point", "coordinates": [ -72.433333333333337, 18.483333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDBPN", "Name": "Balikpapan", "NameWoDiac": "Balikpapan", "Status": "AI", "outflows": 77320.75 }, "geometry": { "type": "Point", "coordinates": [ 116.833333333333329, -1.283333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-3-----", "LOCODE": "IDBTM", "Name": "Batam Island", "NameWoDiac": "Batam Island", "Status": "RL", "outflows": 7335.5 }, "geometry": { "type": "Point", "coordinates": [ 104.033333333333331, 1.083333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDBEN", "Name": "Benete", "NameWoDiac": "Benete", "Status": "RL", "outflows": 12681.75 }, "geometry": { "type": "Point", "coordinates": [ 116.716666666666669, -8.866666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDBOA", "Name": "Benoa", "NameWoDiac": "Benoa", "Status": "RL", "outflows": 6747.0 }, "geometry": { "type": "Point", "coordinates": [ 115.216666666666669, -8.766666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "12345---", "LOCODE": "IDJKT", "Name": "Jakarta, Java", "NameWoDiac": "Jakarta, Java", "Status": "AI", "outflows": 12060454.992969999 }, "geometry": { "type": "Point", "coordinates": [ 106.833333333333329, -6.133333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-345---", "LOCODE": "IDDJJ", "Name": "Jayapura, Irian Jaya", "NameWoDiac": "Jayapura, Irian Jaya", "Status": "AI", "outflows": 136162.0 }, "geometry": { "type": "Point", "coordinates": [ 140.7, -2.533333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-3-----", "LOCODE": "IDKUM", "Name": "Kumai", "NameWoDiac": "Kumai", "Status": "RL", "outflows": 4238.0 }, "geometry": { "type": "Point", "coordinates": [ 111.716666666666669, -2.733333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-3-----", "LOCODE": "IDMAK", "Name": "Makassar", "NameWoDiac": "Makassar", "Status": "RL", "outflows": 664450.0 }, "geometry": { "type": "Point", "coordinates": [ 119.4, -5.116666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1234----", "LOCODE": "IDPDG", "Name": "Padang", "NameWoDiac": "Padang", "Status": "AI", "outflows": 74470.25 }, "geometry": { "type": "Point", "coordinates": [ 100.35, -0.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-3-----", "LOCODE": "IDPER", "Name": "Perawang", "NameWoDiac": "Perawang", "Status": "RL", "outflows": 3627.0 }, "geometry": { "type": "Point", "coordinates": [ 102.86666666666666, 1.066666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-345---", "LOCODE": "IDSRG", "Name": "Semarang", "NameWoDiac": "Semarang", "Status": "AI", "outflows": 2529727.4165999996 }, "geometry": { "type": "Point", "coordinates": [ 110.483333333333334, -6.966666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "123456--", "LOCODE": "IDSUB", "Name": "Surabaya", "NameWoDiac": "Surabaya", "Status": "AI", "outflows": 5004081.1427500024 }, "geometry": { "type": "Point", "coordinates": [ 112.75, -7.233333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDTNJ", "Name": "Tanjungpinang", "NameWoDiac": "Tanjungpinang", "Status": "AI", "outflows": 3068.0 }, "geometry": { "type": "Point", "coordinates": [ 104.45, 0.916666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDTMK", "Name": "Timika", "NameWoDiac": "Timika", "Status": "RQ", "outflows": 3240.0 }, "geometry": { "type": "Point", "coordinates": [ 136.55, -4.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDTUA", "Name": "Tual", "NameWoDiac": "Tual", "Status": "RQ", "outflows": 12207.0 }, "geometry": { "type": "Point", "coordinates": [ 132.73333333333332, -5.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Ireland", "Function": "1-345---", "LOCODE": "IEWAT", "Name": "Waterford", "NameWoDiac": "Waterford", "Status": "AF", "outflows": 86515.0 }, "geometry": { "type": "Point", "coordinates": [ -7.1, 52.25 ] } }, -{ "type": "Feature", "properties": { "Country": "Israel", "Function": "1--45---", "LOCODE": "ILHFA", "Name": "Haifa", "NameWoDiac": "Haifa", "Status": "AI", "outflows": 8470527.0681299977 }, "geometry": { "type": "Point", "coordinates": [ 34.983333333333334, 32.8 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "12345---", "LOCODE": "INMAA", "Name": "Chennai (ex Madras)", "NameWoDiac": "Chennai (ex Madras)", "Status": "AA", "outflows": 2818763.3167999992 }, "geometry": { "type": "Point", "coordinates": [ 80.283333333333331, 13.083333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1234-6--", "LOCODE": "INCOK", "Name": "Cochin", "NameWoDiac": "Cochin", "Status": "AA", "outflows": 2453568.0832799999 }, "geometry": { "type": "Point", "coordinates": [ 76.233333333333334, 9.966666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "--3--6--", "LOCODE": "INHZR", "Name": "Hazira", "NameWoDiac": "Hazira", "Status": "RL", "outflows": 5911162.5861400003 }, "geometry": { "type": "Point", "coordinates": [ 72.62343557464672, 21.09641041428134 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1234-6--", "LOCODE": "INIXY", "Name": "Kandla", "NameWoDiac": "Kandla", "Status": "AA", "outflows": 817280.5 }, "geometry": { "type": "Point", "coordinates": [ 70.216666666666669, 23.033333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123-----", "LOCODE": "INKTP", "Name": "Kattupalli Port", "NameWoDiac": "Kattupalli Port", "Status": "RL", "outflows": 1964901.8999300003 }, "geometry": { "type": "Point", "coordinates": [ 80.38333333333334, 13.3 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1--45---", "LOCODE": "INCCU", "Name": "Kolkata (ex Calcutta)", "NameWoDiac": "Kolkata (ex Calcutta)", "Status": "AA", "outflows": 303853.53334000002 }, "geometry": { "type": "Point", "coordinates": [ 88.35, 22.566666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123-----", "LOCODE": "INMRM", "Name": "Marmagao (Marmugao)", "NameWoDiac": "Marmagao (Marmugao)", "Status": "AA", "outflows": 100178.0 }, "geometry": { "type": "Point", "coordinates": [ 73.783333333333331, 15.4 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123-----", "LOCODE": "INMRM", "Name": "Marmugao (Marmagao)", "NameWoDiac": "Marmugao (Marmagao)", "Status": "AA", "outflows": 100178.0 }, "geometry": { "type": "Point", "coordinates": [ 73.783333333333331, 15.4 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123456--", "LOCODE": "INBOM", "Name": "Mumbai (ex Bombay)", "NameWoDiac": "Mumbai (ex Bombay)", "Status": "AA", "outflows": 126915.25 }, "geometry": { "type": "Point", "coordinates": [ 72.816666666666663, 18.966666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123-----", "LOCODE": "INPRT", "Name": "Paradip Garh", "NameWoDiac": "Paradip Garh", "Status": "AA", "outflows": 28080.0 }, "geometry": { "type": "Point", "coordinates": [ 86.61666666666666, 20.316666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123-----", "LOCODE": "INPAV", "Name": "Pipavav (Victor) Port", "NameWoDiac": "Pipavav (Victor) Port", "Status": "AA", "outflows": 6333654.3638700033 }, "geometry": { "type": "Point", "coordinates": [ 71.55, 20.966666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "123--6--", "LOCODE": "INTUT", "Name": "Tuticorin", "NameWoDiac": "Tuticorin", "Status": "AA", "outflows": 1224891.0 }, "geometry": { "type": "Point", "coordinates": [ 78.13333333333334, 8.783333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1234-6--", "LOCODE": "INVTZ", "Name": "Visakhapatnam", "NameWoDiac": "Visakhapatnam", "Status": "AA", "outflows": 2172514.4999899995 }, "geometry": { "type": "Point", "coordinates": [ 83.3, 17.7 ] } }, -{ "type": "Feature", "properties": { "Country": "Iraq", "Function": "123-----", "LOCODE": "IQUQR", "Name": "Umm Qasr Port", "NameWoDiac": "Umm Qasr Port", "Status": "RL", "outflows": 3640547.5715799998 }, "geometry": { "type": "Point", "coordinates": [ 47.93333333333333, 30.033333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "Iran, Islamic Republic of", "Function": "1-3-----", "LOCODE": "IRASA", "Name": "Asaluyeh", "NameWoDiac": "Asaluyeh", "Status": "RL", "outflows": 3060.0 }, "geometry": { "type": "Point", "coordinates": [ 52.6, 27.466666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "Iran, Islamic Republic of", "Function": "1--4----", "LOCODE": "IRBND", "Name": "Bandar Abbas", "NameWoDiac": "Bandar Abbas", "Status": "AI", "outflows": 1154182.75 }, "geometry": { "type": "Point", "coordinates": [ 56.266666666666666, 27.183333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Iran, Islamic Republic of", "Function": "1-34----", "LOCODE": "IRBKM", "Name": "Bandar Khomeini", "NameWoDiac": "Bandar Khomeini", "Status": "RL", "outflows": 85644.0 }, "geometry": { "type": "Point", "coordinates": [ 49.1, 30.433333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Iran, Islamic Republic of", "Function": "1-34----", "LOCODE": "IRBUZ", "Name": "Bushehr", "NameWoDiac": "Bushehr", "Status": "AI", "outflows": 85644.0 }, "geometry": { "type": "Point", "coordinates": [ 50.833333333333336, 28.966666666666665 ] } }, -{ "type": "Feature", "properties": { "Country": "Iceland", "Function": "1-------", "LOCODE": "ISREY", "Name": "Reykjav�k", "NameWoDiac": "Reykjavik", "Status": "AC", "outflows": 327138.50000099995 }, "geometry": { "type": "Point", "coordinates": [ -21.95, 64.15 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-34----", "LOCODE": "ITAOI", "Name": "Ancona", "NameWoDiac": "Ancona", "Status": "AI", "outflows": 1251219.6666600001 }, "geometry": { "type": "Point", "coordinates": [ 13.5, 43.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-34----", "LOCODE": "ITBRI", "Name": "Bari", "NameWoDiac": "Bari", "Status": "AI", "outflows": 123851.0 }, "geometry": { "type": "Point", "coordinates": [ 16.85, 41.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-34----", "LOCODE": "ITCAG", "Name": "Cagliari", "NameWoDiac": "Cagliari", "Status": "AI", "outflows": 61347.0 }, "geometry": { "type": "Point", "coordinates": [ 9.116666666666667, 39.216666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITCTA", "Name": "Catania", "NameWoDiac": "Catania", "Status": "AI", "outflows": 112515.0 }, "geometry": { "type": "Point", "coordinates": [ 15.1, 37.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITCVV", "Name": "Civitavecchia", "NameWoDiac": "Civitavecchia", "Status": "AI", "outflows": 2179445.6662 }, "geometry": { "type": "Point", "coordinates": [ 11.8, 42.1 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "12345---", "LOCODE": "ITGOA", "Name": "Genova", "NameWoDiac": "Genova", "Status": "AI", "outflows": 23896971.132049996 }, "geometry": { "type": "Point", "coordinates": [ 8.95, 44.416666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITGIT", "Name": "Gioia Tauro", "NameWoDiac": "Gioia Tauro", "Status": "AI", "outflows": 16628557.647730002 }, "geometry": { "type": "Point", "coordinates": [ 15.9, 38.416666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITSPE", "Name": "La Spezia", "NameWoDiac": "La Spezia", "Status": "AI", "outflows": 12785874.433700003 }, "geometry": { "type": "Point", "coordinates": [ 9.833333333333334, 44.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITLIV", "Name": "Livorno", "NameWoDiac": "Livorno", "Status": "AI", "outflows": 8253720.2853500005 }, "geometry": { "type": "Point", "coordinates": [ 10.316666666666666, 43.55 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1234----", "LOCODE": "ITNAP", "Name": "Napoli", "NameWoDiac": "Napoli", "Status": "AI", "outflows": 4010591.4281000006 }, "geometry": { "type": "Point", "coordinates": [ 14.25, 40.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1234----", "LOCODE": "ITOLB", "Name": "Olbia", "NameWoDiac": "Olbia", "Status": "RL", "outflows": 11076.0 }, "geometry": { "type": "Point", "coordinates": [ 9.516666666666667, 40.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1--4----", "LOCODE": "ITPMO", "Name": "Palermo", "NameWoDiac": "Palermo", "Status": "AI", "outflows": 35997.0 }, "geometry": { "type": "Point", "coordinates": [ 13.366666666666667, 38.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "123-----", "LOCODE": "ITSVN", "Name": "Savona", "NameWoDiac": "Savona", "Status": "AI", "outflows": 43661.0 }, "geometry": { "type": "Point", "coordinates": [ 8.5, 44.283333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1--4----", "LOCODE": "ITTPS", "Name": "Trapani", "NameWoDiac": "Trapani", "Status": "AI", "outflows": 41808.0 }, "geometry": { "type": "Point", "coordinates": [ 12.483333333333333, 38.016666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "123-----", "LOCODE": "ITVDL", "Name": "Vado Ligure", "NameWoDiac": "Vado Ligure", "Status": "RL", "outflows": 1281768.42842 }, "geometry": { "type": "Point", "coordinates": [ 8.45, 44.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "12345--B", "LOCODE": "ITVCE", "Name": "Venezia", "NameWoDiac": "Venezia", "Status": "AI", "outflows": 1408195.6666600001 }, "geometry": { "type": "Point", "coordinates": [ 12.333333333333334, 45.43333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Jordan", "Function": "1--4----", "LOCODE": "JOAQJ", "Name": "Al 'Aqabah", "NameWoDiac": "Al 'Aqabah", "Status": "RL", "outflows": 5019094.2318399996 }, "geometry": { "type": "Point", "coordinates": [ 35.0, 29.533333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "--3-----", "LOCODE": "JPHTD", "Name": "Hakata", "NameWoDiac": "Hakata", "Status": "RL", "outflows": 3054288.2499700007 }, "geometry": { "type": "Point", "coordinates": [ 133.1, 34.18333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "--3-----", "LOCODE": "JPISS", "Name": "Isa", "NameWoDiac": "Isa", "Status": "AF", "outflows": 362101.99997 }, "geometry": { "type": "Point", "coordinates": [ 130.6, 32.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "12345---", "LOCODE": "JPKKJ", "Name": "Kitakyushu", "NameWoDiac": "Kitakyushu", "Status": "AF", "outflows": 476762.0 }, "geometry": { "type": "Point", "coordinates": [ 130.833333333333343, 33.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "12345---", "LOCODE": "JPUKB", "Name": "Kobe", "NameWoDiac": "Kobe", "Status": "AF", "outflows": 16494507.892490005 }, "geometry": { "type": "Point", "coordinates": [ 135.166666666666657, 34.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "123-----", "LOCODE": "JPMJR", "Name": "Mitajiri", "NameWoDiac": "Mitajiri", "Status": "AF", "outflows": 18720.0 }, "geometry": { "type": "Point", "coordinates": [ 131.583333333333343, 34.033333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "123-5---", "LOCODE": "JPMOJ", "Name": "Moji\/Kitakyushu", "NameWoDiac": "Moji\/Kitakyushu", "Status": "AF", "outflows": 2497337.91658 }, "geometry": { "type": "Point", "coordinates": [ 130.966666666666669, 33.9 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--45---", "LOCODE": "JPOSA", "Name": "Osaka", "NameWoDiac": "Osaka", "Status": "AF", "outflows": 9088752.8333900012 }, "geometry": { "type": "Point", "coordinates": [ 135.5, 34.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPSEN", "Name": "Satsumasendai", "NameWoDiac": "Satsumasendai", "Status": "AF", "outflows": 1041560.0000199999 }, "geometry": { "type": "Point", "coordinates": [ 130.25, 31.816666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "12345---", "LOCODE": "JPTYO", "Name": "Tokyo", "NameWoDiac": "Tokyo", "Status": "AF", "outflows": 20969567.582899991 }, "geometry": { "type": "Point", "coordinates": [ 139.75, 35.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "12345---", "LOCODE": "JPYOK", "Name": "Yokohama", "NameWoDiac": "Yokohama", "Status": "AF", "outflows": 26921996.624540005 }, "geometry": { "type": "Point", "coordinates": [ 139.65, 35.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Cambodia", "Function": "1-34--7-", "LOCODE": "KHKOS", "Name": "K�mp�ng Sa�m", "NameWoDiac": "Kampong Saom", "Status": "AI", "outflows": 1342444.99985 }, "geometry": { "type": "Point", "coordinates": [ 103.516666666666666, 10.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Comoros", "Function": "1-3-----", "LOCODE": "KMMUT", "Name": "Mutsamudu, Anjouan", "NameWoDiac": "Mutsamudu, Anjouan", "Status": "RL", "outflows": 143131.33335 }, "geometry": { "type": "Point", "coordinates": [ 44.383333333333333, -12.15 ] } }, -{ "type": "Feature", "properties": { "Country": "Saint Kitts and Nevis", "Function": "1--4----", "LOCODE": "KNCHA", "Name": "Charlestown", "NameWoDiac": "Charlestown", "Status": "RL", "outflows": 230958.0 }, "geometry": { "type": "Point", "coordinates": [ -62.616666666666667, 17.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "1234567-", "LOCODE": "KRPUS", "Name": "Busan", "NameWoDiac": "Busan", "Status": "AF", "outflows": 97226625.829958007 }, "geometry": { "type": "Point", "coordinates": [ 129.05, 35.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "1-------", "LOCODE": "KRTSN", "Name": "Daesan\/Seosan", "NameWoDiac": "Daesan\/Seosan", "Status": "AF", "outflows": 391261.0 }, "geometry": { "type": "Point", "coordinates": [ 126.36666666666666, 37.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "1-3-----", "LOCODE": "KRTJI", "Name": "Dangjin", "NameWoDiac": "Dangjin", "Status": "AF", "outflows": 80514.0 }, "geometry": { "type": "Point", "coordinates": [ 126.783333333333331, 36.966666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "1234----", "LOCODE": "KRKUV", "Name": "Gunsan", "NameWoDiac": "Gunsan", "Status": "AF", "outflows": 367380.0 }, "geometry": { "type": "Point", "coordinates": [ 126.716666666666669, 35.983333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "123-----", "LOCODE": "KRKAN", "Name": "Gwangyang", "NameWoDiac": "Gwangyang", "Status": "AF", "outflows": 16515872.093510004 }, "geometry": { "type": "Point", "coordinates": [ 127.7, 34.93333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "123-----", "LOCODE": "KRINC", "Name": "Incheon", "NameWoDiac": "Incheon", "Status": "AF", "outflows": 7323842.7736799996 }, "geometry": { "type": "Point", "coordinates": [ 126.61666666666666, 37.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "123-----", "LOCODE": "KRMAS", "Name": "Masan", "NameWoDiac": "Masan", "Status": "AF", "outflows": 292464.0 }, "geometry": { "type": "Point", "coordinates": [ 128.566666666666663, 35.2 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "123-----", "LOCODE": "KRMOK", "Name": "Mokpo", "NameWoDiac": "Mokpo", "Status": "AF", "outflows": 64792.0 }, "geometry": { "type": "Point", "coordinates": [ 126.38333333333334, 34.8 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "1234----", "LOCODE": "KRKPO", "Name": "Pohang", "NameWoDiac": "Pohang", "Status": "AF", "outflows": 704296.66661000007 }, "geometry": { "type": "Point", "coordinates": [ 129.366666666666674, 36.033333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "123--6--", "LOCODE": "KRPTK", "Name": "Pyeongtaek", "NameWoDiac": "Pyeongtaek", "Status": "AF", "outflows": 201565.00002000004 }, "geometry": { "type": "Point", "coordinates": [ 127.1, 36.966666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Korea, Republic of", "Function": "1234----", "LOCODE": "KRUSN", "Name": "Ulsan", "NameWoDiac": "Ulsan", "Status": "AF", "outflows": 4923083.7499700002 }, "geometry": { "type": "Point", "coordinates": [ 129.316666666666663, 35.533333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Kuwait", "Function": "1-3--6--", "LOCODE": "KWSAA", "Name": "Shuaiba", "NameWoDiac": "Shuaiba", "Status": "RL", "outflows": 770515.0 }, "geometry": { "type": "Point", "coordinates": [ 48.133333333333333, 29.033333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "Kuwait", "Function": "1-------", "LOCODE": "KWSWK", "Name": "Shuwaikh", "NameWoDiac": "Shuwaikh", "Status": "RL", "outflows": 272129.0 }, "geometry": { "type": "Point", "coordinates": [ 47.93333333333333, 29.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Cayman Islands", "Function": "1-34----", "LOCODE": "KYGEC", "Name": "Georgetown, Grand Cayman", "NameWoDiac": "Georgetown, Grand Cayman", "Status": "AI", "outflows": 20059.0 }, "geometry": { "type": "Point", "coordinates": [ -81.38333333333334, 19.3 ] } }, -{ "type": "Feature", "properties": { "Country": "Lebanon", "Function": "1--45---", "LOCODE": "LBBEY", "Name": "Beirut", "NameWoDiac": "Beirut", "Status": "AI", "outflows": 8332419.5043999981 }, "geometry": { "type": "Point", "coordinates": [ 35.483333333333334, 33.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Saint Lucia", "Function": "1-3-----", "LOCODE": "LCCAS", "Name": "Castries", "NameWoDiac": "Castries", "Status": "RL", "outflows": 395089.06669000001 }, "geometry": { "type": "Point", "coordinates": [ -60.966666666666669, 14.016666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Sri Lanka", "Function": "12345---", "LOCODE": "LKCMB", "Name": "Colombo", "NameWoDiac": "Colombo", "Status": "AI", "outflows": 40970827.24107001 }, "geometry": { "type": "Point", "coordinates": [ 79.85, 6.916666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Liberia", "Function": "1-345---", "LOCODE": "LRMLW", "Name": "Monrovia", "NameWoDiac": "Monrovia", "Status": "AI", "outflows": 467272.00002000009 }, "geometry": { "type": "Point", "coordinates": [ -10.8, 6.3 ] } }, -{ "type": "Feature", "properties": { "Country": "Libya", "Function": "1-3-----", "LOCODE": "LYKHO", "Name": "Al Khums", "NameWoDiac": "Al Khums", "Status": "RL", "outflows": 230254.00001 }, "geometry": { "type": "Point", "coordinates": [ 14.266666666666667, 32.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Morocco", "Function": "1--45---", "LOCODE": "MACAS", "Name": "Casablanca", "NameWoDiac": "Casablanca", "Status": "AI", "outflows": 2434027.9715000005 }, "geometry": { "type": "Point", "coordinates": [ -7.6, 33.583333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Moldova, Republic of", "Function": "1-3-----", "LOCODE": "MDGIU", "Name": "Giurgiulesti", "NameWoDiac": "Giurgiulesti", "Status": "RL", "outflows": 1560.0 }, "geometry": { "type": "Point", "coordinates": [ 28.183333333333334, 45.466666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Montenegro", "Function": "123-----", "LOCODE": "MEBAR", "Name": "Bar", "NameWoDiac": "Bar", "Status": "RL", "outflows": 257803.0 }, "geometry": { "type": "Point", "coordinates": [ 19.083333333333332, 42.083333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Madagascar", "Function": "1-------", "LOCODE": "MGEHL", "Name": "Ehoala", "NameWoDiac": "Ehoala", "Status": "RL", "outflows": 19864.0 }, "geometry": { "type": "Point", "coordinates": [ 46.95, -25.066666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Madagascar", "Function": "1-34----", "LOCODE": "MGNOS", "Name": "Nosy-Be", "NameWoDiac": "Nosy-Be", "Status": "AI", "outflows": 60888.0 }, "geometry": { "type": "Point", "coordinates": [ 48.25, -13.333333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Marshall Islands", "Function": "1--4----", "LOCODE": "MHMAJ", "Name": "Majuro", "NameWoDiac": "Majuro", "Status": "AI", "outflows": 238090.66668200004 }, "geometry": { "type": "Point", "coordinates": [ 171.383333333333326, 7.1 ] } }, -{ "type": "Feature", "properties": { "Country": "Myanmar", "Function": "123-----", "LOCODE": "MMTLA", "Name": "Thilawa", "NameWoDiac": "Thilawa", "Status": "RL", "outflows": 629785.00001999992 }, "geometry": { "type": "Point", "coordinates": [ 96.25, 16.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Myanmar", "Function": "123-----", "LOCODE": "MMTLA", "Name": "Thilawa", "NameWoDiac": "Thilawa", "Status": "RL", "outflows": 629785.00001999992 }, "geometry": { "type": "Point", "coordinates": [ 96.25, 16.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Malta", "Function": "1-------", "LOCODE": "MTMAR", "Name": "Marsaxlokk", "NameWoDiac": "Marsaxlokk", "Status": "AA", "outflows": 12264680.76361 }, "geometry": { "type": "Point", "coordinates": [ 14.533333333333333, 35.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Mauritius", "Function": "1-3-----", "LOCODE": "MUPMA", "Name": "Port Mathurin", "NameWoDiac": "Port Mathurin", "Status": "RL", "outflows": 3451.5 }, "geometry": { "type": "Point", "coordinates": [ 63.416666666666664, -19.683333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Maldives", "Function": "1--45---", "LOCODE": "MVMLE", "Name": "Male", "NameWoDiac": "Male", "Status": "AI", "outflows": 224938.42858000004 }, "geometry": { "type": "Point", "coordinates": [ 73.5, 4.166666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-3-----", "LOCODE": "MXATM", "Name": "Altamira", "NameWoDiac": "Altamira", "Status": "RL", "outflows": 6907067.8431760017 }, "geometry": { "type": "Point", "coordinates": [ -97.916666666666671, 22.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1--4----", "LOCODE": "MXCOA", "Name": "Coatzacoalcos", "NameWoDiac": "Coatzacoalcos", "Status": "AI", "outflows": 9100.0 }, "geometry": { "type": "Point", "coordinates": [ -94.4, 18.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1--4----", "LOCODE": "MXESE", "Name": "Ensenada", "NameWoDiac": "Ensenada", "Status": "AI", "outflows": 3482019.6660800003 }, "geometry": { "type": "Point", "coordinates": [ -116.6, 31.85 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1--4----", "LOCODE": "MXGYM", "Name": "Guaymas", "NameWoDiac": "Guaymas", "Status": "AI", "outflows": 15320.0 }, "geometry": { "type": "Point", "coordinates": [ -110.88333333333334, 27.916666666666668 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-------", "LOCODE": "MXLZC", "Name": "L�zaro C�rdenas", "NameWoDiac": "Lazaro Cardenas", "Status": "AI", "outflows": 9280527.0998299997 }, "geometry": { "type": "Point", "coordinates": [ -102.183333333333337, 17.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-34----", "LOCODE": "MXZLO", "Name": "Manzanillo", "NameWoDiac": "Manzanillo", "Status": "AI", "outflows": 14861828.233399997 }, "geometry": { "type": "Point", "coordinates": [ -104.3, 19.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1--4----", "LOCODE": "MXMZT", "Name": "Mazatlan", "NameWoDiac": "Mazatlan", "Status": "AI", "outflows": 258563.0 }, "geometry": { "type": "Point", "coordinates": [ -106.4, 23.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "--3-----", "LOCODE": "MXPRO", "Name": "Paraiso", "NameWoDiac": "Paraiso", "Status": "RL", "outflows": 771394.2 }, "geometry": { "type": "Point", "coordinates": [ -92.2, 18.183333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-3-----", "LOCODE": "MXPMD", "Name": "Puerto Madero", "NameWoDiac": "Puerto Madero", "Status": "AI", "outflows": 82680.0 }, "geometry": { "type": "Point", "coordinates": [ -92.416666666666671, 14.716666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-3-----", "LOCODE": "MXPMS", "Name": "Puerto Morelos", "NameWoDiac": "Puerto Morelos", "Status": "RL", "outflows": 13533.0 }, "geometry": { "type": "Point", "coordinates": [ -86.86666666666666, 20.833333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1--4----", "LOCODE": "MXTAM", "Name": "Tampico", "NameWoDiac": "Tampico", "Status": "AI", "outflows": 33951.0 }, "geometry": { "type": "Point", "coordinates": [ -97.86666666666666, 22.25 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-------", "LOCODE": "MXTUX", "Name": "Tuxpan", "NameWoDiac": "Tuxpan", "Status": "AI", "outflows": 21541.0 }, "geometry": { "type": "Point", "coordinates": [ -97.4, 20.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Mexico", "Function": "1-345---", "LOCODE": "MXVER", "Name": "Veracruz", "NameWoDiac": "Veracruz", "Status": "AI", "outflows": 8795504.2708560005 }, "geometry": { "type": "Point", "coordinates": [ -96.083333333333329, 19.2 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--4----", "LOCODE": "MYPEN", "Name": "Penang (Georgetown)", "NameWoDiac": "Penang (Georgetown)", "Status": "AI", "outflows": 3938506.0 }, "geometry": { "type": "Point", "coordinates": [ 100.316666666666663, 5.416666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "123-5---", "LOCODE": "MYPKG", "Name": "Port Klang (Pelabuhan Klang)", "NameWoDiac": "Port Klang (Pelabuhan Klang)", "Status": "RL", "outflows": 58866748.817210026 }, "geometry": { "type": "Point", "coordinates": [ 101.4, 3.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "123-----", "LOCODE": "MYTPP", "Name": "Tanjung Pelepas", "NameWoDiac": "Tanjung Pelepas", "Status": "RL", "outflows": 36861511.888539977 }, "geometry": { "type": "Point", "coordinates": [ 103.55, 1.366666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Namibia", "Function": "1--4----", "LOCODE": "NALUD", "Name": "L�deritz", "NameWoDiac": "Luderitz", "Status": "AI", "outflows": 43992.0 }, "geometry": { "type": "Point", "coordinates": [ 15.166666666666666, -26.65 ] } }, -{ "type": "Feature", "properties": { "Country": "New Caledonia", "Function": "1--45---", "LOCODE": "NCNOU", "Name": "Noum�a", "NameWoDiac": "Noumea", "Status": "AI", "outflows": 1152154.3332800004 }, "geometry": { "type": "Point", "coordinates": [ 166.45, -22.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "New Caledonia", "Function": "1--45---", "LOCODE": "NCNOU", "Name": "Noum�a", "NameWoDiac": "Noumea", "Status": "AI", "outflows": 1152154.3332800004 }, "geometry": { "type": "Point", "coordinates": [ 166.45, -22.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Nigeria", "Function": "--3-----", "LOCODE": "NGLKK", "Name": "Lekki", "NameWoDiac": "Lekki", "Status": "RL", "outflows": 23036.0 }, "geometry": { "type": "Point", "coordinates": [ 3.1, 6.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Nigeria", "Function": "1-3-----", "LOCODE": "NGONN", "Name": "Onne", "NameWoDiac": "Onne", "Status": "RL", "outflows": 1341939.73318 }, "geometry": { "type": "Point", "coordinates": [ 7.15, 4.716666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Nicaragua", "Function": "1-3--6--", "LOCODE": "NIRAM", "Name": "Rama", "NameWoDiac": "Rama", "Status": "RL", "outflows": 9106.5 }, "geometry": { "type": "Point", "coordinates": [ -84.216666666666669, 12.15 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "12345---", "LOCODE": "NLAMS", "Name": "Amsterdam", "NameWoDiac": "Amsterdam", "Status": "AF", "outflows": 87949.333334999988 }, "geometry": { "type": "Point", "coordinates": [ 4.816666666666666, 52.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "1-3-----", "LOCODE": "NLBOT", "Name": "Botlek", "NameWoDiac": "Botlek", "Status": "AF", "outflows": 33735.0 }, "geometry": { "type": "Point", "coordinates": [ 4.283333333333333, 51.883333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "123-----", "LOCODE": "NLIJM", "Name": "IJmuiden\/Velsen", "NameWoDiac": "IJmuiden\/Velsen", "Status": "AF", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 4.6, 52.466666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "123-----", "LOCODE": "NLMOE", "Name": "Moerdijk", "NameWoDiac": "Moerdijk", "Status": "AF", "outflows": 172497.0 }, "geometry": { "type": "Point", "coordinates": [ 4.566666666666666, 51.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "12345---", "LOCODE": "NLRTM", "Name": "Rotterdam", "NameWoDiac": "Rotterdam", "Status": "AF", "outflows": 60986246.198820002 }, "geometry": { "type": "Point", "coordinates": [ 4.5, 51.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "1-3-----", "LOCODE": "NLTNZ", "Name": "Terneuzen", "NameWoDiac": "Terneuzen", "Status": "AF", "outflows": 24232.0 }, "geometry": { "type": "Point", "coordinates": [ 3.816666666666666, 51.466666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Netherlands", "Function": "123-----", "LOCODE": "NLVLI", "Name": "Vlissingen", "NameWoDiac": "Vlissingen", "Status": "AF", "outflows": 935022.40001200011 }, "geometry": { "type": "Point", "coordinates": [ 3.7, 51.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOAES", "Name": "�lesund", "NameWoDiac": "Alesund", "Status": "AF", "outflows": 450729.5 }, "geometry": { "type": "Point", "coordinates": [ 6.15, 62.466666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOARD", "Name": "�rdalstangen", "NameWoDiac": "Ardalstangen", "Status": "AA", "outflows": 23400.0 }, "geometry": { "type": "Point", "coordinates": [ 7.7, 61.233333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-------", "LOCODE": "NOAVE", "Name": "Aver�y", "NameWoDiac": "Averoy", "Status": "AA", "outflows": 34164.0 }, "geometry": { "type": "Point", "coordinates": [ 7.666666666666667, 63.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1234----", "LOCODE": "NOBGO", "Name": "Bergen", "NameWoDiac": "Bergen", "Status": "AA", "outflows": 330739.5 }, "geometry": { "type": "Point", "coordinates": [ 5.316666666666666, 60.383333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1234----", "LOCODE": "NOBOO", "Name": "Bod�", "NameWoDiac": "Bodo", "Status": "AA", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 14.366666666666667, 67.283333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOBVK", "Name": "Brevik", "NameWoDiac": "Brevik", "Status": "AA", "outflows": 50128.0 }, "geometry": { "type": "Point", "coordinates": [ 9.7, 59.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "123-----", "LOCODE": "NODRM", "Name": "Drammen", "NameWoDiac": "Drammen", "Status": "AA", "outflows": 145713.0 }, "geometry": { "type": "Point", "coordinates": [ 10.233333333333333, 59.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOEGE", "Name": "Egersund", "NameWoDiac": "Egersund", "Status": "AA", "outflows": 142428.0 }, "geometry": { "type": "Point", "coordinates": [ 6.0, 58.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOFRO", "Name": "Flor�", "NameWoDiac": "Floro", "Status": "AA", "outflows": 203580.0 }, "geometry": { "type": "Point", "coordinates": [ 5.016666666666667, 61.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "123-----", "LOCODE": "NOFRK", "Name": "Fredrikstad", "NameWoDiac": "Fredrikstad", "Status": "AA", "outflows": 111033.0 }, "geometry": { "type": "Point", "coordinates": [ 10.916666666666666, 59.2 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-------", "LOCODE": "NOFUS", "Name": "Fusa", "NameWoDiac": "Fusa", "Status": "AA", "outflows": 99528.0 }, "geometry": { "type": "Point", "coordinates": [ 5.616666666666667, 60.2 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOGLO", "Name": "Glomfjord", "NameWoDiac": "Glomfjord", "Status": "AA", "outflows": 34164.0 }, "geometry": { "type": "Point", "coordinates": [ 13.933333333333334, 66.8 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOHFT", "Name": "Hammerfest", "NameWoDiac": "Hammerfest", "Status": "AA", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 23.666666666666668, 70.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOHRD", "Name": "Harstad", "NameWoDiac": "Harstad", "Status": "AA", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 16.533333333333335, 68.783333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOHAU", "Name": "Haugesund", "NameWoDiac": "Haugesund", "Status": "AA", "outflows": 337486.5 }, "geometry": { "type": "Point", "coordinates": [ 5.25, 59.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOHVI", "Name": "H�vik", "NameWoDiac": "Havik", "Status": "AA", "outflows": 116610.0 }, "geometry": { "type": "Point", "coordinates": [ 5.316666666666666, 59.3 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "--3-----", "LOCODE": "NOHLA", "Name": "Holla", "NameWoDiac": "Holla", "Status": "RL", "outflows": 45630.0 }, "geometry": { "type": "Point", "coordinates": [ 9.183333333333334, 59.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOHYR", "Name": "H�yanger", "NameWoDiac": "Hoyanger", "Status": "AA", "outflows": 39357.5 }, "geometry": { "type": "Point", "coordinates": [ 6.05, 61.216666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOHOY", "Name": "Hus�y - T�nsberg", "NameWoDiac": "Husoy - Tonsberg", "Status": "AA", "outflows": 17160.0 }, "geometry": { "type": "Point", "coordinates": [ 10.45, 59.233333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOIKR", "Name": "Ikornnes", "NameWoDiac": "Ikornnes", "Status": "AA", "outflows": 69888.0 }, "geometry": { "type": "Point", "coordinates": [ 6.55, 62.383333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "123-----", "LOCODE": "NOKRS", "Name": "Kristiansand", "NameWoDiac": "Kristiansand", "Status": "AA", "outflows": 86460.0 }, "geometry": { "type": "Point", "coordinates": [ 7.983333333333333, 58.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "123-----", "LOCODE": "NOLAR", "Name": "Larvik", "NameWoDiac": "Larvik", "Status": "AA", "outflows": 123903.0 }, "geometry": { "type": "Point", "coordinates": [ 10.016666666666667, 59.033333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOMAY", "Name": "M�l�y", "NameWoDiac": "Maloy", "Status": "AF", "outflows": 347613.5 }, "geometry": { "type": "Point", "coordinates": [ 5.1, 61.93333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOMOL", "Name": "Molde", "NameWoDiac": "Molde", "Status": "AA", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 7.15, 62.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1234----", "LOCODE": "NOMJF", "Name": "Mosj�en", "NameWoDiac": "Mosjoen", "Status": "AF", "outflows": 42276.0 }, "geometry": { "type": "Point", "coordinates": [ 13.2, 65.833333333333329 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "123-----", "LOCODE": "NOMSS", "Name": "Moss", "NameWoDiac": "Moss", "Status": "AA", "outflows": 51012.0 }, "geometry": { "type": "Point", "coordinates": [ 10.65, 59.416666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOODD", "Name": "Odda", "NameWoDiac": "Odda", "Status": "AA", "outflows": 19240.0 }, "geometry": { "type": "Point", "coordinates": [ 6.533333333333333, 60.06666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOORK", "Name": "Orkanger", "NameWoDiac": "Orkanger", "Status": "AA", "outflows": 132567.5 }, "geometry": { "type": "Point", "coordinates": [ 9.833333333333334, 63.31666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "12345---", "LOCODE": "NOOSL", "Name": "Oslo", "NameWoDiac": "Oslo", "Status": "AA", "outflows": 370877.0 }, "geometry": { "type": "Point", "coordinates": [ 10.733333333333333, 59.9 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOSAT", "Name": "Salten", "NameWoDiac": "Salten", "Status": "AA", "outflows": 34164.0 }, "geometry": { "type": "Point", "coordinates": [ 15.583333333333334, 67.36666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1234----", "LOCODE": "NOSVG", "Name": "Stavanger", "NameWoDiac": "Stavanger", "Status": "AI", "outflows": 99528.0 }, "geometry": { "type": "Point", "coordinates": [ 5.75, 58.966666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOSKN", "Name": "Stokmarknes", "NameWoDiac": "Stokmarknes", "Status": "AA", "outflows": 34164.0 }, "geometry": { "type": "Point", "coordinates": [ 14.9, 68.566666666666663 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOSUN", "Name": "Sunndals�ra", "NameWoDiac": "Sunndalsora", "Status": "AF", "outflows": 107250.0 }, "geometry": { "type": "Point", "coordinates": [ 8.55, 62.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOSVE", "Name": "Svelgen", "NameWoDiac": "Svelgen", "Status": "AA", "outflows": 34164.0 }, "geometry": { "type": "Point", "coordinates": [ 5.283333333333333, 61.766666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOSVJ", "Name": "Svolv�r", "NameWoDiac": "Svolvar", "Status": "AA", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 14.55, 68.216666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-3-----", "LOCODE": "NOTAE", "Name": "Tananger", "NameWoDiac": "Tananger", "Status": "AA", "outflows": 348445.5 }, "geometry": { "type": "Point", "coordinates": [ 5.583333333333333, 58.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-34----", "LOCODE": "NOTOS", "Name": "Troms�", "NameWoDiac": "Tromso", "Status": "AI", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 18.966666666666665, 69.666666666666671 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1234----", "LOCODE": "NOTRD", "Name": "Trondheim", "NameWoDiac": "Trondheim", "Status": "AA", "outflows": 9516.0 }, "geometry": { "type": "Point", "coordinates": [ 10.4, 63.43333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Nauru", "Function": "1--45---", "LOCODE": "NRINU", "Name": "Nauru Island", "NameWoDiac": "Nauru Island", "Status": "AI", "outflows": 3756.0 }, "geometry": { "type": "Point", "coordinates": [ 166.916666666666657, -0.55 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "12345---", "LOCODE": "NZAKL", "Name": "Auckland", "NameWoDiac": "Auckland", "Status": "AC", "outflows": 3839723.3548399992 }, "geometry": { "type": "Point", "coordinates": [ 174.8, -36.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "123-----", "LOCODE": "NZBLU", "Name": "Bluff", "NameWoDiac": "Bluff", "Status": "AC", "outflows": 537012.66663 }, "geometry": { "type": "Point", "coordinates": [ 168.316666666666663, -46.6 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1-3-----", "LOCODE": "NZLYT", "Name": "Lyttelton", "NameWoDiac": "Lyttelton", "Status": "AC", "outflows": 2992885.6903999997 }, "geometry": { "type": "Point", "coordinates": [ 172.716666666666669, -43.6 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1-3-----", "LOCODE": "NZMAP", "Name": "Marsden Point", "NameWoDiac": "Marsden Point", "Status": "AC", "outflows": 722904.00003 }, "geometry": { "type": "Point", "coordinates": [ 174.5, -35.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1--4----", "LOCODE": "NZNPE", "Name": "Napier", "NameWoDiac": "Napier", "Status": "AC", "outflows": 3423163.5692899991 }, "geometry": { "type": "Point", "coordinates": [ 176.9, -39.466666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1-34----", "LOCODE": "NZNSN", "Name": "Nelson", "NameWoDiac": "Nelson", "Status": "AC", "outflows": 1229461.9998700004 }, "geometry": { "type": "Point", "coordinates": [ 173.26666666666668, -41.25 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1-------", "LOCODE": "NZPOE", "Name": "Port Chalmers", "NameWoDiac": "Port Chalmers", "Status": "AC", "outflows": 1736542.9262700006 }, "geometry": { "type": "Point", "coordinates": [ 170.6, -45.81666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1234----", "LOCODE": "NZTRG", "Name": "Tauranga", "NameWoDiac": "Tauranga", "Status": "AI", "outflows": 6568750.5691900002 }, "geometry": { "type": "Point", "coordinates": [ 176.166666666666657, -37.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1234----", "LOCODE": "NZTIU", "Name": "Timaru", "NameWoDiac": "Timaru", "Status": "AC", "outflows": 1399570.2597300003 }, "geometry": { "type": "Point", "coordinates": [ 171.25, -44.383333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "New Zealand", "Function": "1234----", "LOCODE": "NZWLG", "Name": "Wellington", "NameWoDiac": "Wellington", "Status": "AC", "outflows": 1605903.3093099999 }, "geometry": { "type": "Point", "coordinates": [ 174.783333333333331, -41.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "1-345---", "LOCODE": "PAONX", "Name": "Col�n", "NameWoDiac": "Colon", "Status": "AI", "outflows": 5425996.6880400013 }, "geometry": { "type": "Point", "coordinates": [ -79.86666666666666, 9.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "1-------", "LOCODE": "PACTB", "Name": "Crist�bal", "NameWoDiac": "Cristobal", "Status": "AI", "outflows": 7696418.2510899995 }, "geometry": { "type": "Point", "coordinates": [ -79.9, 9.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "1-345---", "LOCODE": "PAPTY", "Name": "Panam�, Ciudad de", "NameWoDiac": "Panama, Ciudad de", "Status": "AI", "outflows": 13494.0 }, "geometry": { "type": "Point", "coordinates": [ -79.533333333333331, 8.966666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "1-------", "LOCODE": "PAROD", "Name": "Rodman", "NameWoDiac": "Rodman", "Status": "RL", "outflows": 4784764.0453200005 }, "geometry": { "type": "Point", "coordinates": [ -79.566666666666663, 8.95 ] } }, -{ "type": "Feature", "properties": { "Country": "French Polynesia", "Function": "1--4----", "LOCODE": "PFBOB", "Name": "Bora Bora", "NameWoDiac": "Bora Bora", "Status": "AI", "outflows": 726.75 }, "geometry": { "type": "Point", "coordinates": [ -151.75, -16.45 ] } }, -{ "type": "Feature", "properties": { "Country": "French Polynesia", "Function": "1--45---", "LOCODE": "PFPPT", "Name": "Papeete", "NameWoDiac": "Papeete", "Status": "AI", "outflows": 1092395.0833000003 }, "geometry": { "type": "Point", "coordinates": [ -149.616666666666674, -17.55 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGMAG", "Name": "Madang", "NameWoDiac": "Madang", "Status": "AI", "outflows": 168130.0 }, "geometry": { "type": "Point", "coordinates": [ 145.783333333333331, -5.216666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1-------", "LOCODE": "PGMTK", "Name": "Motukea Island", "NameWoDiac": "Motukea Island", "Status": "RL", "outflows": 301007.5 }, "geometry": { "type": "Point", "coordinates": [ 147.1, -9.433333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1-3--6--", "LOCODE": "PHBTG", "Name": "Batangas\/Luzon", "NameWoDiac": "Batangas\/Luzon", "Status": "AI", "outflows": 1811559.5 }, "geometry": { "type": "Point", "coordinates": [ 121.05, 13.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1-34----", "LOCODE": "PHGES", "Name": "General Santos", "NameWoDiac": "General Santos", "Status": "AI", "outflows": 925870.83340999996 }, "geometry": { "type": "Point", "coordinates": [ 125.15, 6.116666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1-3-----", "LOCODE": "PHTGO", "Name": "Tagoloan", "NameWoDiac": "Tagoloan", "Status": "RL", "outflows": 12150.0 }, "geometry": { "type": "Point", "coordinates": [ 124.75, 8.533333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Poland", "Function": "123-----", "LOCODE": "PLGDY", "Name": "Gdynia", "NameWoDiac": "Gdynia", "Status": "RL", "outflows": 1377819.1666200003 }, "geometry": { "type": "Point", "coordinates": [ 18.55, 54.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Poland", "Function": "123-----", "LOCODE": "PLSWI", "Name": "Swinoujscie", "NameWoDiac": "Swinoujscie", "Status": "RL", "outflows": 16263.0 }, "geometry": { "type": "Point", "coordinates": [ 14.25, 53.9 ] } }, -{ "type": "Feature", "properties": { "Country": "Puerto Rico", "Function": "1--45---", "LOCODE": "PRSJU", "Name": "San Juan", "NameWoDiac": "San Juan", "Status": "AI", "outflows": 914875.50003 }, "geometry": { "type": "Point", "coordinates": [ -66.083333333333329, 18.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-3-----", "LOCODE": "PTCNL", "Name": "Cani�al", "NameWoDiac": "Canical", "Status": "RL", "outflows": 70018.0 }, "geometry": { "type": "Point", "coordinates": [ -16.733333333333334, 32.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "123-----", "LOCODE": "PTFDF", "Name": "Figueira da Foz", "NameWoDiac": "Figueira da Foz", "Status": "AI", "outflows": 26754.0 }, "geometry": { "type": "Point", "coordinates": [ -8.866666666666667, 40.15 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-34----", "LOCODE": "PTHOR", "Name": "Horta", "NameWoDiac": "Horta", "Status": "AI", "outflows": 32292.0 }, "geometry": { "type": "Point", "coordinates": [ -28.633333333333333, 38.533333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "123-----", "LOCODE": "PTLEI", "Name": "Leix�es", "NameWoDiac": "Leixoes", "Status": "AI", "outflows": 1619530.783304 }, "geometry": { "type": "Point", "coordinates": [ -8.683333333333334, 41.18333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "12345---", "LOCODE": "PTLIS", "Name": "Lisboa", "NameWoDiac": "Lisboa", "Status": "AI", "outflows": 1373631.1667299997 }, "geometry": { "type": "Point", "coordinates": [ -9.133333333333333, 38.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "--3-----", "LOCODE": "PTPIC", "Name": "Pico", "NameWoDiac": "Pico", "Status": "RL", "outflows": 23192.0 }, "geometry": { "type": "Point", "coordinates": [ -8.416666666666666, 41.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-345---", "LOCODE": "PTPDL", "Name": "Ponta Delgada", "NameWoDiac": "Ponta Delgada", "Status": "AI", "outflows": 109096.0 }, "geometry": { "type": "Point", "coordinates": [ -25.666666666666668, 37.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1--4---B", "LOCODE": "PTPXO", "Name": "Porto Santo Island", "NameWoDiac": "Porto Santo Island", "Status": "AI", "outflows": 28236.0 }, "geometry": { "type": "Point", "coordinates": [ -16.333333333333332, 33.06666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-3-----", "LOCODE": "PTPRG", "Name": "Praia da Graciosa", "NameWoDiac": "Praia da Graciosa", "Status": "AI", "outflows": 19500.0 }, "geometry": { "type": "Point", "coordinates": [ -27.966666666666665, 39.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-3-----", "LOCODE": "PTPRV", "Name": "Praia da Vit�ria", "NameWoDiac": "Praia da Vitoria", "Status": "AI", "outflows": 109096.0 }, "geometry": { "type": "Point", "coordinates": [ -27.066666666666666, 38.733333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-3-----", "LOCODE": "PTSCF", "Name": "Santa Cruz das Flores", "NameWoDiac": "Santa Cruz das Flores", "Status": "RL", "outflows": 16146.0 }, "geometry": { "type": "Point", "coordinates": [ -31.116666666666667, 39.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "123-----", "LOCODE": "PTSET", "Name": "Set�bal", "NameWoDiac": "Setubal", "Status": "AI", "outflows": 443319.5 }, "geometry": { "type": "Point", "coordinates": [ -8.9, 38.533333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1234----", "LOCODE": "PTSIE", "Name": "Sines", "NameWoDiac": "Sines", "Status": "AI", "outflows": 11424189.365200002 }, "geometry": { "type": "Point", "coordinates": [ -8.866666666666667, 37.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-3-----", "LOCODE": "PTVEL", "Name": "Velas", "NameWoDiac": "Velas", "Status": "AI", "outflows": 47190.0 }, "geometry": { "type": "Point", "coordinates": [ -28.216666666666665, 38.68333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Portugal", "Function": "1-3-----", "LOCODE": "PTVDP", "Name": "Vila do Porto", "NameWoDiac": "Vila do Porto", "Status": "RL", "outflows": 13468.0 }, "geometry": { "type": "Point", "coordinates": [ -25.15, 36.93333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Paraguay", "Function": "1--45---", "LOCODE": "PYASU", "Name": "Asunci�n", "NameWoDiac": "Asuncion", "Status": "AI", "outflows": 13793.0 }, "geometry": { "type": "Point", "coordinates": [ -57.666666666666664, -25.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Qatar", "Function": "1-------", "LOCODE": "QAHMD", "Name": "BGN\/PCGN1956 - HAMAD", "NameWoDiac": "BGN\/PCGN1956 - HAMAD", "Status": "RL", "outflows": 11570563.360890001 }, "geometry": { "type": "Point", "coordinates": [ 51.616666666666667, 25.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Qatar", "Function": "1----6--", "LOCODE": "QAMES", "Name": "Mesaieed", "NameWoDiac": "Mesaieed", "Status": "RQ", "outflows": 87230.0 }, "geometry": { "type": "Point", "coordinates": [ 51.916666666666664, 25.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Romania", "Function": "1234-6--", "LOCODE": "ROCND", "Name": "Constanta", "NameWoDiac": "Constanta", "Status": "AI", "outflows": 4202750.0668100007 }, "geometry": { "type": "Point", "coordinates": [ 28.65, 44.18333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "123-----", "LOCODE": "RUBRK", "Name": "Lomonosov", "NameWoDiac": "Lomonosov", "Status": "RL", "outflows": 172926.0 }, "geometry": { "type": "Point", "coordinates": [ 29.733333333333334, 59.9 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "123--6--", "LOCODE": "RUNVS", "Name": "Novorossiysk", "NameWoDiac": "Novorossiysk", "Status": "RL", "outflows": 2856095.6668099994 }, "geometry": { "type": "Point", "coordinates": [ 37.766666666666666, 44.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "12345---", "LOCODE": "RULED", "Name": "Saint Petersburg (ex Leningrad)", "NameWoDiac": "Saint Petersburg (ex Leningrad)", "Status": "AI", "outflows": 2197863.9046789999 }, "geometry": { "type": "Point", "coordinates": [ 30.25, 59.883333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "123-----", "LOCODE": "RUULU", "Name": "Ust'-Luga", "NameWoDiac": "Ust'-Luga", "Status": "RL", "outflows": 217892.99998 }, "geometry": { "type": "Point", "coordinates": [ 28.316666666666666, 59.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1-------", "LOCODE": "RUVYP", "Name": "Vostochnyy Port", "NameWoDiac": "Vostochnyy Port", "Status": "RL", "outflows": 694044.00000000012 }, "geometry": { "type": "Point", "coordinates": [ 133.05, 42.766666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1-------", "LOCODE": "RUZAR", "Name": "Zarubino", "NameWoDiac": "Zarubino", "Status": "RL", "outflows": 8476.0 }, "geometry": { "type": "Point", "coordinates": [ 131.083333333333343, 42.616666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Saudi Arabia", "Function": "12345---", "LOCODE": "SADMM", "Name": "Ad Dammam", "NameWoDiac": "Ad Dammam", "Status": "RL", "outflows": 11255729.646892 }, "geometry": { "type": "Point", "coordinates": [ 50.1, 26.416666666666668 ] } }, -{ "type": "Feature", "properties": { "Country": "Saudi Arabia", "Function": "1--45---", "LOCODE": "SAJED", "Name": "Jeddah", "NameWoDiac": "Jeddah", "Status": "AI", "outflows": 28479677.911780011 }, "geometry": { "type": "Point", "coordinates": [ 39.166666666666664, 21.533333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "Saudi Arabia", "Function": "1-3-----", "LOCODE": "SAKAC", "Name": "King Abdullah City", "NameWoDiac": "King Abdullah City", "Status": "RQ", "outflows": 13582128.147299998 }, "geometry": { "type": "Point", "coordinates": [ 39.083333333333336, 22.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Saudi Arabia", "Function": "1-34----", "LOCODE": "SAYNB", "Name": "Yanbu al-Bahr", "NameWoDiac": "Yanbu al-Bahr", "Status": "AI", "outflows": 49257.0 }, "geometry": { "type": "Point", "coordinates": [ 38.033333333333331, 24.083333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "123-----", "LOCODE": "SEAHU", "Name": "�hus", "NameWoDiac": "Ahus", "Status": "AA", "outflows": 33696.0 }, "geometry": { "type": "Point", "coordinates": [ 14.283333333333333, 55.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1--4----", "LOCODE": "SEGVX", "Name": "G�vle", "NameWoDiac": "Gavle", "Status": "AA", "outflows": 278876.0 }, "geometry": { "type": "Point", "coordinates": [ 17.166666666666668, 60.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "12345---", "LOCODE": "SEGOT", "Name": "G�teborg", "NameWoDiac": "Goteborg", "Status": "AA", "outflows": 3614371.4282800001 }, "geometry": { "type": "Point", "coordinates": [ 11.966666666666667, 57.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1234----", "LOCODE": "SEHAD", "Name": "Halmstad", "NameWoDiac": "Halmstad", "Status": "AA", "outflows": 48750.0 }, "geometry": { "type": "Point", "coordinates": [ 12.85, 56.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1--4----", "LOCODE": "SEKSD", "Name": "Karlstad", "NameWoDiac": "Karlstad", "Status": "AA", "outflows": 3312.0 }, "geometry": { "type": "Point", "coordinates": [ 13.5, 59.366666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1234----", "LOCODE": "SENRK", "Name": "Norrk�ping", "NameWoDiac": "Norrkoping", "Status": "AA", "outflows": 296309.0 }, "geometry": { "type": "Point", "coordinates": [ 16.183333333333334, 58.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "123-----", "LOCODE": "SEOSK", "Name": "Oskarshamn", "NameWoDiac": "Oskarshamn", "Status": "AA", "outflows": 84688.5 }, "geometry": { "type": "Point", "coordinates": [ 16.433333333333334, 57.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "123-----", "LOCODE": "SEOXE", "Name": "Oxel�sund", "NameWoDiac": "Oxelosund", "Status": "AA", "outflows": 73031.833334999988 }, "geometry": { "type": "Point", "coordinates": [ 17.1, 58.666666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "123-----", "LOCODE": "SEPIT", "Name": "Pite�", "NameWoDiac": "Pitea", "Status": "AA", "outflows": 67392.0 }, "geometry": { "type": "Point", "coordinates": [ 21.5, 65.333333333333329 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "123--6--", "LOCODE": "SESOE", "Name": "S�dert�lje", "NameWoDiac": "Sodertalje", "Status": "AA", "outflows": 54799.333335000003 }, "geometry": { "type": "Point", "coordinates": [ 17.616666666666667, 59.2 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "12345---", "LOCODE": "SESTO", "Name": "Stockholm", "NameWoDiac": "Stockholm", "Status": "AA", "outflows": 227955.0 }, "geometry": { "type": "Point", "coordinates": [ 18.05, 59.333333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1-34----", "LOCODE": "SESDL", "Name": "Sundsvall", "NameWoDiac": "Sundsvall", "Status": "AA", "outflows": 51928.5 }, "geometry": { "type": "Point", "coordinates": [ 17.3, 62.383333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1234----", "LOCODE": "SEUME", "Name": "Ume�", "NameWoDiac": "Umea", "Status": "AI", "outflows": 51928.5 }, "geometry": { "type": "Point", "coordinates": [ 20.25, 63.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "1234----", "LOCODE": "SEVST", "Name": "V�ster�s", "NameWoDiac": "Vasteras", "Status": "AA", "outflows": 21103.333335000003 }, "geometry": { "type": "Point", "coordinates": [ 16.55, 59.616666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Syrian Arab Republic", "Function": "1--4----", "LOCODE": "SYLTK", "Name": "Latakia", "NameWoDiac": "Latakia", "Status": "AI", "outflows": 719300.0 }, "geometry": { "type": "Point", "coordinates": [ 35.783333333333331, 35.516666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Syrian Arab Republic", "Function": "1-3-----", "LOCODE": "SYTTS", "Name": "Tartus", "NameWoDiac": "Tartus", "Status": "RL", "outflows": 103493.0 }, "geometry": { "type": "Point", "coordinates": [ 35.9, 34.9 ] } }, -{ "type": "Feature", "properties": { "Country": "Thailand", "Function": "12345---", "LOCODE": "THBKK", "Name": "Bangkok", "NameWoDiac": "Bangkok", "Status": "AI", "outflows": 4526246.8335100003 }, "geometry": { "type": "Point", "coordinates": [ 100.516666666666666, 13.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Thailand", "Function": "1-3-----", "LOCODE": "THLCH", "Name": "Laem Chabang", "NameWoDiac": "Laem Chabang", "Status": "RL", "outflows": 21757591.196550008 }, "geometry": { "type": "Point", "coordinates": [ 100.88333333333334, 13.083333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Thailand", "Function": "---4----", "LOCODE": "THHKT", "Name": "Phuket International Apt", "NameWoDiac": "Phuket International Apt", "Status": "AA", "outflows": 44898.75 }, "geometry": { "type": "Point", "coordinates": [ 98.316666666666663, 8.116666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Thailand", "Function": "1-3-----", "LOCODE": "THSCS", "Name": "Sahathai Coastal Seaport", "NameWoDiac": "Sahathai Coastal Seaport", "Status": "RQ", "outflows": 91563.33335 }, "geometry": { "type": "Point", "coordinates": [ 100.533333333333331, 13.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Timor-Leste", "Function": "1-34----", "LOCODE": "TLDIL", "Name": "Dili", "NameWoDiac": "Dili", "Status": "RL", "outflows": 34187.75 }, "geometry": { "type": "Point", "coordinates": [ 125.566666666666663, -8.55 ] } }, -{ "type": "Feature", "properties": { "Country": "Tonga", "Function": "1--45---", "LOCODE": "TOTBU", "Name": "Nuku'alofa", "NameWoDiac": "Nuku'alofa", "Status": "AI", "outflows": 178599.5 }, "geometry": { "type": "Point", "coordinates": [ -175.2, -21.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "--3-----", "LOCODE": "TRPAM", "Name": "Ambarli", "NameWoDiac": "Ambarli", "Status": "RL", "outflows": 14411413.266529994 }, "geometry": { "type": "Point", "coordinates": [ 39.166666666666664, 41.033333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1234----", "LOCODE": "TRAYT", "Name": "Antalya", "NameWoDiac": "Antalya", "Status": "AI", "outflows": 111670.0 }, "geometry": { "type": "Point", "coordinates": [ 30.6, 36.833333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1234----", "LOCODE": "TRBDM", "Name": "Bandirma", "NameWoDiac": "Bandirma", "Status": "AI", "outflows": 19968.0 }, "geometry": { "type": "Point", "coordinates": [ 27.966666666666665, 40.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "--3-----", "LOCODE": "TRELI", "Name": "Eregli", "NameWoDiac": "Eregli", "Status": "RL", "outflows": 46215.0 }, "geometry": { "type": "Point", "coordinates": [ 34.05, 37.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TREYP", "Name": "Evyap Port \/Kocaeli", "NameWoDiac": "Evyap Port \/Kocaeli", "Status": "RL", "outflows": 2234864.6663000002 }, "geometry": { "type": "Point", "coordinates": [ 29.7, 40.766666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TRGEB", "Name": "Gebze", "NameWoDiac": "Gebze", "Status": "RL", "outflows": 3850254.1414999994 }, "geometry": { "type": "Point", "coordinates": [ 29.416666666666668, 40.783333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-------", "LOCODE": "TRGEM", "Name": "Gemlik", "NameWoDiac": "Gemlik", "Status": "RL", "outflows": 5852461.2414100012 }, "geometry": { "type": "Point", "coordinates": [ 29.15, 40.416666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TRISK", "Name": "Iskenderun", "NameWoDiac": "Iskenderun", "Status": "RL", "outflows": 5577045.5832400005 }, "geometry": { "type": "Point", "coordinates": [ 36.166666666666664, 36.583333333333336 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "12345---", "LOCODE": "TRIZM", "Name": "Izmir", "NameWoDiac": "Izmir", "Status": "AI", "outflows": 3559402.8750300007 }, "geometry": { "type": "Point", "coordinates": [ 27.15, 38.416666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TRIZT", "Name": "Izmit", "NameWoDiac": "Izmit", "Status": "RL", "outflows": 8619638.1665099971 }, "geometry": { "type": "Point", "coordinates": [ 29.95, 40.783333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TRKMX", "Name": "Kumport", "NameWoDiac": "Kumport", "Status": "RQ", "outflows": 829400.0 }, "geometry": { "type": "Point", "coordinates": [ 28.816666666666666, 40.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-------", "LOCODE": "TRLMA", "Name": "Limas", "NameWoDiac": "Limas", "Status": "RQ", "outflows": 31720.0 }, "geometry": { "type": "Point", "coordinates": [ 26.916666666666668, 38.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TRMAD", "Name": "Mardas", "NameWoDiac": "Mardas", "Status": "RQ", "outflows": 103532.0 }, "geometry": { "type": "Point", "coordinates": [ 28.95, 41.016666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "123-----", "LOCODE": "TRMER", "Name": "Mersin", "NameWoDiac": "Mersin", "Status": "RL", "outflows": 9929684.1327900011 }, "geometry": { "type": "Point", "coordinates": [ 34.633333333333333, 36.716666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1--4----", "LOCODE": "TRSSX", "Name": "Samsun", "NameWoDiac": "Samsun", "Status": "AI", "outflows": 105306.5 }, "geometry": { "type": "Point", "coordinates": [ 36.333333333333336, 41.283333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1234----", "LOCODE": "TRTEK", "Name": "Tekirdag", "NameWoDiac": "Tekirdag", "Status": "AI", "outflows": 4941615.3749799989 }, "geometry": { "type": "Point", "coordinates": [ 27.516666666666666, 40.966666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-34----", "LOCODE": "TRTZX", "Name": "Trabzon", "NameWoDiac": "Trabzon", "Status": "AI", "outflows": 14760.0 }, "geometry": { "type": "Point", "coordinates": [ 39.733333333333334, 41.0 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-3-----", "LOCODE": "TRYPO", "Name": "Yilport", "NameWoDiac": "Yilport", "Status": "RL", "outflows": 253751.33331 }, "geometry": { "type": "Point", "coordinates": [ 29.533333333333335, 40.766666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Trinidad and Tobago", "Function": "1--45---", "LOCODE": "TTPOS", "Name": "Port-of-Spain", "NameWoDiac": "Port-of-Spain", "Status": "AI", "outflows": 1136813.0 }, "geometry": { "type": "Point", "coordinates": [ -61.516666666666666, 10.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Trinidad and Tobago", "Function": "1--45---", "LOCODE": "TTPOS", "Name": "Port-of-Spain", "NameWoDiac": "Port-of-Spain", "Status": "AI", "outflows": 1136813.0 }, "geometry": { "type": "Point", "coordinates": [ -61.516666666666666, 10.65 ] } }, -{ "type": "Feature", "properties": { "Country": "Taiwan, Province of China", "Function": "1--45---", "LOCODE": "TWTPE", "Name": "Taipei", "NameWoDiac": "Taipei", "Status": "AI", "outflows": 10793107.077210007 }, "geometry": { "type": "Point", "coordinates": [ 121.516666666666666, 25.033333333333335 ] } }, -{ "type": "Feature", "properties": { "Country": "Tanzania, United Republic of", "Function": "12345---", "LOCODE": "TZDAR", "Name": "Dar es Salaam", "NameWoDiac": "Dar es Salaam", "Status": "AI", "outflows": 1404403.5674399997 }, "geometry": { "type": "Point", "coordinates": [ 39.283333333333331, -6.8 ] } }, -{ "type": "Feature", "properties": { "Country": "Ukraine", "Function": "123-----", "LOCODE": "UAILK", "Name": "Chornomorsk", "NameWoDiac": "Chornomorsk", "Status": "AA", "outflows": 1398819.4999800001 }, "geometry": { "type": "Point", "coordinates": [ 30.666666666666668, 46.31666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Ukraine", "Function": "1234-6--", "LOCODE": "UAODS", "Name": "Odesa", "NameWoDiac": "Odesa", "Status": "AA", "outflows": 2843490.8999800007 }, "geometry": { "type": "Point", "coordinates": [ 30.75, 46.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Ukraine", "Function": "1-------", "LOCODE": "UAYUZ", "Name": "Yuzhnyi", "NameWoDiac": "Yuzhnyi", "Status": "AA", "outflows": 1861645.5 }, "geometry": { "type": "Point", "coordinates": [ 31.016666666666666, 46.6 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "123-----", "LOCODE": "USBAL", "Name": "Baltimore", "NameWoDiac": "Baltimore", "Status": "RL", "outflows": 6053080.2448899997 }, "geometry": { "type": "Point", "coordinates": [ -76.61666666666666, 39.283333333333331 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "-23-----", "LOCODE": "USACL", "Name": "Chester", "NameWoDiac": "Chester", "Status": "RL", "outflows": 109902.0 }, "geometry": { "type": "Point", "coordinates": [ -72.583333333333329, 43.266666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "--3----B", "LOCODE": "USEPI", "Name": "Eastport", "NameWoDiac": "Eastport", "Status": "RN", "outflows": 28364.0 }, "geometry": { "type": "Point", "coordinates": [ -67.000460366215606, 44.918963897792032 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-3-----", "LOCODE": "USFEB", "Name": "Fernandina Beach", "NameWoDiac": "Fernandina Beach", "Status": "RL", "outflows": 2700.0 }, "geometry": { "type": "Point", "coordinates": [ -81.45, 30.666666666666668 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "--3--6--", "LOCODE": "USGFP", "Name": "Gulfport", "NameWoDiac": "Gulfport", "Status": "RQ", "outflows": 179625.33335 }, "geometry": { "type": "Point", "coordinates": [ -89.084906220322893, 30.378156457739781 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-345---", "LOCODE": "USHNL", "Name": "Honolulu", "NameWoDiac": "Honolulu", "Status": "AI", "outflows": 808514.83334000001 }, "geometry": { "type": "Point", "coordinates": [ -157.85, 21.3 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "-23--6--", "LOCODE": "USHKA", "Name": "Houston", "NameWoDiac": "Houston", "Status": "RL", "outflows": 14456458.251239998 }, "geometry": { "type": "Point", "coordinates": [ -149.816666666666663, 61.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1234----", "LOCODE": "USLGB", "Name": "Long Beach", "NameWoDiac": "Long Beach", "Status": "AI", "outflows": 12114713.79308 }, "geometry": { "type": "Point", "coordinates": [ -118.183333333333337, 33.766666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "12345---", "LOCODE": "USNYC", "Name": "New York", "NameWoDiac": "New York", "Status": "AI", "outflows": 27396473.865290001 }, "geometry": { "type": "Point", "coordinates": [ -74.0, 40.7 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "--3--6--", "LOCODE": "USNFF", "Name": "Norfolk", "NameWoDiac": "Norfolk", "Status": "RL", "outflows": 20779844.877009999 }, "geometry": { "type": "Point", "coordinates": [ -73.2, 42.0 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "-23-----", "LOCODE": "USKND", "Name": "Oakland", "NameWoDiac": "Oakland", "Status": "RL", "outflows": 17163885.235119998 }, "geometry": { "type": "Point", "coordinates": [ -122.220254629629636, 37.932904795821436 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "-23--6--", "LOCODE": "USPDP", "Name": "Philadelphia", "NameWoDiac": "Philadelphia", "Status": "RL", "outflows": 5743740.1835829979 }, "geometry": { "type": "Point", "coordinates": [ -75.716666666666669, 44.15 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-34----", "LOCODE": "USPEF", "Name": "Port Everglades", "NameWoDiac": "Port Everglades", "Status": "RN", "outflows": 3155879.7381200008 }, "geometry": { "type": "Point", "coordinates": [ -80.13333333333334, 26.1 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1234-6--", "LOCODE": "USNTD", "Name": "Port Hueneme", "NameWoDiac": "Port Hueneme", "Status": "AI", "outflows": 585733.2 }, "geometry": { "type": "Point", "coordinates": [ -119.183333333333337, 34.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-3-----", "LOCODE": "USPME", "Name": "Port Manatee", "NameWoDiac": "Port Manatee", "Status": "RL", "outflows": 88523.5 }, "geometry": { "type": "Point", "coordinates": [ -82.55, 27.633333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-34----", "LOCODE": "USSAN", "Name": "San Diego", "NameWoDiac": "San Diego", "Status": "AI", "outflows": 60060.0 }, "geometry": { "type": "Point", "coordinates": [ -117.15, 32.7 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-34----", "LOCODE": "USSCK", "Name": "Stockton", "NameWoDiac": "Stockton", "Status": "AI", "outflows": 27774.0 }, "geometry": { "type": "Point", "coordinates": [ -121.283333333333331, 37.95 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USILM", "Name": "Wilmington", "NameWoDiac": "Wilmington", "Status": "AI", "outflows": 2749421.5816000002 }, "geometry": { "type": "Point", "coordinates": [ -77.933333333333337, 34.216666666666669 ] } }, -{ "type": "Feature", "properties": { "Country": "Uruguay", "Function": "--3-----", "LOCODE": "UYPTP", "Name": "Punta Pereyra", "NameWoDiac": "Punta Pereyra", "Status": "RQ", "outflows": 7800.0 }, "geometry": { "type": "Point", "coordinates": [ -58.06666666666667, -34.233333333333334 ] } }, -{ "type": "Feature", "properties": { "Country": "Saint Vincent and the Grenadines", "Function": "1--45---", "LOCODE": "VCKTN", "Name": "Kingstown", "NameWoDiac": "Kingstown", "Status": "RL", "outflows": 225040.4 }, "geometry": { "type": "Point", "coordinates": [ -61.216666666666669, 13.133333333333333 ] } }, -{ "type": "Feature", "properties": { "Country": "Venezuela, Bolivarian Republic of", "Function": "1--4----", "LOCODE": "VEPLA", "Name": "Pal�a", "NameWoDiac": "Palua", "Status": "AI", "outflows": 15540.0 }, "geometry": { "type": "Point", "coordinates": [ -62.666666666666664, 8.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Virgin Islands, U.S.", "Function": "1-------", "LOCODE": "VICTD", "Name": "Christiansted, Saint Croix", "NameWoDiac": "Christiansted, Saint Croix", "Status": "AI", "outflows": 11076.0 }, "geometry": { "type": "Point", "coordinates": [ -64.75, 17.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "--3-----", "LOCODE": "VNC8Q", "Name": "Chu Lai", "NameWoDiac": "Chu Lai", "Status": "RL", "outflows": 233142.0 }, "geometry": { "type": "Point", "coordinates": [ 108.7, 15.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "1--4----", "LOCODE": "VNDAD", "Name": "Da Nang", "NameWoDiac": "Da Nang", "Status": "AI", "outflows": 3019963.9167599995 }, "geometry": { "type": "Point", "coordinates": [ 108.216666666666669, 16.066666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "1-3456--", "LOCODE": "VNSGN", "Name": "Ho Chi Minh City", "NameWoDiac": "Ho Chi Minh City", "Status": "AI", "outflows": 12782452.750279998 }, "geometry": { "type": "Point", "coordinates": [ 106.666666666666671, 10.766666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "1-3-----", "LOCODE": "VNNGH", "Name": "Nghi Son", "NameWoDiac": "Nghi Son", "Status": "RL", "outflows": 43602.0 }, "geometry": { "type": "Point", "coordinates": [ 105.833333333333329, 19.333333333333332 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "1-34----", "LOCODE": "VNUIH", "Name": "Qui Nhon", "NameWoDiac": "Qui Nhon", "Status": "AI", "outflows": 418626.0 }, "geometry": { "type": "Point", "coordinates": [ 109.216666666666669, 13.766666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "1-34----", "LOCODE": "VNVUT", "Name": "Vung Tau", "NameWoDiac": "Vung Tau", "Status": "RL", "outflows": 21025136.034170005 }, "geometry": { "type": "Point", "coordinates": [ 107.066666666666663, 10.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Wallis and Futuna", "Function": "---4----", "LOCODE": "WFFUT", "Name": "Vele Futuna I. Apt", "NameWoDiac": "Vele Futuna I. Apt", "Status": "AI", "outflows": 10200.0 }, "geometry": { "type": "Point", "coordinates": [ -178.083333333333343, -14.316666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "Mayotte", "Function": "1-3-----", "LOCODE": "YTLON", "Name": "Longoni", "NameWoDiac": "Longoni", "Status": "AA", "outflows": 298158.99997999996 }, "geometry": { "type": "Point", "coordinates": [ 45.166666666666664, -12.716666666666667 ] } }, -{ "type": "Feature", "properties": { "Country": "South Africa", "Function": "12345---", "LOCODE": "ZACPT", "Name": "Cape Town", "NameWoDiac": "Cape Town", "Status": "AF", "outflows": 4902763.6243000003 }, "geometry": { "type": "Point", "coordinates": [ 18.416666666666668, -33.916666666666664 ] } }, -{ "type": "Feature", "properties": { "Country": "South Africa", "Function": "-----6--", "LOCODE": "ZAZBA", "Name": "Coega", "NameWoDiac": "Coega", "Status": "RL", "outflows": 3467734.6668099998 }, "geometry": { "type": "Point", "coordinates": [ 25.666666666666668, -33.766666666666666 ] } }, -{ "type": "Feature", "properties": { "Country": "South Africa", "Function": "12345---", "LOCODE": "ZADUR", "Name": "Durban", "NameWoDiac": "Durban", "Status": "AI", "outflows": 8754191.1218599975 }, "geometry": { "type": "Point", "coordinates": [ 31.016666666666666, -29.85 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-3-----", "LOCODE": "AEAJM", "Name": "Ajman", "NameWoDiac": "Ajman", "Status": "RL", "outflows": 73567.0 }, "geometry": { "type": "Point", "coordinates": [ 55.47878, 25.40177 ] } }, -{ "type": "Feature", "properties": { "Country": "United Arab Emirates", "Function": "1-------", "LOCODE": "AEJEA", "Name": "Jebel Ali", "NameWoDiac": "Jebel Ali", "Status": "QQ", "outflows": 44524119.850148 }, "geometry": { "type": "Point", "coordinates": [ 55.10811, 25.00255 ] } }, -{ "type": "Feature", "properties": { "Country": "Anguilla", "Function": "---45---", "LOCODE": "AIAXA", "Name": "Anguilla", "NameWoDiac": "Anguilla", "Status": "AI", "outflows": 230958.0 }, "geometry": { "type": "Point", "coordinates": [ -63.09375, 18.17648 ] } }, -{ "type": "Feature", "properties": { "Country": "Albania", "Function": "1-------", "LOCODE": "ALDRZ", "Name": "Durr�s", "NameWoDiac": "Durres", "Status": "RL", "outflows": 134307.0 }, "geometry": { "type": "Point", "coordinates": [ 19.45469, 41.32355 ] } }, -{ "type": "Feature", "properties": { "Country": "Albania", "Function": "1-------", "LOCODE": "ALDRZ", "Name": "Durr�s", "NameWoDiac": "Durres", "Status": "RL", "outflows": 134307.0 }, "geometry": { "type": "Point", "coordinates": [ 19.45469, 41.32355 ] } }, -{ "type": "Feature", "properties": { "Country": "Angola", "Function": "1--4----", "LOCODE": "AOCAB", "Name": "Cabinda", "NameWoDiac": "Cabinda", "Status": "AI", "outflows": 2673.25 }, "geometry": { "type": "Point", "coordinates": [ 12.2, -5.55 ] } }, -{ "type": "Feature", "properties": { "Country": "Angola", "Function": "1---5---", "LOCODE": "AOLOB", "Name": "Lobito", "NameWoDiac": "Lobito", "Status": "RL", "outflows": 210369.4 }, "geometry": { "type": "Point", "coordinates": [ 13.53601, -12.3644 ] } }, -{ "type": "Feature", "properties": { "Country": "Angola", "Function": "1--45---", "LOCODE": "AOLAD", "Name": "Luanda", "NameWoDiac": "Luanda", "Status": "AI", "outflows": 2439604.518850001 }, "geometry": { "type": "Point", "coordinates": [ 13.23432, -8.83682 ] } }, -{ "type": "Feature", "properties": { "Country": "Angola", "Function": "0-------", "LOCODE": "AOMAL", "Name": "Malongo", "NameWoDiac": "Malongo", "Status": "RQ", "outflows": 8707.5 }, "geometry": { "type": "Point", "coordinates": [ 12.19802179783948, -5.396406481852449 ] } }, -{ "type": "Feature", "properties": { "Country": "Angola", "Function": "1--4----", "LOCODE": "AOMSZ", "Name": "Namibe", "NameWoDiac": "Namibe", "Status": "AI", "outflows": 61242.5 }, "geometry": { "type": "Point", "coordinates": [ 12.15222, -15.19611 ] } }, -{ "type": "Feature", "properties": { "Country": "Angola", "Function": "1--4----", "LOCODE": "AOSZA", "Name": "Soyo", "NameWoDiac": "Soyo", "Status": "AI", "outflows": 79583.4 }, "geometry": { "type": "Point", "coordinates": [ 12.36894, -6.1349 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "123-----", "LOCODE": "AUBEL", "Name": "Bell Bay", "NameWoDiac": "Bell Bay", "Status": "AC", "outflows": 537012.66663 }, "geometry": { "type": "Point", "coordinates": [ 146.87, -41.13 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUBWT", "Name": "Burnie", "NameWoDiac": "Burnie", "Status": "AC", "outflows": 54600.0 }, "geometry": { "type": "Point", "coordinates": [ 145.90375, -41.05584 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUCNS", "Name": "Cairns", "NameWoDiac": "Cairns", "Status": "AC", "outflows": 806.0 }, "geometry": { "type": "Point", "coordinates": [ 145.76613, -16.92366 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1-------", "LOCODE": "AUDAM", "Name": "Dampier", "NameWoDiac": "Dampier", "Status": "AC", "outflows": 2273.75 }, "geometry": { "type": "Point", "coordinates": [ 116.71256, -20.66275 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUDPO", "Name": "Devonport", "NameWoDiac": "Devonport", "Status": "AC", "outflows": 11960.0 }, "geometry": { "type": "Point", "coordinates": [ 146.35152, -41.17695 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUFRE", "Name": "Fremantle", "NameWoDiac": "Fremantle", "Status": "AC", "outflows": 4485214.6003799979 }, "geometry": { "type": "Point", "coordinates": [ 115.74557, -32.05632 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUGEX", "Name": "Geelong", "NameWoDiac": "Geelong", "Status": "AC", "outflows": 3084.0 }, "geometry": { "type": "Point", "coordinates": [ 144.36069, -38.14711 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUNTL", "Name": "Newcastle", "NameWoDiac": "Newcastle", "Status": "AI", "outflows": 69717.0 }, "geometry": { "type": "Point", "coordinates": [ 151.7801, -32.92953 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "123-----", "LOCODE": "AUPBT", "Name": "Port Botany", "NameWoDiac": "Port Botany", "Status": "AC", "outflows": 47151.0 }, "geometry": { "type": "Point", "coordinates": [ 151.22277, -33.97447 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUPKL", "Name": "Port Kembla", "NameWoDiac": "Port Kembla", "Status": "AC", "outflows": 33267.0 }, "geometry": { "type": "Point", "coordinates": [ 150.9012, -34.4818 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUTSV", "Name": "Townsville", "NameWoDiac": "Townsville", "Status": "AI", "outflows": 227206.58331800002 }, "geometry": { "type": "Point", "coordinates": [ 146.80569, -19.26639 ] } }, -{ "type": "Feature", "properties": { "Country": "Australia", "Function": "1--4----", "LOCODE": "AUWEI", "Name": "Weipa", "NameWoDiac": "Weipa", "Status": "AC", "outflows": 806.0 }, "geometry": { "type": "Point", "coordinates": [ 141.87883, -12.62346 ] } }, -{ "type": "Feature", "properties": { "Country": "Aruba", "Function": "1---5---", "LOCODE": "AWORJ", "Name": "Oranjestad", "NameWoDiac": "Oranjestad", "Status": "AI", "outflows": 721990.3 }, "geometry": { "type": "Point", "coordinates": [ -70.02703, 12.52398 ] } }, -{ "type": "Feature", "properties": { "Country": "Barbados", "Function": "1--45---", "LOCODE": "BBBGI", "Name": "Bridgetown", "NameWoDiac": "Bridgetown", "Status": "AI", "outflows": 687251.06668999989 }, "geometry": { "type": "Point", "coordinates": [ -59.62021, 13.10732 ] } }, -{ "type": "Feature", "properties": { "Country": "Bangladesh", "Function": "1-------", "LOCODE": "BDMGL", "Name": "Mongla", "NameWoDiac": "Mongla", "Status": "RQ", "outflows": 65143.0 }, "geometry": { "type": "Point", "coordinates": [ 89.61095, 22.47223 ] } }, -{ "type": "Feature", "properties": { "Country": "Bulgaria", "Function": "1-------", "LOCODE": "BGBOJ", "Name": "Burgas", "NameWoDiac": "Burgas", "Status": "AC", "outflows": 535001.99997999996 }, "geometry": { "type": "Point", "coordinates": [ 27.46781, 42.50606 ] } }, -{ "type": "Feature", "properties": { "Country": "Bulgaria", "Function": "1--4----", "LOCODE": "BGVAR", "Name": "Varna", "NameWoDiac": "Varna", "Status": "AI", "outflows": 147810.0 }, "geometry": { "type": "Point", "coordinates": [ 27.91667, 43.21667 ] } }, -{ "type": "Feature", "properties": { "Country": "Benin", "Function": "1--45---", "LOCODE": "BJCOO", "Name": "Cotonou", "NameWoDiac": "Cotonou", "Status": "AI", "outflows": 4812454.6643299991 }, "geometry": { "type": "Point", "coordinates": [ 2.41833, 6.36536 ] } }, -{ "type": "Feature", "properties": { "Country": "Bermuda", "Function": "1--45---", "LOCODE": "BMBDA", "Name": "Hamilton", "NameWoDiac": "Hamilton", "Status": "AI", "outflows": 13100.0 }, "geometry": { "type": "Point", "coordinates": [ -64.78303, 32.2949 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRFOR", "Name": "Fortaleza", "NameWoDiac": "Fortaleza", "Status": "AI", "outflows": 278482.75 }, "geometry": { "type": "Point", "coordinates": [ -38.54306, -3.71722 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRIOS", "Name": "Ilheus", "NameWoDiac": "Ilheus", "Status": "AI", "outflows": 36877.75 }, "geometry": { "type": "Point", "coordinates": [ -39.03949, -14.79364 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-------", "LOCODE": "BRIBB", "Name": "Imbituba", "NameWoDiac": "Imbituba", "Status": "AI", "outflows": 378681.33330999996 }, "geometry": { "type": "Point", "coordinates": [ -48.67028, -28.24 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRITJ", "Name": "Itajai", "NameWoDiac": "Itajai", "Status": "AI", "outflows": 4871215.6998899989 }, "geometry": { "type": "Point", "coordinates": [ -48.66194, -26.90778 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRMAO", "Name": "Manaus", "NameWoDiac": "Manaus", "Status": "AI", "outflows": 1385527.97796 }, "geometry": { "type": "Point", "coordinates": [ -60.025, -3.10194 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRNAT", "Name": "Natal", "NameWoDiac": "Natal", "Status": "AI", "outflows": 241605.0 }, "geometry": { "type": "Point", "coordinates": [ -35.20944, -5.795 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRRIG", "Name": "Rio Grande", "NameWoDiac": "Rio Grande", "Status": "AI", "outflows": 10184119.863509998 }, "geometry": { "type": "Point", "coordinates": [ -43.18223, -22.90642 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1--4----", "LOCODE": "BRSSA", "Name": "Salvador", "NameWoDiac": "Salvador", "Status": "AI", "outflows": 8800539.5732199997 }, "geometry": { "type": "Point", "coordinates": [ -38.51083, -12.97111 ] } }, -{ "type": "Feature", "properties": { "Country": "Brazil", "Function": "1-------", "LOCODE": "BRSUA", "Name": "Suape", "NameWoDiac": "Suape", "Status": "RQ", "outflows": 5878585.3904299997 }, "geometry": { "type": "Point", "coordinates": [ -38.62083, -12.74083 ] } }, -{ "type": "Feature", "properties": { "Country": "Belize", "Function": "1--45---", "LOCODE": "BZBZE", "Name": "Belize City", "NameWoDiac": "Belize City", "Status": "AI", "outflows": 469495.0 }, "geometry": { "type": "Point", "coordinates": [ -88.19756, 17.49952 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1--4----", "LOCODE": "CAHAL", "Name": "Halifax", "NameWoDiac": "Halifax", "Status": "AS", "outflows": 4454972.4670409998 }, "geometry": { "type": "Point", "coordinates": [ -63.57291, 44.6464 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1--45---", "LOCODE": "CAMTR", "Name": "Montreal", "NameWoDiac": "Montreal", "Status": "AS", "outflows": 2304234.075 }, "geometry": { "type": "Point", "coordinates": [ -73.58781, 45.50884 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1-------", "LOCODE": "CANWE", "Name": "New Westminster", "NameWoDiac": "New Westminster", "Status": "AS", "outflows": 27774.0 }, "geometry": { "type": "Point", "coordinates": [ -122.91092, 49.20678 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1--4----", "LOCODE": "CAPRR", "Name": "Prince Rupert", "NameWoDiac": "Prince Rupert", "Status": "AS", "outflows": 2510218.7498600003 }, "geometry": { "type": "Point", "coordinates": [ -130.32098, 54.31507 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1--4----", "LOCODE": "CASQA", "Name": "Squamish", "NameWoDiac": "Squamish", "Status": "AS", "outflows": 9606.0 }, "geometry": { "type": "Point", "coordinates": [ -122.95396, 50.11817 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1--45---", "LOCODE": "CATOR", "Name": "Toronto", "NameWoDiac": "Toronto", "Status": "AS", "outflows": 5720.0 }, "geometry": { "type": "Point", "coordinates": [ -79.4163, 43.70011 ] } }, -{ "type": "Feature", "properties": { "Country": "Canada", "Function": "1--45---", "LOCODE": "CAVAN", "Name": "Vancouver", "NameWoDiac": "Vancouver", "Status": "AS", "outflows": 11959843.503790002 }, "geometry": { "type": "Point", "coordinates": [ -123.11934, 49.24966 ] } }, -{ "type": "Feature", "properties": { "Country": "Cook Islands", "Function": "1--45---", "LOCODE": "CKAIT", "Name": "Aitutaki", "NameWoDiac": "Aitutaki", "Status": "AI", "outflows": 40320.0 }, "geometry": { "type": "Point", "coordinates": [ -159.79293, -18.85195 ] } }, -{ "type": "Feature", "properties": { "Country": "Cook Islands", "Function": "1--45---", "LOCODE": "CKRAR", "Name": "Rarotonga", "NameWoDiac": "Rarotonga", "Status": "AI", "outflows": 41157.0 }, "geometry": { "type": "Point", "coordinates": [ -159.77545, -21.2075 ] } }, -{ "type": "Feature", "properties": { "Country": "Cameroon", "Function": "1--45---", "LOCODE": "CMDLA", "Name": "Douala", "NameWoDiac": "Douala", "Status": "AI", "outflows": 1089387.80006 }, "geometry": { "type": "Point", "coordinates": [ 9.70428, 4.04827 ] } }, -{ "type": "Feature", "properties": { "Country": "Cameroon", "Function": "1--4----", "LOCODE": "CMKBI", "Name": "Kribi", "NameWoDiac": "Kribi", "Status": "AI", "outflows": 1338743.54556 }, "geometry": { "type": "Point", "coordinates": [ 9.90765, 2.93725 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--45---", "LOCODE": "COBAQ", "Name": "Barranquilla", "NameWoDiac": "Barranquilla", "Status": "AI", "outflows": 1238849.9999530001 }, "geometry": { "type": "Point", "coordinates": [ -74.78132, 10.96854 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--4----", "LOCODE": "COBUN", "Name": "Buenaventura", "NameWoDiac": "Buenaventura", "Status": "AI", "outflows": 12125518.600159997 }, "geometry": { "type": "Point", "coordinates": [ -77.03116, 3.8801 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--4----", "LOCODE": "COCTG", "Name": "Cartagena", "NameWoDiac": "Cartagena", "Status": "AI", "outflows": 16624367.157963 }, "geometry": { "type": "Point", "coordinates": [ -75.51444, 10.39972 ] } }, -{ "type": "Feature", "properties": { "Country": "Colombia", "Function": "1--4----", "LOCODE": "COSMR", "Name": "Santa Marta", "NameWoDiac": "Santa Marta", "Status": "AI", "outflows": 1906046.5665720007 }, "geometry": { "type": "Point", "coordinates": [ -74.19904, 11.24079 ] } }, -{ "type": "Feature", "properties": { "Country": "Cuba", "Function": "---4----", "LOCODE": "CUMOA", "Name": "Moa", "NameWoDiac": "Moa", "Status": "AI", "outflows": 65431.8 }, "geometry": { "type": "Point", "coordinates": [ -74.95075, 20.65776 ] } }, -{ "type": "Feature", "properties": { "Country": "Cuba", "Function": "1--4----", "LOCODE": "CUSCU", "Name": "Santiago de Cuba", "NameWoDiac": "Santiago de Cuba", "Status": "AI", "outflows": 63230.0 }, "geometry": { "type": "Point", "coordinates": [ -75.82667, 20.02083 ] } }, -{ "type": "Feature", "properties": { "Country": "Cabo Verde", "Function": "0-------", "LOCODE": "CVPAL", "Name": "Palmeira", "NameWoDiac": "Palmeira", "Status": "RQ", "outflows": 13234.0 }, "geometry": { "type": "Point", "coordinates": [ -22.98348, 16.75754 ] } }, -{ "type": "Feature", "properties": { "Country": "Cabo Verde", "Function": "1--4----", "LOCODE": "CVRAI", "Name": "Praia", "NameWoDiac": "Praia", "Status": "AI", "outflows": 114309.0 }, "geometry": { "type": "Point", "coordinates": [ -23.51254, 14.93152 ] } }, -{ "type": "Feature", "properties": { "Country": "Cabo Verde", "Function": "0-------", "LOCODE": "CVSAR", "Name": "Sal Rei", "NameWoDiac": "Sal Rei", "Status": "RQ", "outflows": 25421.5 }, "geometry": { "type": "Point", "coordinates": [ -22.91722, 16.17611 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "12345---", "LOCODE": "DEBRE", "Name": "Bremen", "NameWoDiac": "Bremen", "Status": "AF", "outflows": 197153.69999199998 }, "geometry": { "type": "Point", "coordinates": [ 8.80717, 53.07582 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "1234----", "LOCODE": "DEBRV", "Name": "Bremerhaven", "NameWoDiac": "Bremerhaven", "Status": "AF", "outflows": 21710907.495360006 }, "geometry": { "type": "Point", "coordinates": [ 8.59298, 53.53615 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "12345---", "LOCODE": "DEHAM", "Name": "Hamburg", "NameWoDiac": "Hamburg", "Status": "AF", "outflows": 42669313.486039981 }, "geometry": { "type": "Point", "coordinates": [ 9.99302, 53.55073 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "12345---", "LOCODE": "DELBC", "Name": "L�beck", "NameWoDiac": "Lubeck", "Status": "AF", "outflows": 295233.5 }, "geometry": { "type": "Point", "coordinates": [ 10.68729, 53.86893 ] } }, -{ "type": "Feature", "properties": { "Country": "Germany", "Function": "123-----", "LOCODE": "DETRV", "Name": "Travem�nde", "NameWoDiac": "Travemunde", "Status": "AF", "outflows": 73746.0 }, "geometry": { "type": "Point", "coordinates": [ 10.8709, 53.96304 ] } }, -{ "type": "Feature", "properties": { "Country": "Djibouti", "Function": "1--45---", "LOCODE": "DJJIB", "Name": "Djibouti", "NameWoDiac": "Djibouti", "Status": "AI", "outflows": 4852561.0352500007 }, "geometry": { "type": "Point", "coordinates": [ 43.14503, 11.58901 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "12345---", "LOCODE": "DKAAL", "Name": "Aalborg", "NameWoDiac": "Aalborg", "Status": "AF", "outflows": 74932.0 }, "geometry": { "type": "Point", "coordinates": [ 9.9187, 57.048 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "1234----", "LOCODE": "DKEBJ", "Name": "Esbjerg", "NameWoDiac": "Esbjerg", "Status": "AF", "outflows": 28620.0 }, "geometry": { "type": "Point", "coordinates": [ 8.45187, 55.47028 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "12--5---", "LOCODE": "DKFRC", "Name": "Fredericia", "NameWoDiac": "Fredericia", "Status": "AF", "outflows": 245869.0 }, "geometry": { "type": "Point", "coordinates": [ 9.75257, 55.56568 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "123-----", "LOCODE": "DKGRE", "Name": "Grenaa", "NameWoDiac": "Grenaa", "Status": "AF", "outflows": 16263.0 }, "geometry": { "type": "Point", "coordinates": [ 10.87825, 56.41578 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "123-----", "LOCODE": "DKHUN", "Name": "Hundested", "NameWoDiac": "Hundested", "Status": "AF", "outflows": 16263.0 }, "geometry": { "type": "Point", "coordinates": [ 11.85044, 55.96397 ] } }, -{ "type": "Feature", "properties": { "Country": "Denmark", "Function": "12------", "LOCODE": "DKSKA", "Name": "Skagen", "NameWoDiac": "Skagen", "Status": "AF", "outflows": 56420.0 }, "geometry": { "type": "Point", "coordinates": [ 10.58394, 57.72093 ] } }, -{ "type": "Feature", "properties": { "Country": "Dominica", "Function": "1-------", "LOCODE": "DMRSU", "Name": "Roseau", "NameWoDiac": "Roseau", "Status": "AI", "outflows": 370965.4 }, "geometry": { "type": "Point", "coordinates": [ -61.38808, 15.30174 ] } }, -{ "type": "Feature", "properties": { "Country": "Dominican Republic", "Function": "1-------", "LOCODE": "DOBCC", "Name": "Boca Chica", "NameWoDiac": "Boca Chica", "Status": "AI", "outflows": 333493.3333 }, "geometry": { "type": "Point", "coordinates": [ -69.6, 18.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Dominican Republic", "Function": "1-------", "LOCODE": "DOPOP", "Name": "Puerto Plata", "NameWoDiac": "Puerto Plata", "Status": "AI", "outflows": 712651.3333000001 }, "geometry": { "type": "Point", "coordinates": [ -70.6884, 19.79344 ] } }, -{ "type": "Feature", "properties": { "Country": "Algeria", "Function": "1-------", "LOCODE": "DZMOS", "Name": "Mostaganem", "NameWoDiac": "Mostaganem", "Status": "QQ", "outflows": 20553.75 }, "geometry": { "type": "Point", "coordinates": [ 0.08918, 35.93115 ] } }, -{ "type": "Feature", "properties": { "Country": "Algeria", "Function": "1--4----", "LOCODE": "DZORN", "Name": "Oran", "NameWoDiac": "Oran", "Status": "AI", "outflows": 210402.15 }, "geometry": { "type": "Point", "coordinates": [ -0.63588, 35.69906 ] } }, -{ "type": "Feature", "properties": { "Country": "Egypt", "Function": "1-------", "LOCODE": "EGEDK", "Name": "El Dekheila", "NameWoDiac": "El Dekheila", "Status": "RQ", "outflows": 265833.75 }, "geometry": { "type": "Point", "coordinates": [ 29.82126, 31.13133 ] } }, -{ "type": "Feature", "properties": { "Country": "Egypt", "Function": "1--4----", "LOCODE": "EGPSD", "Name": "Port Said", "NameWoDiac": "Port Said", "Status": "AI", "outflows": 20587604.955879994 }, "geometry": { "type": "Point", "coordinates": [ 32.3019, 31.26531 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1-------", "LOCODE": "ESALG", "Name": "Algeciras", "NameWoDiac": "Algeciras", "Status": "AI", "outflows": 27490011.70193002 }, "geometry": { "type": "Point", "coordinates": [ -5.45051, 36.13326 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "12345---", "LOCODE": "ESALC", "Name": "Alicante", "NameWoDiac": "Alicante", "Status": "AI", "outflows": 317642.0 }, "geometry": { "type": "Point", "coordinates": [ -0.48149, 38.34517 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "12345---", "LOCODE": "ESBCN", "Name": "Barcelona", "NameWoDiac": "Barcelona", "Status": "AI", "outflows": 22873062.028563999 }, "geometry": { "type": "Point", "coordinates": [ 2.15899, 41.38879 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1-------", "LOCODE": "ESCAD", "Name": "Cadiz", "NameWoDiac": "Cadiz", "Status": "AI", "outflows": 248618.5 }, "geometry": { "type": "Point", "coordinates": [ -6.2891, 36.52672 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1-------", "LOCODE": "ESCEU", "Name": "Ceuta", "NameWoDiac": "Ceuta", "Status": "AI", "outflows": 45500.0 }, "geometry": { "type": "Point", "coordinates": [ -5.32042, 35.88919 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "123-----", "LOCODE": "ESHUV", "Name": "Huelva", "NameWoDiac": "Huelva", "Status": "AI", "outflows": 191763.0 }, "geometry": { "type": "Point", "coordinates": [ -6.94004, 37.26638 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1--4----", "LOCODE": "ESFUE", "Name": "Puerto del Rosario-Fuerteventura", "NameWoDiac": "Puerto del Rosario-Fuerteventura", "Status": "AI", "outflows": 219128.0 }, "geometry": { "type": "Point", "coordinates": [ -13.86272, 28.50038 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1---5---", "LOCODE": "ESSCT", "Name": "Santa Cruz de Tenerife", "NameWoDiac": "Santa Cruz de Tenerife", "Status": "AI", "outflows": 640000.0 }, "geometry": { "type": "Point", "coordinates": [ -16.25462, 28.46824 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1234----", "LOCODE": "ESSDR", "Name": "Santander", "NameWoDiac": "Santander", "Status": "AI", "outflows": 23634.0 }, "geometry": { "type": "Point", "coordinates": [ -3.80444, 43.46472 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "12345---", "LOCODE": "ESSVQ", "Name": "Sevilla", "NameWoDiac": "Sevilla", "Status": "AI", "outflows": 49842.0 }, "geometry": { "type": "Point", "coordinates": [ -5.97317, 37.38283 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1234----", "LOCODE": "ESTAR", "Name": "Tarragona", "NameWoDiac": "Tarragona", "Status": "AI", "outflows": 977262.0 }, "geometry": { "type": "Point", "coordinates": [ 1.25, 41.11667 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "12345---", "LOCODE": "ESVLC", "Name": "Valencia", "NameWoDiac": "Valencia", "Status": "AI", "outflows": 32174699.419024002 }, "geometry": { "type": "Point", "coordinates": [ -0.37739, 39.46975 ] } }, -{ "type": "Feature", "properties": { "Country": "Spain", "Function": "1--4----", "LOCODE": "ESVGO", "Name": "Vigo", "NameWoDiac": "Vigo", "Status": "AI", "outflows": 929140.33332400001 }, "geometry": { "type": "Point", "coordinates": [ -8.72264, 42.23282 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FIHKO", "Name": "Hang� (Hanko)", "NameWoDiac": "Hango (Hanko)", "Status": "AI", "outflows": 134144.0 }, "geometry": { "type": "Point", "coordinates": [ 22.95, 59.83333 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FIHKO", "Name": "Hanko (Hang�)", "NameWoDiac": "Hanko (Hango)", "Status": "AI", "outflows": 134144.0 }, "geometry": { "type": "Point", "coordinates": [ 22.95, 59.83333 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FIHEL", "Name": "Helsingfors (Helsinki)", "NameWoDiac": "Helsingfors (Helsinki)", "Status": "AI", "outflows": 745328.99995000008 }, "geometry": { "type": "Point", "coordinates": [ 24.93545, 60.16952 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-------", "LOCODE": "FIHEL", "Name": "Helsinki (Helsingfors)", "NameWoDiac": "Helsinki (Helsingfors)", "Status": "AI", "outflows": 745328.99995000008 }, "geometry": { "type": "Point", "coordinates": [ 24.93545, 60.16952 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-3-----", "LOCODE": "FIVKO", "Name": "Valko (Valkom)", "NameWoDiac": "Valko (Valkom)", "Status": "AC", "outflows": 84688.5 }, "geometry": { "type": "Point", "coordinates": [ 26.24664, 60.41392 ] } }, -{ "type": "Feature", "properties": { "Country": "Finland", "Function": "1-3-----", "LOCODE": "FIVKO", "Name": "Valkom (Valko)", "NameWoDiac": "Valkom (Valko)", "Status": "AC", "outflows": 84688.5 }, "geometry": { "type": "Point", "coordinates": [ 26.24664, 60.41392 ] } }, -{ "type": "Feature", "properties": { "Country": "Gabon", "Function": "1--45---", "LOCODE": "GALBV", "Name": "Libreville", "NameWoDiac": "Libreville", "Status": "AI", "outflows": 414222.00002999994 }, "geometry": { "type": "Point", "coordinates": [ 9.45356, 0.39241 ] } }, -{ "type": "Feature", "properties": { "Country": "Gabon", "Function": "1--45---", "LOCODE": "GAPOG", "Name": "Port Gentil", "NameWoDiac": "Port Gentil", "Status": "AI", "outflows": 148566.9 }, "geometry": { "type": "Point", "coordinates": [ 8.78151, -0.71933 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBBLY", "Name": "Blyth", "NameWoDiac": "Blyth", "Status": "AF", "outflows": 13208.0 }, "geometry": { "type": "Point", "coordinates": [ -1.50856, 55.12708 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1234----", "LOCODE": "GBBRS", "Name": "Bristol", "NameWoDiac": "Bristol", "Status": "AF", "outflows": 213286.66665 }, "geometry": { "type": "Point", "coordinates": [ -2.59665, 51.45523 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1---5---", "LOCODE": "GBDVR", "Name": "Dover", "NameWoDiac": "Dover", "Status": "AF", "outflows": 17290.0 }, "geometry": { "type": "Point", "coordinates": [ 1.31257, 51.12598 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBFXT", "Name": "Felixstowe", "NameWoDiac": "Felixstowe", "Status": "AF", "outflows": 23949484.180700015 }, "geometry": { "type": "Point", "coordinates": [ 1.3511, 51.96375 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBFOY", "Name": "Fowey", "NameWoDiac": "Fowey", "Status": "AF", "outflows": 4941.0 }, "geometry": { "type": "Point", "coordinates": [ -4.6386, 50.33634 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBHRW", "Name": "Harwich", "NameWoDiac": "Harwich", "Status": "AF", "outflows": 61540.0 }, "geometry": { "type": "Point", "coordinates": [ 1.28437, 51.94194 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBPOO", "Name": "Poole", "NameWoDiac": "Poole", "Status": "AF", "outflows": 8502.0 }, "geometry": { "type": "Point", "coordinates": [ -1.98458, 50.71429 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1--4----", "LOCODE": "GBPME", "Name": "Portsmouth", "NameWoDiac": "Portsmouth", "Status": "AF", "outflows": 142997.400009 }, "geometry": { "type": "Point", "coordinates": [ -1.09125, 50.79899 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBSCR", "Name": "Scrabster", "NameWoDiac": "Scrabster", "Status": "AF", "outflows": 9204.0 }, "geometry": { "type": "Point", "coordinates": [ -3.54627, 58.61277 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBSHS", "Name": "Sheerness", "NameWoDiac": "Sheerness", "Status": "AF", "outflows": 21112.0 }, "geometry": { "type": "Point", "coordinates": [ 0.76252, 51.44042 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1--4----", "LOCODE": "GBSOU", "Name": "Southampton", "NameWoDiac": "Southampton", "Status": "AF", "outflows": 12580879.097799998 }, "geometry": { "type": "Point", "coordinates": [ -1.40428, 50.90395 ] } }, -{ "type": "Feature", "properties": { "Country": "United Kingdom", "Function": "1-------", "LOCODE": "GBTIL", "Name": "Tilbury", "NameWoDiac": "Tilbury", "Status": "AF", "outflows": 1408139.0 }, "geometry": { "type": "Point", "coordinates": [ 0.35856, 51.46248 ] } }, -{ "type": "Feature", "properties": { "Country": "Grenada", "Function": "1-------", "LOCODE": "GDSTG", "Name": "Saint George's", "NameWoDiac": "Saint George's", "Status": "AI", "outflows": 454265.06669000001 }, "geometry": { "type": "Point", "coordinates": [ -61.75226, 12.05288 ] } }, -{ "type": "Feature", "properties": { "Country": "Georgia", "Function": "1--4----", "LOCODE": "GEBUS", "Name": "Batumi", "NameWoDiac": "Batumi", "Status": "AI", "outflows": 176479.99998 }, "geometry": { "type": "Point", "coordinates": [ 41.63392, 41.64228 ] } }, -{ "type": "Feature", "properties": { "Country": "Georgia", "Function": "1-------", "LOCODE": "GEPTI", "Name": "Poti", "NameWoDiac": "Poti", "Status": "QQ", "outflows": 241566.0 }, "geometry": { "type": "Point", "coordinates": [ 41.67384, 42.14272 ] } }, -{ "type": "Feature", "properties": { "Country": "Ghana", "Function": "1--45---", "LOCODE": "GHTKD", "Name": "Takoradi", "NameWoDiac": "Takoradi", "Status": "AI", "outflows": 343811.4 }, "geometry": { "type": "Point", "coordinates": [ -1.76029, 4.89816 ] } }, -{ "type": "Feature", "properties": { "Country": "Ghana", "Function": "1-------", "LOCODE": "GHTEM", "Name": "Tema", "NameWoDiac": "Tema", "Status": "QQ", "outflows": 7407893.3644899996 }, "geometry": { "type": "Point", "coordinates": [ -0.01657, 5.6698 ] } }, -{ "type": "Feature", "properties": { "Country": "Gibraltar", "Function": "1--45---", "LOCODE": "GIGIB", "Name": "Gibraltar", "NameWoDiac": "Gibraltar", "Status": "AI", "outflows": 67977.0 }, "geometry": { "type": "Point", "coordinates": [ -5.35257, 36.14474 ] } }, -{ "type": "Feature", "properties": { "Country": "Greenland", "Function": "1--4----", "LOCODE": "GLJHS", "Name": "Sisimiut (Holsteinsborg)", "NameWoDiac": "Sisimiut (Holsteinsborg)", "Status": "AI", "outflows": 23426.0 }, "geometry": { "type": "Point", "coordinates": [ -53.6735, 66.93946 ] } }, -{ "type": "Feature", "properties": { "Country": "Gambia", "Function": "1--45---", "LOCODE": "GMBJL", "Name": "Banjul", "NameWoDiac": "Banjul", "Status": "AI", "outflows": 184275.0 }, "geometry": { "type": "Point", "coordinates": [ -16.57803, 13.45274 ] } }, -{ "type": "Feature", "properties": { "Country": "Guinea", "Function": "1--45---", "LOCODE": "GNCKY", "Name": "Conakry", "NameWoDiac": "Conakry", "Status": "AI", "outflows": 676607.90476000018 }, "geometry": { "type": "Point", "coordinates": [ -13.67729, 9.53795 ] } }, -{ "type": "Feature", "properties": { "Country": "Equatorial Guinea", "Function": "1--45---", "LOCODE": "GQBSG", "Name": "Bata", "NameWoDiac": "Bata", "Status": "RQ", "outflows": 454067.0 }, "geometry": { "type": "Point", "coordinates": [ 9.76582, 1.86391 ] } }, -{ "type": "Feature", "properties": { "Country": "Equatorial Guinea", "Function": "1--4----", "LOCODE": "GQSSG", "Name": "Malabo", "NameWoDiac": "Malabo", "Status": "AI", "outflows": 133795.9 }, "geometry": { "type": "Point", "coordinates": [ 8.78166, 3.75578 ] } }, -{ "type": "Feature", "properties": { "Country": "Guatemala", "Function": "1--4----", "LOCODE": "GTPBR", "Name": "Puerto Barrios", "NameWoDiac": "Puerto Barrios", "Status": "AI", "outflows": 547993.33336599998 }, "geometry": { "type": "Point", "coordinates": [ -88.59444, 15.72778 ] } }, -{ "type": "Feature", "properties": { "Country": "Guyana", "Function": "1--45---", "LOCODE": "GYGEO", "Name": "Georgetown", "NameWoDiac": "Georgetown", "Status": "AI", "outflows": 428041.33332200005 }, "geometry": { "type": "Point", "coordinates": [ -58.15527, 6.80448 ] } }, -{ "type": "Feature", "properties": { "Country": "Hong Kong", "Function": "1--45---", "LOCODE": "HKHKG", "Name": "Hong Kong", "NameWoDiac": "Hong Kong", "Status": "AI", "outflows": 80530648.252739042 }, "geometry": { "type": "Point", "coordinates": [ 114.17469, 22.27832 ] } }, -{ "type": "Feature", "properties": { "Country": "Honduras", "Function": "1-------", "LOCODE": "HNPCA", "Name": "Puerto Castilla", "NameWoDiac": "Puerto Castilla", "Status": "RQ", "outflows": 75387.0 }, "geometry": { "type": "Point", "coordinates": [ -85.96667, 16.01667 ] } }, -{ "type": "Feature", "properties": { "Country": "Honduras", "Function": "1---5---", "LOCODE": "HNPCR", "Name": "Puerto Cort�s", "NameWoDiac": "Puerto Cortes", "Status": "AI", "outflows": 1674222.3333919998 }, "geometry": { "type": "Point", "coordinates": [ -87.92968, 15.82562 ] } }, -{ "type": "Feature", "properties": { "Country": "Honduras", "Function": "1-------", "LOCODE": "HNSLO", "Name": "San Lorenzo", "NameWoDiac": "San Lorenzo", "Status": "RQ", "outflows": 67860.0 }, "geometry": { "type": "Point", "coordinates": [ -87.44722, 13.42417 ] } }, -{ "type": "Feature", "properties": { "Country": "Haiti", "Function": "1--45---", "LOCODE": "HTPAP", "Name": "Port-au-Prince", "NameWoDiac": "Port-au-Prince", "Status": "AI", "outflows": 783664.91664000018 }, "geometry": { "type": "Point", "coordinates": [ -72.33881, 18.54349 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDBDJ", "Name": "Banjarmasin", "NameWoDiac": "Banjarmasin", "Status": "AI", "outflows": 17848.0 }, "geometry": { "type": "Point", "coordinates": [ 114.59075, -3.31987 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDBLW", "Name": "Belawan, Sumatra", "NameWoDiac": "Belawan, Sumatra", "Status": "QQ", "outflows": 494328.25003 }, "geometry": { "type": "Point", "coordinates": [ 98.6832, 3.7755 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDBIT", "Name": "Bitung, Sulawesi", "NameWoDiac": "Bitung, Sulawesi", "Status": "QQ", "outflows": 215154.58334000001 }, "geometry": { "type": "Point", "coordinates": [ 125.12824, 1.44059 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDGTO", "Name": "Gorontalo, Sulawesi", "NameWoDiac": "Gorontalo, Sulawesi", "Status": "AI", "outflows": 42718.00001 }, "geometry": { "type": "Point", "coordinates": [ 123.3908, -0.8985 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDKDI", "Name": "Kendari, Sulawesi", "NameWoDiac": "Kendari, Sulawesi", "Status": "AI", "outflows": 7988.5 }, "geometry": { "type": "Point", "coordinates": [ 122.51507, -3.9778 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDLUW", "Name": "Luwuk", "NameWoDiac": "Luwuk", "Status": "AI", "outflows": 720.0 }, "geometry": { "type": "Point", "coordinates": [ 122.7875, -0.9516 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--45---", "LOCODE": "IDMES", "Name": "Medan, Sumatra", "NameWoDiac": "Medan, Sumatra", "Status": "AI", "outflows": 45136.0 }, "geometry": { "type": "Point", "coordinates": [ 98.66667, 3.58333 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDPLM", "Name": "Palembang, Sumatra", "NameWoDiac": "Palembang, Sumatra", "Status": "AI", "outflows": 106646.75 }, "geometry": { "type": "Point", "coordinates": [ 104.7458, -2.91673 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDPNJ", "Name": "Panjang", "NameWoDiac": "Panjang", "Status": "RQ", "outflows": 1532041.4998899996 }, "geometry": { "type": "Point", "coordinates": [ 100.6199, 0.3087 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--45---", "LOCODE": "IDPNK", "Name": "Pontianak, Kalimantan", "NameWoDiac": "Pontianak, Kalimantan", "Status": "AI", "outflows": 35776.0 }, "geometry": { "type": "Point", "coordinates": [ 109.325, -0.03194 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDSRI", "Name": "Samarinda, Kalimantan", "NameWoDiac": "Samarinda, Kalimantan", "Status": "AI", "outflows": 34320.0 }, "geometry": { "type": "Point", "coordinates": [ 117.14583, -0.49167 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDSOQ", "Name": "Sorong", "NameWoDiac": "Sorong", "Status": "AI", "outflows": 125268.0 }, "geometry": { "type": "Point", "coordinates": [ 131.26104, -0.87956 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1-------", "LOCODE": "IDTRK", "Name": "Tarakan, Kalimantan", "NameWoDiac": "Tarakan, Kalimantan", "Status": "QQ", "outflows": 5213.0 }, "geometry": { "type": "Point", "coordinates": [ 117.59152, 3.31332 ] } }, -{ "type": "Feature", "properties": { "Country": "Indonesia", "Function": "1--4----", "LOCODE": "IDTLI", "Name": "Tolitoli", "NameWoDiac": "Tolitoli", "Status": "AI", "outflows": 3328.0 }, "geometry": { "type": "Point", "coordinates": [ 121.1679, 1.2718 ] } }, -{ "type": "Feature", "properties": { "Country": "Ireland", "Function": "1--45---", "LOCODE": "IEORK", "Name": "Cork", "NameWoDiac": "Cork", "Status": "AF", "outflows": 316459.0 }, "geometry": { "type": "Point", "coordinates": [ -8.47061, 51.89797 ] } }, -{ "type": "Feature", "properties": { "Country": "Ireland", "Function": "12-45---", "LOCODE": "IEDUB", "Name": "Dublin", "NameWoDiac": "Dublin", "Status": "AF", "outflows": 453417.25 }, "geometry": { "type": "Point", "coordinates": [ -6.24889, 53.33306 ] } }, -{ "type": "Feature", "properties": { "Country": "Israel", "Function": "1-------", "LOCODE": "ILASH", "Name": "Ashdod", "NameWoDiac": "Ashdod", "Status": "QQ", "outflows": 5463055.0830800012 }, "geometry": { "type": "Point", "coordinates": [ 34.64966, 31.79213 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1-------", "LOCODE": "INENR", "Name": "Ennore", "NameWoDiac": "Ennore", "Status": "AA", "outflows": 263657.33331999998 }, "geometry": { "type": "Point", "coordinates": [ 80.32835, 13.24751 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1-------", "LOCODE": "INHAL", "Name": "Haldia", "NameWoDiac": "Haldia", "Status": "AA", "outflows": 182909.25 }, "geometry": { "type": "Point", "coordinates": [ 88.10975, 22.06046 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1-------", "LOCODE": "INKRI", "Name": "Krishnapatnam", "NameWoDiac": "Krishnapatnam", "Status": "AA", "outflows": 2290663.6664799997 }, "geometry": { "type": "Point", "coordinates": [ 80.12388, 14.28874 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1--4----", "LOCODE": "INIXE", "Name": "Mangalore", "NameWoDiac": "Mangalore", "Status": "AA", "outflows": 139500.0 }, "geometry": { "type": "Point", "coordinates": [ 74.85603, 12.91723 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1-------", "LOCODE": "INMUN", "Name": "Mundra", "NameWoDiac": "Mundra", "Status": "AA", "outflows": 19811914.337299995 }, "geometry": { "type": "Point", "coordinates": [ 69.7219, 22.83918 ] } }, -{ "type": "Feature", "properties": { "Country": "India", "Function": "1--4----", "LOCODE": "INIXZ", "Name": "Port Blair", "NameWoDiac": "Port Blair", "Status": "AA", "outflows": 14150.5 }, "geometry": { "type": "Point", "coordinates": [ 92.74635, 11.66613 ] } }, -{ "type": "Feature", "properties": { "Country": "Iraq", "Function": "1-------", "LOCODE": "IQALF", "Name": "Abu Al Fulus", "NameWoDiac": "Abu Al Fulus", "Status": "RQ", "outflows": 14131.0 }, "geometry": { "type": "Point", "coordinates": [ 48.04246, 30.44783 ] } }, -{ "type": "Feature", "properties": { "Country": "Iraq", "Function": "1-------", "LOCODE": "IQBSR", "Name": "Basra", "NameWoDiac": "Basra", "Status": "AI", "outflows": 7524.0 }, "geometry": { "type": "Point", "coordinates": [ 47.7804, 30.50852 ] } }, -{ "type": "Feature", "properties": { "Country": "Iceland", "Function": "1-------", "LOCODE": "ISGRF", "Name": "Grundarfj�rdur", "NameWoDiac": "Grundarfjordur", "Status": "AC", "outflows": 280000.5 }, "geometry": { "type": "Point", "coordinates": [ -23.26313, 64.92427 ] } }, -{ "type": "Feature", "properties": { "Country": "Iceland", "Function": "1-------", "LOCODE": "ISRFJ", "Name": "Reydarfj�rdur", "NameWoDiac": "Reydarfjordur", "Status": "AC", "outflows": 157748.5 }, "geometry": { "type": "Point", "coordinates": [ -14.21832, 65.03164 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITMDC", "Name": "Marina di Carrara", "NameWoDiac": "Marina di Carrara", "Status": "AI", "outflows": 164793.0 }, "geometry": { "type": "Point", "coordinates": [ 10.04142, 44.03837 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITMNF", "Name": "Monfalcone", "NameWoDiac": "Monfalcone", "Status": "AI", "outflows": 23587.5 }, "geometry": { "type": "Point", "coordinates": [ 13.53292, 45.80463 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITPOZ", "Name": "Pozzuoli", "NameWoDiac": "Pozzuoli", "Status": "AI", "outflows": 42042.0 }, "geometry": { "type": "Point", "coordinates": [ 14.0952, 40.84394 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-------", "LOCODE": "ITRAN", "Name": "Ravenna", "NameWoDiac": "Ravenna", "Status": "AI", "outflows": 1216610.5 }, "geometry": { "type": "Point", "coordinates": [ 12.20121, 44.41344 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1-3-----", "LOCODE": "ITSAL", "Name": "Salerno", "NameWoDiac": "Salerno", "Status": "AI", "outflows": 2238415.25 }, "geometry": { "type": "Point", "coordinates": [ 14.79328, 40.67545 ] } }, -{ "type": "Feature", "properties": { "Country": "Italy", "Function": "1--4----", "LOCODE": "ITTRS", "Name": "Trieste", "NameWoDiac": "Trieste", "Status": "AI", "outflows": 4531748.0 }, "geometry": { "type": "Point", "coordinates": [ 13.77678, 45.64953 ] } }, -{ "type": "Feature", "properties": { "Country": "Jamaica", "Function": "1--45---", "LOCODE": "JMKIN", "Name": "Kingston", "NameWoDiac": "Kingston", "Status": "AI", "outflows": 8626072.544909995 }, "geometry": { "type": "Point", "coordinates": [ -76.79358, 17.99702 ] } }, -{ "type": "Feature", "properties": { "Country": "Jamaica", "Function": "1--4----", "LOCODE": "JMMBJ", "Name": "Montego Bay", "NameWoDiac": "Montego Bay", "Status": "AI", "outflows": 628021.3333000001 }, "geometry": { "type": "Point", "coordinates": [ -77.91883, 18.47116 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPABU", "Name": "Aburatsu", "NameWoDiac": "Aburatsu", "Status": "AF", "outflows": 53352.0 }, "geometry": { "type": "Point", "coordinates": [ 144.26971, 44.02127 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPAXT", "Name": "Akita", "NameWoDiac": "Akita", "Status": "AF", "outflows": 278377.66667000001 }, "geometry": { "type": "Point", "coordinates": [ 140.11667, 39.71667 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPCHB", "Name": "Chiba", "NameWoDiac": "Chiba", "Status": "AF", "outflows": 607568.0 }, "geometry": { "type": "Point", "coordinates": [ 140.11667, 35.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPFKY", "Name": "Fukuyama, Hiroshima", "NameWoDiac": "Fukuyama, Hiroshima", "Status": "AF", "outflows": 508612.0 }, "geometry": { "type": "Point", "coordinates": [ 133.36667, 34.48333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPHHE", "Name": "Hachinohe", "NameWoDiac": "Hachinohe", "Status": "AF", "outflows": 291243.33335000003 }, "geometry": { "type": "Point", "coordinates": [ 141.5, 40.5 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPHIJ", "Name": "Hiroshima", "NameWoDiac": "Hiroshima", "Status": "AF", "outflows": 658970.0 }, "geometry": { "type": "Point", "coordinates": [ 132.45, 34.4 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPHTC", "Name": "Hitachi", "NameWoDiac": "Hitachi", "Status": "AF", "outflows": 110110.0 }, "geometry": { "type": "Point", "coordinates": [ 140.65, 36.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPHSM", "Name": "Hososhima", "NameWoDiac": "Hososhima", "Status": "AF", "outflows": 354289.0 }, "geometry": { "type": "Point", "coordinates": [ 131.66667, 32.43333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPIMB", "Name": "Imabari", "NameWoDiac": "Imabari", "Status": "AF", "outflows": 83772.0 }, "geometry": { "type": "Point", "coordinates": [ 133.00023, 34.07001 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPIMI", "Name": "Imari", "NameWoDiac": "Imari", "Status": "AF", "outflows": 232752.0 }, "geometry": { "type": "Point", "coordinates": [ 129.87877, 33.27362 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPIWK", "Name": "Iwakuni", "NameWoDiac": "Iwakuni", "Status": "AF", "outflows": 248404.0 }, "geometry": { "type": "Point", "coordinates": [ 132.22, 34.16297 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPKNZ", "Name": "Kanazawa", "NameWoDiac": "Kanazawa", "Status": "AF", "outflows": 500785.99996999995 }, "geometry": { "type": "Point", "coordinates": [ 136.61667, 36.6 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPKSM", "Name": "Kashima, Ibaraki", "NameWoDiac": "Kashima, Ibaraki", "Status": "AF", "outflows": 103584.0 }, "geometry": { "type": "Point", "coordinates": [ 140.64474, 35.96536 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPKWS", "Name": "Kawasaki", "NameWoDiac": "Kawasaki", "Status": "AF", "outflows": 1377583.9999500001 }, "geometry": { "type": "Point", "coordinates": [ 139.71722, 35.52056 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPKCZ", "Name": "Kochi", "NameWoDiac": "Kochi", "Status": "AF", "outflows": 97578.0 }, "geometry": { "type": "Point", "coordinates": [ 133.53333, 33.55 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPKMJ", "Name": "Kumamoto", "NameWoDiac": "Kumamoto", "Status": "AF", "outflows": 44460.0 }, "geometry": { "type": "Point", "coordinates": [ 130.69181, 32.80589 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPMAI", "Name": "Maizuru", "NameWoDiac": "Maizuru", "Status": "AF", "outflows": 113464.0 }, "geometry": { "type": "Point", "coordinates": [ 135.33333, 35.45 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPMYJ", "Name": "Matsuyama", "NameWoDiac": "Matsuyama", "Status": "AF", "outflows": 213629.0 }, "geometry": { "type": "Point", "coordinates": [ 132.76574, 33.83916 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPMII", "Name": "Miike, Fukuoka", "NameWoDiac": "Miike, Fukuoka", "Status": "AF", "outflows": 16640.0 }, "geometry": { "type": "Point", "coordinates": [ 130.47791, 33.05207 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPMIZ", "Name": "Mizushima", "NameWoDiac": "Mizushima", "Status": "AF", "outflows": 727415.0 }, "geometry": { "type": "Point", "coordinates": [ 133.73896, 34.5298 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPMUR", "Name": "Muroran", "NameWoDiac": "Muroran", "Status": "AF", "outflows": 115517.99996999998 }, "geometry": { "type": "Point", "coordinates": [ 140.98806, 42.31722 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPNGS", "Name": "Nagasaki", "NameWoDiac": "Nagasaki", "Status": "AF", "outflows": 44460.0 }, "geometry": { "type": "Point", "coordinates": [ 129.88333, 32.75 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--45---", "LOCODE": "JPNGO", "Name": "Nagoya, Aichi", "NameWoDiac": "Nagoya, Aichi", "Status": "AF", "outflows": 14485316.083789002 }, "geometry": { "type": "Point", "coordinates": [ 136.90641, 35.18147 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--45---", "LOCODE": "JPNAH", "Name": "Naha, Okinawa", "NameWoDiac": "Naha, Okinawa", "Status": "AF", "outflows": 770354.0 }, "geometry": { "type": "Point", "coordinates": [ 127.68333, 26.21667 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPNAO", "Name": "Naoetsu", "NameWoDiac": "Naoetsu", "Status": "AF", "outflows": 166443.33335 }, "geometry": { "type": "Point", "coordinates": [ 138.25, 37.18333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPKIJ", "Name": "Niigata", "NameWoDiac": "Niigata", "Status": "AF", "outflows": 632488.99997 }, "geometry": { "type": "Point", "coordinates": [ 139.00589, 37.88637 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPOIT", "Name": "Oita", "NameWoDiac": "Oita", "Status": "AF", "outflows": 336869.0 }, "geometry": { "type": "Point", "coordinates": [ 131.6, 33.23333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPOMZ", "Name": "Omaezaki", "NameWoDiac": "Omaezaki", "Status": "AF", "outflows": 642421.0 }, "geometry": { "type": "Point", "coordinates": [ 138.21934, 34.59882 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPONA", "Name": "Onahama", "NameWoDiac": "Onahama", "Status": "AF", "outflows": 204940.6667 }, "geometry": { "type": "Point", "coordinates": [ 140.9, 36.95 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPOTK", "Name": "Otake", "NameWoDiac": "Otake", "Status": "AF", "outflows": 36348.0 }, "geometry": { "type": "Point", "coordinates": [ 132.22063, 34.20754 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPOTR", "Name": "Otaru", "NameWoDiac": "Otaru", "Status": "AF", "outflows": 78000.0 }, "geometry": { "type": "Point", "coordinates": [ 141.00222, 43.18944 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPSMN", "Name": "Sakaiminato", "NameWoDiac": "Sakaiminato", "Status": "AF", "outflows": 329679.99997 }, "geometry": { "type": "Point", "coordinates": [ 133.23094, 35.53774 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPSKT", "Name": "Sakata", "NameWoDiac": "Sakata", "Status": "AF", "outflows": 421338.66667000001 }, "geometry": { "type": "Point", "coordinates": [ 139.855, 38.91667 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPSBS", "Name": "Shibushi", "NameWoDiac": "Shibushi", "Status": "AF", "outflows": 490971.0 }, "geometry": { "type": "Point", "coordinates": [ 131.10114, 31.476 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPSMZ", "Name": "Shimizu", "NameWoDiac": "Shimizu", "Status": "AF", "outflows": 5351577.999760001 }, "geometry": { "type": "Point", "coordinates": [ 142.88472, 43.00611 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPTAK", "Name": "Takamatsu", "NameWoDiac": "Takamatsu", "Status": "AF", "outflows": 188292.0 }, "geometry": { "type": "Point", "coordinates": [ 134.05, 34.33333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPTKS", "Name": "Tokushima", "NameWoDiac": "Tokushima", "Status": "AF", "outflows": 148044.0 }, "geometry": { "type": "Point", "coordinates": [ 134.56667, 34.06667 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPTKY", "Name": "Tokuyama", "NameWoDiac": "Tokuyama", "Status": "AF", "outflows": 456888.25 }, "geometry": { "type": "Point", "coordinates": [ 131.81667, 34.05 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPTMK", "Name": "Tomakomai", "NameWoDiac": "Tomakomai", "Status": "AF", "outflows": 929244.33331999998 }, "geometry": { "type": "Point", "coordinates": [ 141.60333, 42.63694 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPTHS", "Name": "Toyohashi", "NameWoDiac": "Toyohashi", "Status": "AF", "outflows": 181584.0 }, "geometry": { "type": "Point", "coordinates": [ 137.38333, 34.76667 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPTRG", "Name": "Tsuruga", "NameWoDiac": "Tsuruga", "Status": "AF", "outflows": 121550.0 }, "geometry": { "type": "Point", "coordinates": [ 136.0558, 35.64547 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1--4----", "LOCODE": "JPUBJ", "Name": "Ube", "NameWoDiac": "Ube", "Status": "AF", "outflows": 22490.0 }, "geometry": { "type": "Point", "coordinates": [ 131.25111, 33.94306 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPWAK", "Name": "Wakayama", "NameWoDiac": "Wakayama", "Status": "AF", "outflows": 63765.0 }, "geometry": { "type": "Point", "coordinates": [ 135.16667, 34.23333 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPYAT", "Name": "Yatsushiro", "NameWoDiac": "Yatsushiro", "Status": "AF", "outflows": 61100.0 }, "geometry": { "type": "Point", "coordinates": [ 130.59952, 32.50439 ] } }, -{ "type": "Feature", "properties": { "Country": "Japan", "Function": "1-------", "LOCODE": "JPYKK", "Name": "Yokkaichi", "NameWoDiac": "Yokkaichi", "Status": "AF", "outflows": 3523652.1667400002 }, "geometry": { "type": "Point", "coordinates": [ 136.61667, 34.96667 ] } }, -{ "type": "Feature", "properties": { "Country": "Kenya", "Function": "1--45---", "LOCODE": "KEMBA", "Name": "Mombasa", "NameWoDiac": "Mombasa", "Status": "AI", "outflows": 2290456.6388300001 }, "geometry": { "type": "Point", "coordinates": [ 39.66359, -4.05466 ] } }, -{ "type": "Feature", "properties": { "Country": "Kiribati", "Function": "1--4----", "LOCODE": "KITRW", "Name": "Tarawa", "NameWoDiac": "Tarawa", "Status": "AI", "outflows": 136326.0 }, "geometry": { "type": "Point", "coordinates": [ 172.97696, 1.3278 ] } }, -{ "type": "Feature", "properties": { "Country": "Comoros", "Function": "1--45---", "LOCODE": "KMYVA", "Name": "Moroni", "NameWoDiac": "Moroni", "Status": "AI", "outflows": 131275.33335 }, "geometry": { "type": "Point", "coordinates": [ 43.25506, -11.70216 ] } }, -{ "type": "Feature", "properties": { "Country": "Lebanon", "Function": "1--4----", "LOCODE": "LBKYE", "Name": "Tripoli", "NameWoDiac": "Tripoli", "Status": "AI", "outflows": 2038156.25 }, "geometry": { "type": "Point", "coordinates": [ 35.84415, 34.43352 ] } }, -{ "type": "Feature", "properties": { "Country": "Lithuania", "Function": "1--4----", "LOCODE": "LTKLJ", "Name": "Klaipeda", "NameWoDiac": "Klaipeda", "Status": "AI", "outflows": 1242325.5 }, "geometry": { "type": "Point", "coordinates": [ 21.13912, 55.7068 ] } }, -{ "type": "Feature", "properties": { "Country": "Latvia", "Function": "1--45---", "LOCODE": "LVRIX", "Name": "Riga", "NameWoDiac": "Riga", "Status": "AI", "outflows": 944970.0 }, "geometry": { "type": "Point", "coordinates": [ 24.10589, 56.946 ] } }, -{ "type": "Feature", "properties": { "Country": "Libya", "Function": "1--45---", "LOCODE": "LYBEN", "Name": "Bingazi (Benghazi)", "NameWoDiac": "Bingazi (Benghazi)", "Status": "AI", "outflows": 296981.0 }, "geometry": { "type": "Point", "coordinates": [ 20.06859, 32.11486 ] } }, -{ "type": "Feature", "properties": { "Country": "Libya", "Function": "1--4----", "LOCODE": "LYMRA", "Name": "Misurata", "NameWoDiac": "Misurata", "Status": "AI", "outflows": 757750.00001000008 }, "geometry": { "type": "Point", "coordinates": [ 15.09254, 32.37535 ] } }, -{ "type": "Feature", "properties": { "Country": "Libya", "Function": "1--4----", "LOCODE": "LYTIP", "Name": "Tripoli", "NameWoDiac": "Tripoli", "Status": "AI", "outflows": 281045.0 }, "geometry": { "type": "Point", "coordinates": [ 13.18733, 32.88743 ] } }, -{ "type": "Feature", "properties": { "Country": "Morocco", "Function": "1--4----", "LOCODE": "MAAGA", "Name": "Agadir", "NameWoDiac": "Agadir", "Status": "AI", "outflows": 593660.57139000006 }, "geometry": { "type": "Point", "coordinates": [ -9.59815, 30.42018 ] } }, -{ "type": "Feature", "properties": { "Country": "Morocco", "Function": "1-------", "LOCODE": "MANDR", "Name": "Nador", "NameWoDiac": "Nador", "Status": "AI", "outflows": 45500.0 }, "geometry": { "type": "Point", "coordinates": [ -2.93352, 35.16813 ] } }, -{ "type": "Feature", "properties": { "Country": "Morocco", "Function": "123-----", "LOCODE": "MAPTM", "Name": "Tanger Med", "NameWoDiac": "Tanger Med", "Status": "AI", "outflows": 29213268.307420008 }, "geometry": { "type": "Point", "coordinates": [ -5.56323, 35.82674 ] } }, -{ "type": "Feature", "properties": { "Country": "Madagascar", "Function": "1--4----", "LOCODE": "MGDIE", "Name": "Antsiranana", "NameWoDiac": "Antsiranana", "Status": "AI", "outflows": 113468.0 }, "geometry": { "type": "Point", "coordinates": [ 49.29188, -12.31732 ] } }, -{ "type": "Feature", "properties": { "Country": "Madagascar", "Function": "1--4----", "LOCODE": "MGMJN", "Name": "Majunga (Mahajanga)", "NameWoDiac": "Majunga (Mahajanga)", "Status": "AI", "outflows": 125324.0 }, "geometry": { "type": "Point", "coordinates": [ 46.31667, -15.71667 ] } }, -{ "type": "Feature", "properties": { "Country": "Madagascar", "Function": "1--45---", "LOCODE": "MGTMM", "Name": "Tamatave (Toamasina)", "NameWoDiac": "Tamatave (Toamasina)", "Status": "AI", "outflows": 396084.0 }, "geometry": { "type": "Point", "coordinates": [ 49.40234, -18.1492 ] } }, -{ "type": "Feature", "properties": { "Country": "Madagascar", "Function": "1--4----", "LOCODE": "MGTLE", "Name": "Tulear (Toliara)", "NameWoDiac": "Tulear (Toliara)", "Status": "AI", "outflows": 19864.0 }, "geometry": { "type": "Point", "coordinates": [ 43.66667, -23.35 ] } }, -{ "type": "Feature", "properties": { "Country": "Marshall Islands", "Function": "---4----", "LOCODE": "MHKWA", "Name": "Kwajalein", "NameWoDiac": "Kwajalein", "Status": "AI", "outflows": 48316.66667 }, "geometry": { "type": "Point", "coordinates": [ 167.73919, 8.77479 ] } }, -{ "type": "Feature", "properties": { "Country": "Myanmar", "Function": "1--45---", "LOCODE": "MMRGN", "Name": "Yangon", "NameWoDiac": "Yangon", "Status": "AI", "outflows": 937558.00004999992 }, "geometry": { "type": "Point", "coordinates": [ 96.15611, 16.80528 ] } }, -{ "type": "Feature", "properties": { "Country": "Myanmar", "Function": "1--45---", "LOCODE": "MMRGN", "Name": "Yangon", "NameWoDiac": "Yangon", "Status": "AI", "outflows": 937558.00004999992 }, "geometry": { "type": "Point", "coordinates": [ 96.15611, 16.80528 ] } }, -{ "type": "Feature", "properties": { "Country": "Martinique", "Function": "1-345---", "LOCODE": "MQFDF", "Name": "Fort-de-France", "NameWoDiac": "Fort-de-France", "Status": "AI", "outflows": 1924423.5832689998 }, "geometry": { "type": "Point", "coordinates": [ -61.07418, 14.60365 ] } }, -{ "type": "Feature", "properties": { "Country": "Mauritania", "Function": "1--4----", "LOCODE": "MRNDB", "Name": "Nouadhibou", "NameWoDiac": "Nouadhibou", "Status": "AI", "outflows": 197029.5 }, "geometry": { "type": "Point", "coordinates": [ -17.03842, 20.94188 ] } }, -{ "type": "Feature", "properties": { "Country": "Mauritania", "Function": "1--45---", "LOCODE": "MRNKC", "Name": "Nouakchott", "NameWoDiac": "Nouakchott", "Status": "AI", "outflows": 334524.0 }, "geometry": { "type": "Point", "coordinates": [ -15.9785, 18.08581 ] } }, -{ "type": "Feature", "properties": { "Country": "Montserrat", "Function": "1---5---", "LOCODE": "MSPLY", "Name": "Plymouth", "NameWoDiac": "Plymouth", "Status": "RQ", "outflows": 230958.0 }, "geometry": { "type": "Point", "coordinates": [ -62.21292, 16.70555 ] } }, -{ "type": "Feature", "properties": { "Country": "Mauritius", "Function": "1--4----", "LOCODE": "MUPLU", "Name": "Port Louis", "NameWoDiac": "Port Louis", "Status": "QQ", "outflows": 7415942.3854999971 }, "geometry": { "type": "Point", "coordinates": [ 57.49889, -20.16194 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1-------", "LOCODE": "MYBTU", "Name": "Bintulu, Sarawak", "NameWoDiac": "Bintulu, Sarawak", "Status": "AI", "outflows": 670234.5 }, "geometry": { "type": "Point", "coordinates": [ 113.03333, 3.16667 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1-345---", "LOCODE": "MYBKI", "Name": "Kota Kinabalu, Sabah", "NameWoDiac": "Kota Kinabalu, Sabah", "Status": "AI", "outflows": 710049.1667 }, "geometry": { "type": "Point", "coordinates": [ 116.0724, 5.9749 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--45---", "LOCODE": "MYKCH", "Name": "Kuching, Sarawak", "NameWoDiac": "Kuching, Sarawak", "Status": "AI", "outflows": 276603.6 }, "geometry": { "type": "Point", "coordinates": [ 110.33333, 1.55 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--4----", "LOCODE": "MYLBU", "Name": "Labuan, Sabah", "NameWoDiac": "Labuan, Sabah", "Status": "AI", "outflows": 68835.0 }, "geometry": { "type": "Point", "coordinates": [ 115.26924, 5.28883 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--4----", "LOCODE": "MYMKZ", "Name": "Malacca", "NameWoDiac": "Malacca", "Status": "AI", "outflows": 2862.0 }, "geometry": { "type": "Point", "coordinates": [ 102.2405, 2.196 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1-------", "LOCODE": "MYPGU", "Name": "Pasir Gudang, Johor", "NameWoDiac": "Pasir Gudang, Johor", "Status": "QQ", "outflows": 3893274.6667500003 }, "geometry": { "type": "Point", "coordinates": [ 103.878, 1.4726 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--4----", "LOCODE": "MYSDK", "Name": "Sandakan, Sabah", "NameWoDiac": "Sandakan, Sabah", "Status": "AI", "outflows": 18720.0 }, "geometry": { "type": "Point", "coordinates": [ 118.1179, 5.8402 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--4----", "LOCODE": "MYSBW", "Name": "Sibu, Sarawak", "NameWoDiac": "Sibu, Sarawak", "Status": "AI", "outflows": 2250.0 }, "geometry": { "type": "Point", "coordinates": [ 111.81667, 2.3 ] } }, -{ "type": "Feature", "properties": { "Country": "Malaysia", "Function": "1--4----", "LOCODE": "MYTWU", "Name": "Tawau, Sabah", "NameWoDiac": "Tawau, Sabah", "Status": "AI", "outflows": 241236.6667 }, "geometry": { "type": "Point", "coordinates": [ 117.89115, 4.24482 ] } }, -{ "type": "Feature", "properties": { "Country": "Mozambique", "Function": "1--45---", "LOCODE": "MZBEW", "Name": "Beira", "NameWoDiac": "Beira", "Status": "AI", "outflows": 862537.00003 }, "geometry": { "type": "Point", "coordinates": [ 34.83889, -19.84361 ] } }, -{ "type": "Feature", "properties": { "Country": "Mozambique", "Function": "1--45---", "LOCODE": "MZMPM", "Name": "Maputo", "NameWoDiac": "Maputo", "Status": "AI", "outflows": 871116.20004999987 }, "geometry": { "type": "Point", "coordinates": [ 32.58322, -25.96553 ] } }, -{ "type": "Feature", "properties": { "Country": "Mozambique", "Function": "1--4----", "LOCODE": "MZMNC", "Name": "Nacala", "NameWoDiac": "Nacala", "Status": "AI", "outflows": 668056.99998000008 }, "geometry": { "type": "Point", "coordinates": [ 40.68538, -14.56257 ] } }, -{ "type": "Feature", "properties": { "Country": "Mozambique", "Function": "1--4----", "LOCODE": "MZUEL", "Name": "Quelimane", "NameWoDiac": "Quelimane", "Status": "AI", "outflows": 8034.0 }, "geometry": { "type": "Point", "coordinates": [ 36.88833, -17.87861 ] } }, -{ "type": "Feature", "properties": { "Country": "Namibia", "Function": "1-------", "LOCODE": "NAWVB", "Name": "Walvis Bay", "NameWoDiac": "Walvis Bay", "Status": "QQ", "outflows": 2144542.8666100004 }, "geometry": { "type": "Point", "coordinates": [ 14.50528, -22.9575 ] } }, -{ "type": "Feature", "properties": { "Country": "Nigeria", "Function": "1-------", "LOCODE": "NGAPP", "Name": "Apapa", "NameWoDiac": "Apapa", "Status": "QQ", "outflows": 1959193.7340199992 }, "geometry": { "type": "Point", "coordinates": [ 3.35901, 6.4488 ] } }, -{ "type": "Feature", "properties": { "Country": "Nigeria", "Function": "1--4----", "LOCODE": "NGCBQ", "Name": "Calabar", "NameWoDiac": "Calabar", "Status": "AI", "outflows": 7150.0 }, "geometry": { "type": "Point", "coordinates": [ 8.32695, 4.95893 ] } }, -{ "type": "Feature", "properties": { "Country": "Nigeria", "Function": "1--45---", "LOCODE": "NGLOS", "Name": "Lagos", "NameWoDiac": "Lagos", "Status": "AI", "outflows": 1767326.6668199997 }, "geometry": { "type": "Point", "coordinates": [ 3.39467, 6.45407 ] } }, -{ "type": "Feature", "properties": { "Country": "Nigeria", "Function": "1--4----", "LOCODE": "NGPHC", "Name": "Port Harcourt", "NameWoDiac": "Port Harcourt", "Status": "AI", "outflows": 46634.9 }, "geometry": { "type": "Point", "coordinates": [ 7.0134, 4.77742 ] } }, -{ "type": "Feature", "properties": { "Country": "Nicaragua", "Function": "1---5---", "LOCODE": "NICIO", "Name": "Corinto", "NameWoDiac": "Corinto", "Status": "AI", "outflows": 510767.4 }, "geometry": { "type": "Point", "coordinates": [ -87.17304, 12.4825 ] } }, -{ "type": "Feature", "properties": { "Country": "Norway", "Function": "1-------", "LOCODE": "NOGJM", "Name": "Gjemnes", "NameWoDiac": "Gjemnes", "Status": "AI", "outflows": 135486.0 }, "geometry": { "type": "Point", "coordinates": [ 8.08604, 62.89225 ] } }, -{ "type": "Feature", "properties": { "Country": "Oman", "Function": "1--4----", "LOCODE": "OMSLL", "Name": "Salalah", "NameWoDiac": "Salalah", "Status": "AI", "outflows": 20488113.65606999 }, "geometry": { "type": "Point", "coordinates": [ 54.09237, 17.01505 ] } }, -{ "type": "Feature", "properties": { "Country": "Oman", "Function": "1-------", "LOCODE": "OMSOH", "Name": "Sohar", "NameWoDiac": "Sohar", "Status": "QQ", "outflows": 5253518.9085 }, "geometry": { "type": "Point", "coordinates": [ 56.70937, 24.34745 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "1-------", "LOCODE": "PAPAM", "Name": "Almirante", "NameWoDiac": "Almirante", "Status": "AI", "outflows": 265850.0 }, "geometry": { "type": "Point", "coordinates": [ -82.4018, 9.30091 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "1-------", "LOCODE": "PABLB", "Name": "Balboa", "NameWoDiac": "Balboa", "Status": "AI", "outflows": 13017890.895410001 }, "geometry": { "type": "Point", "coordinates": [ -79.56672, 8.94814 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "--3-----", "LOCODE": "PACSO", "Name": "Coco Solo", "NameWoDiac": "Coco Solo", "Status": "RQ", "outflows": 340795.0 }, "geometry": { "type": "Point", "coordinates": [ -79.88168, 9.37091 ] } }, -{ "type": "Feature", "properties": { "Country": "Panama", "Function": "123-----", "LOCODE": "PAMIT", "Name": "Manzanillo", "NameWoDiac": "Manzanillo", "Status": "AI", "outflows": 13509667.606659999 }, "geometry": { "type": "Point", "coordinates": [ -81.16667, 7.53667 ] } }, -{ "type": "Feature", "properties": { "Country": "Peru", "Function": "1-------", "LOCODE": "PECLL", "Name": "Callao", "NameWoDiac": "Callao", "Status": "AI", "outflows": 15247664.791890001 }, "geometry": { "type": "Point", "coordinates": [ -77.11814, -12.05659 ] } }, -{ "type": "Feature", "properties": { "Country": "Peru", "Function": "1--4----", "LOCODE": "PEILQ", "Name": "Ilo", "NameWoDiac": "Ilo", "Status": "AI", "outflows": 83616.0 }, "geometry": { "type": "Point", "coordinates": [ -71.34108, -17.63185 ] } }, -{ "type": "Feature", "properties": { "Country": "Peru", "Function": "1--4----", "LOCODE": "PEIQT", "Name": "Iquitos", "NameWoDiac": "Iquitos", "Status": "AI", "outflows": 9675.0 }, "geometry": { "type": "Point", "coordinates": [ -73.25383, -3.74912 ] } }, -{ "type": "Feature", "properties": { "Country": "Peru", "Function": "1-------", "LOCODE": "PEMRI", "Name": "Matarani", "NameWoDiac": "Matarani", "Status": "AI", "outflows": 98962.5 }, "geometry": { "type": "Point", "coordinates": [ -72.10563, -16.99639 ] } }, -{ "type": "Feature", "properties": { "Country": "Peru", "Function": "1-------", "LOCODE": "PEPAI", "Name": "Paita", "NameWoDiac": "Paita", "Status": "AI", "outflows": 1763103.4120800004 }, "geometry": { "type": "Point", "coordinates": [ -81.11444, -5.08917 ] } }, -{ "type": "Feature", "properties": { "Country": "Peru", "Function": "1--4----", "LOCODE": "PEPIO", "Name": "Pisco", "NameWoDiac": "Pisco", "Status": "AI", "outflows": 121628.0 }, "geometry": { "type": "Point", "coordinates": [ -76.20538, -13.71029 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGGUR", "Name": "Alotau", "NameWoDiac": "Alotau", "Status": "AI", "outflows": 15808.0 }, "geometry": { "type": "Point", "coordinates": [ 150.45742, -10.31509 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGBUA", "Name": "Buka", "NameWoDiac": "Buka", "Status": "AI", "outflows": 15808.0 }, "geometry": { "type": "Point", "coordinates": [ 154.67098, -5.43261 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1-------", "LOCODE": "PGKIM", "Name": "Kimbe", "NameWoDiac": "Kimbe", "Status": "QQ", "outflows": 99364.0 }, "geometry": { "type": "Point", "coordinates": [ 150.13766, -5.55085 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGLAE", "Name": "Lae", "NameWoDiac": "Lae", "Status": "AI", "outflows": 836183.91665300005 }, "geometry": { "type": "Point", "coordinates": [ 146.99611, -6.72333 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGPOM", "Name": "Port Moresby", "NameWoDiac": "Port Moresby", "Status": "AI", "outflows": 402247.08331199997 }, "geometry": { "type": "Point", "coordinates": [ 147.15089, -9.47723 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGRAB", "Name": "Rabaul", "NameWoDiac": "Rabaul", "Status": "AI", "outflows": 115172.0 }, "geometry": { "type": "Point", "coordinates": [ 152.16297, -4.20037 ] } }, -{ "type": "Feature", "properties": { "Country": "Papua New Guinea", "Function": "1--4----", "LOCODE": "PGWWK", "Name": "Wewak", "NameWoDiac": "Wewak", "Status": "AI", "outflows": 43795.0 }, "geometry": { "type": "Point", "coordinates": [ 143.63229, -3.54964 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHBCD", "Name": "Bacolod, Negros", "NameWoDiac": "Bacolod, Negros", "Status": "AI", "outflows": 18806.0 }, "geometry": { "type": "Point", "coordinates": [ 122.95, 10.66667 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHCGY", "Name": "Cagayan de Oro, Mindanao", "NameWoDiac": "Cagayan de Oro, Mindanao", "Status": "AI", "outflows": 1437089.1667599997 }, "geometry": { "type": "Point", "coordinates": [ 124.64722, 8.48222 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHCEB", "Name": "Cebu", "NameWoDiac": "Cebu", "Status": "AI", "outflows": 1378464.0 }, "geometry": { "type": "Point", "coordinates": [ 123.89071, 10.31672 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHCBO", "Name": "Cotabato, Mindanao", "NameWoDiac": "Cotabato, Mindanao", "Status": "AI", "outflows": 29328.0 }, "geometry": { "type": "Point", "coordinates": [ 124.24639, 7.22361 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHDGT", "Name": "Dumaguete", "NameWoDiac": "Dumaguete", "Status": "AI", "outflows": 27546.0 }, "geometry": { "type": "Point", "coordinates": [ 123.30261, 9.30722 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--45---", "LOCODE": "PHMNL", "Name": "Manila", "NameWoDiac": "Manila", "Status": "AI", "outflows": 7135131.1431800006 }, "geometry": { "type": "Point", "coordinates": [ 120.9822, 14.6042 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHOZC", "Name": "Ozamis, Mindanao", "NameWoDiac": "Ozamis, Mindanao", "Status": "AI", "outflows": 10976.0 }, "geometry": { "type": "Point", "coordinates": [ 123.8405, 8.1481 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1-3-----", "LOCODE": "PHPLC", "Name": "Polloc", "NameWoDiac": "Polloc", "Status": "RQ", "outflows": 11193.0 }, "geometry": { "type": "Point", "coordinates": [ 124.22088, 7.3534 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHPPS", "Name": "Puerto Princesa, Palawan", "NameWoDiac": "Puerto Princesa, Palawan", "Status": "AI", "outflows": 9100.0 }, "geometry": { "type": "Point", "coordinates": [ 118.73528, 9.73917 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHSFS", "Name": "Subic Bay", "NameWoDiac": "Subic Bay", "Status": "AI", "outflows": 1621178.0 }, "geometry": { "type": "Point", "coordinates": [ 120.27987, 14.78899 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHTAG", "Name": "Tagbilaran, Bohol", "NameWoDiac": "Tagbilaran, Bohol", "Status": "AI", "outflows": 4320.0 }, "geometry": { "type": "Point", "coordinates": [ 123.85219, 9.65556 ] } }, -{ "type": "Feature", "properties": { "Country": "Philippines", "Function": "1--4----", "LOCODE": "PHZAM", "Name": "Zamboanga", "NameWoDiac": "Zamboanga", "Status": "AI", "outflows": 67509.0 }, "geometry": { "type": "Point", "coordinates": [ 122.07389, 6.91028 ] } }, -{ "type": "Feature", "properties": { "Country": "Pakistan", "Function": "1-34----", "LOCODE": "PKGWD", "Name": "Gwadar", "NameWoDiac": "Gwadar", "Status": "AI", "outflows": 145535.0 }, "geometry": { "type": "Point", "coordinates": [ 62.32541, 25.12163 ] } }, -{ "type": "Feature", "properties": { "Country": "Pakistan", "Function": "12345---", "LOCODE": "PKKHI", "Name": "Karachi", "NameWoDiac": "Karachi", "Status": "AI", "outflows": 11738106.441340001 }, "geometry": { "type": "Point", "coordinates": [ 67.0104, 24.8608 ] } }, -{ "type": "Feature", "properties": { "Country": "Poland", "Function": "1--4----", "LOCODE": "PLGDN", "Name": "Gdansk", "NameWoDiac": "Gdansk", "Status": "AI", "outflows": 6373121.0499060033 }, "geometry": { "type": "Point", "coordinates": [ 18.64912, 54.35227 ] } }, -{ "type": "Feature", "properties": { "Country": "Poland", "Function": "1--45---", "LOCODE": "PLSZZ", "Name": "Szczecin", "NameWoDiac": "Szczecin", "Status": "AI", "outflows": 101530.0 }, "geometry": { "type": "Point", "coordinates": [ 14.55302, 53.42894 ] } }, -{ "type": "Feature", "properties": { "Country": "Palau", "Function": "1--4----", "LOCODE": "PWROR", "Name": "Koror", "NameWoDiac": "Koror", "Status": "AI", "outflows": 30420.0 }, "geometry": { "type": "Point", "coordinates": [ 134.47326, 7.33978 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1--4----", "LOCODE": "RUARH", "Name": "Arkhangelsk", "NameWoDiac": "Arkhangelsk", "Status": "AI", "outflows": 390.0 }, "geometry": { "type": "Point", "coordinates": [ 40.5433, 64.5401 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1-------", "LOCODE": "RUDUD", "Name": "Dudinka", "NameWoDiac": "Dudinka", "Status": "QQ", "outflows": 16796.0 }, "geometry": { "type": "Point", "coordinates": [ 86.17778, 69.40583 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1--4----", "LOCODE": "RUKGD", "Name": "Kaliningrad", "NameWoDiac": "Kaliningrad", "Status": "AI", "outflows": 133061.5 }, "geometry": { "type": "Point", "coordinates": [ 20.51095, 54.70649 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1-------", "LOCODE": "RUKOR", "Name": "Korsakov", "NameWoDiac": "Korsakov", "Status": "QQ", "outflows": 19067.0 }, "geometry": { "type": "Point", "coordinates": [ 142.77722, 46.6342 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "---4----", "LOCODE": "RUGDX", "Name": "Magadan", "NameWoDiac": "Magadan", "Status": "AI", "outflows": 27664.0 }, "geometry": { "type": "Point", "coordinates": [ 150.80347, 59.5638 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1--4----", "LOCODE": "RUPKC", "Name": "Petropavlovsk-Kamchatskiy", "NameWoDiac": "Petropavlovsk-Kamchatskiy", "Status": "AI", "outflows": 10478.0 }, "geometry": { "type": "Point", "coordinates": [ 158.65076, 53.04444 ] } }, -{ "type": "Feature", "properties": { "Country": "Russian Federation", "Function": "1--4----", "LOCODE": "RUVVO", "Name": "Vladivostok", "NameWoDiac": "Vladivostok", "Status": "AI", "outflows": 1273681.4999099998 }, "geometry": { "type": "Point", "coordinates": [ 131.87353, 43.10562 ] } }, -{ "type": "Feature", "properties": { "Country": "Saudi Arabia", "Function": "1-------", "LOCODE": "SAJUB", "Name": "Jubail", "NameWoDiac": "Jubail", "Status": "QQ", "outflows": 6234394.5950499978 }, "geometry": { "type": "Point", "coordinates": [ 49.62251, 27.0174 ] } }, -{ "type": "Feature", "properties": { "Country": "Seychelles", "Function": "1-------", "LOCODE": "SCPOV", "Name": "Port Victoria", "NameWoDiac": "Port Victoria", "Status": "QQ", "outflows": 611771.76191000012 }, "geometry": { "type": "Point", "coordinates": [ 55.45501, -4.62001 ] } }, -{ "type": "Feature", "properties": { "Country": "Sudan", "Function": "1--45---", "LOCODE": "SDPZU", "Name": "Port Sudan", "NameWoDiac": "Port Sudan", "Status": "AI", "outflows": 308535.0 }, "geometry": { "type": "Point", "coordinates": [ 37.21644, 19.61745 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "12-4----", "LOCODE": "SEHEL", "Name": "Helsingborg", "NameWoDiac": "Helsingborg", "Status": "AI", "outflows": 634088.0 }, "geometry": { "type": "Point", "coordinates": [ 12.69437, 56.04673 ] } }, -{ "type": "Feature", "properties": { "Country": "Sweden", "Function": "123-----", "LOCODE": "SEVAG", "Name": "Varberg", "NameWoDiac": "Varberg", "Status": "AA", "outflows": 82628.0 }, "geometry": { "type": "Point", "coordinates": [ 12.25078, 57.10557 ] } }, -{ "type": "Feature", "properties": { "Country": "Singapore", "Function": "1--45---", "LOCODE": "SGSIN", "Name": "Singapore", "NameWoDiac": "Singapore", "Status": "AI", "outflows": 126673817.40886995 }, "geometry": { "type": "Point", "coordinates": [ 103.85007, 1.28967 ] } }, -{ "type": "Feature", "properties": { "Country": "Slovenia", "Function": "1-------", "LOCODE": "SIKOP", "Name": "Koper", "NameWoDiac": "Koper", "Status": "RL", "outflows": 4814941.1666899994 }, "geometry": { "type": "Point", "coordinates": [ 13.72944, 45.54694 ] } }, -{ "type": "Feature", "properties": { "Country": "Sierra Leone", "Function": "1--45---", "LOCODE": "SLFNA", "Name": "Freetown", "NameWoDiac": "Freetown", "Status": "AI", "outflows": 292305.0 }, "geometry": { "type": "Point", "coordinates": [ -13.2356, 8.48714 ] } }, -{ "type": "Feature", "properties": { "Country": "Senegal", "Function": "1--45---", "LOCODE": "SNDKR", "Name": "Dakar", "NameWoDiac": "Dakar", "Status": "AI", "outflows": 2417263.262 }, "geometry": { "type": "Point", "coordinates": [ -17.44406, 14.6937 ] } }, -{ "type": "Feature", "properties": { "Country": "Somalia", "Function": "1--4----", "LOCODE": "SOBBO", "Name": "Berbera", "NameWoDiac": "Berbera", "Status": "AI", "outflows": 215094.5 }, "geometry": { "type": "Point", "coordinates": [ 45.01432, 10.43959 ] } }, -{ "type": "Feature", "properties": { "Country": "Somalia", "Function": "1--4----", "LOCODE": "SOKMU", "Name": "Kismayu", "NameWoDiac": "Kismayu", "Status": "AI", "outflows": 188773.0 }, "geometry": { "type": "Point", "coordinates": [ 42.54536, -0.35817 ] } }, -{ "type": "Feature", "properties": { "Country": "Somalia", "Function": "1--45---", "LOCODE": "SOMGQ", "Name": "Mogadishu", "NameWoDiac": "Mogadishu", "Status": "AI", "outflows": 437501.99997999996 }, "geometry": { "type": "Point", "coordinates": [ 45.34375, 2.03711 ] } }, -{ "type": "Feature", "properties": { "Country": "Suriname", "Function": "1--45---", "LOCODE": "SRPBM", "Name": "Paramaribo", "NameWoDiac": "Paramaribo", "Status": "AI", "outflows": 538931.33332199999 }, "geometry": { "type": "Point", "coordinates": [ -55.16682, 5.86638 ] } }, -{ "type": "Feature", "properties": { "Country": "Suriname", "Function": "1--45---", "LOCODE": "SRPBM", "Name": "Paramaribo", "NameWoDiac": "Paramaribo", "Status": "AI", "outflows": 538931.33332199999 }, "geometry": { "type": "Point", "coordinates": [ -55.16682, 5.86638 ] } }, -{ "type": "Feature", "properties": { "Country": "El Salvador", "Function": "1-3-----", "LOCODE": "SVAQJ", "Name": "Acajutla", "NameWoDiac": "Acajutla", "Status": "AI", "outflows": 495947.4 }, "geometry": { "type": "Point", "coordinates": [ -89.8275, 13.59278 ] } }, -{ "type": "Feature", "properties": { "Country": "El Salvador", "Function": "1--45---", "LOCODE": "SVSAL", "Name": "San Salvador", "NameWoDiac": "San Salvador", "Status": "AI", "outflows": 388752.0 }, "geometry": { "type": "Point", "coordinates": [ -89.18718, 13.68935 ] } }, -{ "type": "Feature", "properties": { "Country": "Togo", "Function": "1--45---", "LOCODE": "TGLFW", "Name": "Lome", "NameWoDiac": "Lome", "Status": "AI", "outflows": 6445382.4134400021 }, "geometry": { "type": "Point", "coordinates": [ 1.22154, 6.12874 ] } }, -{ "type": "Feature", "properties": { "Country": "Thailand", "Function": "1-------", "LOCODE": "THSRI", "Name": "Sriracha", "NameWoDiac": "Sriracha", "Status": "QQ", "outflows": 58522.5 }, "geometry": { "type": "Point", "coordinates": [ 100.93111, 13.17372 ] } }, -{ "type": "Feature", "properties": { "Country": "Tunisia", "Function": "1234----", "LOCODE": "TNBIZ", "Name": "Bizerte", "NameWoDiac": "Bizerte", "Status": "QQ", "outflows": 106117.5 }, "geometry": { "type": "Point", "coordinates": [ 9.87391, 37.27442 ] } }, -{ "type": "Feature", "properties": { "Country": "Tunisia", "Function": "1234----", "LOCODE": "TNSFA", "Name": "Sfax", "NameWoDiac": "Sfax", "Status": "AI", "outflows": 72212.33334 }, "geometry": { "type": "Point", "coordinates": [ 10.76028, 34.74056 ] } }, -{ "type": "Feature", "properties": { "Country": "Tunisia", "Function": "1234----", "LOCODE": "TNSUS", "Name": "Sousse", "NameWoDiac": "Sousse", "Status": "QQ", "outflows": 43545.0 }, "geometry": { "type": "Point", "coordinates": [ 10.63699, 35.82539 ] } }, -{ "type": "Feature", "properties": { "Country": "Tunisia", "Function": "12345---", "LOCODE": "TNTUN", "Name": "Tunis", "NameWoDiac": "Tunis", "Status": "AI", "outflows": 59748.0 }, "geometry": { "type": "Point", "coordinates": [ 10.16579, 36.81897 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-------", "LOCODE": "TRALI", "Name": "Aliaga", "NameWoDiac": "Aliaga", "Status": "RL", "outflows": 8740753.932889998 }, "geometry": { "type": "Point", "coordinates": [ 26.97203, 38.79975 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-3-----", "LOCODE": "TRDRC", "Name": "Derince", "NameWoDiac": "Derince", "Status": "QQ", "outflows": 303927.0 }, "geometry": { "type": "Point", "coordinates": [ 29.81472, 40.75694 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-3-----", "LOCODE": "TRHAY", "Name": "Haydarpasa", "NameWoDiac": "Haydarpasa", "Status": "QQ", "outflows": 220592.66669000004 }, "geometry": { "type": "Point", "coordinates": [ 29.02459, 40.99596 ] } }, -{ "type": "Feature", "properties": { "Country": "Turkey", "Function": "1-------", "LOCODE": "TRYAR", "Name": "Yarimca", "NameWoDiac": "Yarimca", "Status": "QQ", "outflows": 895813.99998000008 }, "geometry": { "type": "Point", "coordinates": [ 31.14194, 39.08361 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--45---", "LOCODE": "USANC", "Name": "Anchorage", "NameWoDiac": "Anchorage", "Status": "AI", "outflows": 61671.99999 }, "geometry": { "type": "Point", "coordinates": [ -149.90028, 61.21806 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USBPT", "Name": "Beaumont", "NameWoDiac": "Beaumont", "Status": "AI", "outflows": 34041.0 }, "geometry": { "type": "Point", "coordinates": [ -94.10185, 30.08605 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--45---", "LOCODE": "USBOS", "Name": "Boston", "NameWoDiac": "Boston", "Status": "AI", "outflows": 1565893.3335999998 }, "geometry": { "type": "Point", "coordinates": [ -71.05977, 42.35843 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "--3-----", "LOCODE": "USBCK", "Name": "Brunswick", "NameWoDiac": "Brunswick", "Status": "RL", "outflows": 48681.0 }, "geometry": { "type": "Point", "coordinates": [ -74.45182, 40.48622 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "--3-----", "LOCODE": "USCAT", "Name": "Camden", "NameWoDiac": "Camden", "Status": "RQ", "outflows": 176498.0 }, "geometry": { "type": "Point", "coordinates": [ -75.11962, 39.92595 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USCHS", "Name": "Charleston", "NameWoDiac": "Charleston", "Status": "AI", "outflows": 23192728.69687001 }, "geometry": { "type": "Point", "coordinates": [ -79.924426675273111, 32.785017342562952 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "--3-----", "LOCODE": "USCAV", "Name": "Cleveland", "NameWoDiac": "Cleveland", "Status": "RQ", "outflows": 1974.0 }, "geometry": { "type": "Point", "coordinates": [ -81.69541, 41.4995 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USCRP", "Name": "Corpus Christi", "NameWoDiac": "Corpus Christi", "Status": "AI", "outflows": 53712.0 }, "geometry": { "type": "Point", "coordinates": [ -97.39638, 27.80058 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USDUT", "Name": "Dutch Harbor", "NameWoDiac": "Dutch Harbor", "Status": "AI", "outflows": 378795.99998999998 }, "geometry": { "type": "Point", "coordinates": [ -166.5422, 53.8898 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-34----", "LOCODE": "USPAE", "Name": "Everett", "NameWoDiac": "Everett", "Status": "AI", "outflows": 152295.00003000002 }, "geometry": { "type": "Point", "coordinates": [ -122.20208, 47.97898 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "---4----", "LOCODE": "USFEP", "Name": "Freeport", "NameWoDiac": "Freeport", "Status": "AI", "outflows": 751787.11118999997 }, "geometry": { "type": "Point", "coordinates": [ -70.10311, 43.85702 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USGLS", "Name": "Galveston", "NameWoDiac": "Galveston", "Status": "AI", "outflows": 47326.5 }, "geometry": { "type": "Point", "coordinates": [ -94.7977, 29.30135 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-3-----", "LOCODE": "USGLC", "Name": "Gloucester City", "NameWoDiac": "Gloucester City", "Status": "RN", "outflows": 59686.5 }, "geometry": { "type": "Point", "coordinates": [ -70.66313, 42.61405 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "---4----", "LOCODE": "USIJX", "Name": "Jacksonville", "NameWoDiac": "Jacksonville", "Status": "AI", "outflows": 5087986.3044199999 }, "geometry": { "type": "Point", "coordinates": [ -81.65565, 30.33218 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "---4----", "LOCODE": "USADQ", "Name": "Kodiak", "NameWoDiac": "Kodiak", "Status": "AI", "outflows": 61671.99999 }, "geometry": { "type": "Point", "coordinates": [ -152.40533, 57.78852 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--45---", "LOCODE": "USLAX", "Name": "Los Angeles", "NameWoDiac": "Los Angeles", "Status": "AI", "outflows": 12755714.048839999 }, "geometry": { "type": "Point", "coordinates": [ -118.24368, 34.05223 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--45---", "LOCODE": "USMIA", "Name": "Miami", "NameWoDiac": "Miami", "Status": "AI", "outflows": 6651073.40288 }, "geometry": { "type": "Point", "coordinates": [ -80.19366, 25.77427 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USMOB", "Name": "Mobile", "NameWoDiac": "Mobile", "Status": "AI", "outflows": 3378854.4003 }, "geometry": { "type": "Point", "coordinates": [ -88.04305, 30.69436 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-3-----", "LOCODE": "USMRH", "Name": "Morehead City", "NameWoDiac": "Morehead City", "Status": "RN", "outflows": 44898.75 }, "geometry": { "type": "Point", "coordinates": [ -76.72604, 34.72294 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "12345---", "LOCODE": "USMSY", "Name": "New Orleans", "NameWoDiac": "New Orleans", "Status": "AI", "outflows": 8818359.6138159968 }, "geometry": { "type": "Point", "coordinates": [ -90.07507, 29.95465 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USPFN", "Name": "Panama City", "NameWoDiac": "Panama City", "Status": "AI", "outflows": 82722.0 }, "geometry": { "type": "Point", "coordinates": [ -85.65983, 30.15946 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USPWM", "Name": "Portland", "NameWoDiac": "Portland", "Status": "AI", "outflows": 27248.000001 }, "geometry": { "type": "Point", "coordinates": [ -122.67621, 45.52345 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USPDX", "Name": "Portland", "NameWoDiac": "Portland", "Status": "AI", "outflows": 336570.0 }, "geometry": { "type": "Point", "coordinates": [ -122.67621, 45.52345 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USSAV", "Name": "Savannah", "NameWoDiac": "Savannah", "Status": "AI", "outflows": 26558703.755599998 }, "geometry": { "type": "Point", "coordinates": [ -81.09983, 32.08354 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--45---", "LOCODE": "USSEA", "Name": "Seattle", "NameWoDiac": "Seattle", "Status": "AI", "outflows": 10283805.920580002 }, "geometry": { "type": "Point", "coordinates": [ -122.33207, 47.60621 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USTIW", "Name": "Tacoma", "NameWoDiac": "Tacoma", "Status": "AI", "outflows": 4139226.6189899999 }, "geometry": { "type": "Point", "coordinates": [ -122.44429, 47.25288 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--45---", "LOCODE": "USTPA", "Name": "Tampa", "NameWoDiac": "Tampa", "Status": "AI", "outflows": 1911998.4003 }, "geometry": { "type": "Point", "coordinates": [ -82.45843, 27.94752 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1-3-----", "LOCODE": "USVAN", "Name": "Vancouver", "NameWoDiac": "Vancouver", "Status": "RN", "outflows": 65700.0 }, "geometry": { "type": "Point", "coordinates": [ -122.66149, 45.63873 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USPBI", "Name": "West Palm Beach", "NameWoDiac": "West Palm Beach", "Status": "AI", "outflows": 222144.0 }, "geometry": { "type": "Point", "coordinates": [ -80.05337, 26.71534 ] } }, -{ "type": "Feature", "properties": { "Country": "United States", "Function": "1--4----", "LOCODE": "USILG", "Name": "Wilmington", "NameWoDiac": "Wilmington", "Status": "AI", "outflows": 290589.0 }, "geometry": { "type": "Point", "coordinates": [ -75.54659, 39.74595 ] } }, -{ "type": "Feature", "properties": { "Country": "Uruguay", "Function": "1--45---", "LOCODE": "UYMVD", "Name": "Montevideo", "NameWoDiac": "Montevideo", "Status": "AF", "outflows": 11543641.215 }, "geometry": { "type": "Point", "coordinates": [ -56.18816, -34.90328 ] } }, -{ "type": "Feature", "properties": { "Country": "Virgin Islands, U.S.", "Function": "1-------", "LOCODE": "VICHA", "Name": "Charlotte Amalie, Saint Thomas", "NameWoDiac": "Charlotte Amalie, Saint Thomas", "Status": "AI", "outflows": 307918.0 }, "geometry": { "type": "Point", "coordinates": [ -64.9307, 18.3419 ] } }, -{ "type": "Feature", "properties": { "Country": "Viet Nam", "Function": "1-------", "LOCODE": "VNHPH", "Name": "Haiphong", "NameWoDiac": "Haiphong", "Status": "AI", "outflows": 10072807.932540001 }, "geometry": { "type": "Point", "coordinates": [ 106.68345, 20.86481 ] } }, -{ "type": "Feature", "properties": { "Country": "Vanuatu", "Function": "1--45---", "LOCODE": "VUVLI", "Name": "Port Vila", "NameWoDiac": "Port Vila", "Status": "AI", "outflows": 453739.0 }, "geometry": { "type": "Point", "coordinates": [ 168.31366, -17.73648 ] } }, -{ "type": "Feature", "properties": { "Country": "Vanuatu", "Function": "1-------", "LOCODE": "VUSAN", "Name": "Santo", "NameWoDiac": "Santo", "Status": "RQ", "outflows": 206498.5 }, "geometry": { "type": "Point", "coordinates": [ 167.16235, -15.51989 ] } }, -{ "type": "Feature", "properties": { "Country": "Samoa", "Function": "1--45---", "LOCODE": "WSAPW", "Name": "Apia", "NameWoDiac": "Apia", "Status": "AI", "outflows": 339021.5 }, "geometry": { "type": "Point", "coordinates": [ -171.76666, -13.83333 ] } }, -{ "type": "Feature", "properties": { "Country": "Yemen", "Function": "1--45---", "LOCODE": "YEADE", "Name": "Aden", "NameWoDiac": "Aden", "Status": "AI", "outflows": 126082.5 }, "geometry": { "type": "Point", "coordinates": [ 45.03667, 12.77944 ] } }, -{ "type": "Feature", "properties": { "Country": "Yemen", "Function": "1--4----", "LOCODE": "YEMKX", "Name": "Mukalla", "NameWoDiac": "Mukalla", "Status": "AI", "outflows": 30745.0 }, "geometry": { "type": "Point", "coordinates": [ 49.12424, 14.54248 ] } }, -{ "type": "Feature", "properties": { "Country": "South Africa", "Function": "1234----", "LOCODE": "ZAELS", "Name": "East London", "NameWoDiac": "East London", "Status": "AF", "outflows": 15600.0 }, "geometry": { "type": "Point", "coordinates": [ 27.91162, -33.01529 ] } }, -{ "type": "Feature", "properties": { "Country": "South Africa", "Function": "1--45---", "LOCODE": "ZAPLZ", "Name": "Port Elizabeth", "NameWoDiac": "Port Elizabeth", "Status": "AF", "outflows": 2557154.4621100002 }, "geometry": { "type": "Point", "coordinates": [ 25.61494, -33.96109 ] } }, -{ "type": "Feature", "properties": { "Country": "South Africa", "Function": "1--4----", "LOCODE": "ZARCB", "Name": "Richards Bay", "NameWoDiac": "Richards Bay", "Status": "AF", "outflows": 164538.86664000002 }, "geometry": { "type": "Point", "coordinates": [ 32.03768, -28.78301 ] } } -] -} diff --git a/data/existing_infrastructure/existing_heating_raw.csv b/data/existing_infrastructure/existing_heating_raw.csv index 5e2581c93d..738700fcd8 100644 --- a/data/existing_infrastructure/existing_heating_raw.csv +++ b/data/existing_infrastructure/existing_heating_raw.csv @@ -1,32 +1,33 @@ -,gas boiler,coal boiler,oil boiler,resistive heater,air heat pump,ground heat pump -Austria,9.32,0.4,15.42,0,0.72,1.077 -Belgium,28.39,1.19,19.53,3.14,0.17,0.061 -Bulgaria,0.16,3.68,0.04,3.46,1.01,0.045 -Croatia,8.39,0.03,2.88,1.53,0,0 -Czech Republic,9.26,1.02,0.1,2.73,0.35,0.263 -Denmark,4.82,0,3.67,2.19,1.9,0.381 -Estonia,0.22,0.02,0.12,0.27,0.33,0.1 -Finland,0,0.04,3.79,10.3,1.98,0.58 -France,76.85,1.03,46.03,87.24,26.14,1.97 -Germany,131.09,0.44,132.04,0,2.38,3.29 -Greece,2.17,0.03,18.13,5.91,0,0 -Hungary,21.21,1.3,0.04,0.06,0.03,0.035 -Ireland,4.32,0.8,4.85,1.03,0.03,0.03 -Italy,112.68,1.89,3.33,6.61,54.98,0.6 -Latvia,1.53,0.4,0,0.03,0,0 -Lithuania,0,0,0,0,0.01,0.02 -Luxembourg,0.79,0,0.77,0.09,0.01,0.001 -Netherlands,81.41,0,0.1,0.1,1.82,0.849 -Poland,8.25,24.75,9.04,5.96,0.01,0.04 -Portugal,4.79,0,0.2,21.26,1.58,0.064 -Romania,16.56,0.32,0.03,0.72,0,0 -Slovakia,8.05,0.19,0.01,0.55,0.06,0.015 -Slovenia,0.4,0,1.08,0.4,0.03,0.056 -Spain,48.99,0.51,17.95,56.58,1.15,0.016 -Sweden,1.01,0,0.77,3.76,3.42,4.813 -United Kingdom,160.49,1.26,7.39,13.81,0.81,0.21 -Norway,,,,,2.91,0.334 -Switzerland,,,,,1,0.849 -Serbia,,,,,, -Kosovo,,,,,, -Bosnia Herzegovina,,,,,, +,gas boiler,coal boiler,oil boiler,resistive heater,air heat pump,ground heat pump,biomass boiler +Austria,9.32,0.4,15.42,0,0.72,1.077,12.16 +Belgium,28.39,1.19,19.53,3.14,0.17,0.061,4.30 +Bulgaria,0.16,3.68,0.04,3.46,1.01,0.045,5.7 +Croatia,8.39,0.03,2.88,1.53,0,0,3.98 +Czech Republic,9.26,1.02,0.1,2.73,0.35,0.263,8.15 +Denmark,4.82,0,3.67,2.19,1.9,0.381,6.55 +Estonia,0.22,0.02,0.12,0.27,0.33,0.1,2.78 +Finland,0,0.04,3.79,10.3,1.98,0.58,10.83 +France,76.85,1.03,46.03,87.24,26.14,1.97,55.42 +Germany,131.09,0.44,132.04,0,2.38,3.29,39.81 +Greece,2.17,0.03,18.13,5.91,0,0,8.85 +Hungary,21.21,1.3,0.04,0.06,0.03,0.035,5.44 +Ireland,4.32,0.8,4.85,1.03,0.03,0.03,0.21 +Italy,112.68,1.89,3.33,6.61,54.98,0.6,64.17 +Latvia,1.53,0.4,0,0.03,0,0,4.98 +Lithuania,0,0,0,0,0.01,0.02,4.21 +Luxembourg,0.79,0,0.77,0.09,0.01,0.001,0.13 +Netherlands,81.41,0,0.1,0.1,1.82,0.849,2.18 +Poland,8.25,24.75,9.04,5.96,0.01,0.04,19.94 +Portugal,4.79,0,0.2,21.26,1.58,0.064,7.38 +Romania,16.56,0.32,0.03,0.72,0,0,23.46 +Slovakia,8.05,0.19,0.01,0.55,0.06,0.015,0.26 +Slovenia,0.4,0,1.08,0.4,0.03,0.056,3.37 +Spain,48.99,0.51,17.95,56.58,1.15,0.016,19.06 +Sweden,1.01,0,0.77,3.76,3.42,4.813,9.43 +United Kingdom,160.49,1.26,7.39,13.81,0.81,0.21,3.27 +Norway,,,,,2.91,0.334,4.72 +Switzerland,,,,,1,0.849, +Iceland,,,,,,, +Serbia,,,,,,, +Kosovo,,,,,,, +Bosnia Herzegovina,,,,,,, \ No newline at end of file diff --git a/data/gr-e-11.03.02.01.01-cc.csv b/data/gr-e-11.03.02.01.01-cc.csv deleted file mode 100644 index 0ba695def0..0000000000 --- a/data/gr-e-11.03.02.01.01-cc.csv +++ /dev/null @@ -1,45 +0,0 @@ -year,passenger cars,passenger vehicles,goods vehicles,agricultural vehicles,industrial vehicles,motorcycles,mopeds (incl. fast e-bikes)¹ -1980,2246752,11087,169402,137685,0,137340,671473 -1981,2394455,11122,167846,151238,0,152508,687517 -1982,2473318,11341,178313,156631,0,178398,656102 -1983,2520610,11255,189920,165332,0,187090,674710 -1984,2552132,10853,192708,164078,0,199302,647391 -1985,2617164,10771,200537,175161,0,217974,644175 -1986,2678911,10800,207014,183689,0,225676,627523 -1987,2732720,11027,217750,189984,0,240102,613093 -1988,2819548,26869,236649,152693,43519,219987,581270 -1989,2895842,29270,241488,157867,44326,261715,551808 -1990,2985397,31180,252136,162932,45920,299264,464609 -1991,3057798,32968,257646,165571,46938,319779,418251 -1992,3091228,34136,256611,169277,47281,336448,381236 -1993,3109523,34852,253461,171414,47229,348159,358732 -1994,3165042,35676,256285,172300,47373,357252,336367 -1995,3229176,36517,262352,174026,47693,370700,317783 -1996,3268093,37662,263020,174247,47622,381986,301009 -1997,3323455,38508,264200,175689,47743,410750,280467 -1998,3383307,39012,267380,176712,47754,435042,265422 -1999,3467311,39692,273954,177148,48265,464357,246018 -2000,3545247,40260,278518,177963,48949,493781,218932 -2001,3629713,41342,285246,179321,49549,521390,199033 -2002,3700951,42401,290142,180063,50227,545132,186811 -2003,3753890,43629,292329,180295,50795,567358,173486 -2004,3811351,44784,298193,180898,50957,583010,165000 -2005,3863807,45785,307264,182093,51860,592194,156095 -2006,3899917,46445,314020,185450,53437,608648,150563 -2007,3955787,48026,324153,184062,55149,619166,144704 -2008,3989811,48536,326232,188218,55808,636540,141549 -2009,4009602,50675,327808,185902,56533,642777,139220 -2010,4075825,52751,335200,186485,58492,651202,139548 -2011,4163003,55422,348553,187130,60324,665870,142834 -2012,4254725,58278,361926,188358,62219,679822,145984 -2013,4320885,60151,371361,189305,63950,687990,147247 -2014,4384490,62436,382281,190095,65563,699219,152962 -2015,4458069,65720,393598,191132,67101,710022,161292 -2016,4524029,69676,405566,192139,68721,720381,176030 -2017,4570823,73814,416501,192858,70113,729149,188053 -2018,4602688,77985,428808,193283,71683,739344,201423 -2019,4623952,83054,440795,193834,74085,744542,211480 -2020,4658335,88293,452186,195082,75659,771586,229421 -2021,4709366,97805,466857,196530,77672,791323,244572 -2022,4721280,105158,475714,196942,79691,789794,257753 -2023,4760948,114299,485303,197678,81241,805653, diff --git a/data/versions.csv b/data/versions.csv new file mode 100644 index 0000000000..d9fc7c0e93 --- /dev/null +++ b/data/versions.csv @@ -0,0 +1,121 @@ +"dataset","source","version","tags","url","note" +"co2stop","archive","26 AUGUST 2020","['latest', 'supported']","https://zenodo.org/records/15837736/files/co2jrc_openformats.zip","" +"co2stop","primary","26 AUGUST 2020","['latest', 'supported']","https://setis.ec.europa.eu/document/download/786a884f-0b33-4789-b744-28004b16bd1a_en?filename=co2jrc_openformats.zip","" +"gem_europe_gas_tracker","archive","May 2024","['latest', 'supported']","https://zenodo.org/records/16893480/files/Europe-Gas-Tracker-2024-05.xlsx","" +"gem_europe_gas_tracker","primary","May 2024","['latest', 'supported']","https://globalenergymonitor.org/wp-content/uploads/2024/05/Europe-Gas-Tracker-2024-05.xlsx","" +"gem_gspt","archive","April 2024 V1","['latest', 'supported']","https://zenodo.org/records/16893375/files/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx","" +"gem_gspt","primary","March-2025 V1","['not-supported']","https://globalenergymonitor.org/wp-content/uploads/2025/03/Plant-level-data-Global-Iron-and-Steel-Tracker-March-2025-V1.xlsx""","" +"enspreso_biomass","archive","2019-06-20","['latest', 'supported']","https://zenodo.org/records/10356004/files/ENSPRESO_BIOMASS.xlsx","" +"enspreso_biomass","primary","unknown","['latest', 'supported']","https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/ENSPRESO/ENSPRESO_BIOMASS.xlsx","2019 version was changed in 2023 with negligible differences, but since the version is not frozen we label it as 'unknown'." +"hotmaps_industrial_sites","archive","Version 0.2.0","['not-supported']","https://zenodo.org/records/4687147/files/industrial_sites_Industrial_Database-1.0.zip","" +"hotmaps_industrial_sites","archive","Version 1.1","['latest', 'supported']","https://zenodo.org/records/15834781/files/Industrial_Database.csv","" +"hotmaps_industrial_sites","primary","Version 1.0","['not-supported']","https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database/-/raw/1.0/data/Industrial_Database.csv","Required renaming of country names to work with PyPSA-Eur. This was fixed in the latest version." +"hotmaps_industrial_sites","primary","unknown","['latest', 'supported']","https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database/-/raw/master/data/Industrial_Database.csv","" +"nitrogen_statistics","archive","2022","['latest', 'supported']","https://zenodo.org/records/15838121/files/nitro-ert.xlsx","" +"nitrogen_statistics","primary","2022","['supported']","https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/myb1-2022-nitro-ert.xlsx","" +"nitrogen_statistics","primary","2023","['latest', 'not-tested']","https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/myb1-2023-nitro-ERT.xlsx","" +"eu_nuts2013","archive","2015-12-03","['latest', 'supported']","https://zenodo.org/records/15846347/files/ref-nuts-2013-03m.geojson.zip","" +"eu_nuts2013","primary","2015-12-03","['latest', 'supported']","https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ref-nuts-2013-03m.geojson.zip"," " +"eu_nuts2021","archive","2021-01-01","['latest', 'supported']","https://zenodo.org/records/15846440/files/ref-nuts-2021-01m.geojson.zip","" +"eu_nuts2021","primary","2021-01-01","['latest', 'supported']","https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ref-nuts-2021-01m.geojson.zip","" +"eurostat_balances","archive","2023-04","['latest', 'supported']","https://zenodo.org/records/15849144/files/balances.zip","" +"eurostat_balances","primary","2023-04","['latest', 'supported', 'broken link']","https://ec.europa.eu/eurostat/documents/38154/4956218/Balances-April2023.zip","The link is broken, use the archived versions instead." +"eurostat_household_balances","archive","2025-07-09","['latest', 'supported']","https://zenodo.org/records/15849673/files/nrg_d_hhq.csv","" +"eurostat_household_balances","primary","unknown","['latest', 'supported']","https://ec.europa.eu/eurostat/databrowser-backend/api/extraction/1.0/LIVE/false/sdmx/csv/nrg_d_hhq__custom_11480365?startPeriod=2013&endPeriod=2022","URL limits the period to 2013-2022, but the data is updated regularly." +"osm","archive","0.1","['deprecated', 'not-supported']","https://zenodo.org/records/12799202","" +"osm","archive","0.2","['deprecated', 'not-supported']","https://zenodo.org/records/13342577","" +"osm","archive","0.3","['deprecated', 'not-supported']","https://zenodo.org/records/13358976","" +"osm","archive","0.4","['deprecated', 'not-supported']","https://zenodo.org/records/13759222","" +"osm","archive","0.5","['deprecated', 'not-supported']","https://zenodo.org/records/13981528","" +"osm","archive","0.6","['latest', 'supported']","https://zenodo.org/records/14144752","" +"osm","build","unknown","['latest', 'supported']","","Latest dataset built using OSM data. No single URL available to access the data. See the related scripts and documentation for details." +"wdpa","archive","Jul2025","['latest', 'supported']","https://web.archive.org/web/20250715071823if_/https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_Jul2025_Public_shp.zip","We are legally not allowed to redistribute this dataset, luckily the web archive is keeping copies of it." +"wdpa","primary","unknown","['latest', 'supported']","https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_{bYYYY}_Public_shp.zip","WDPA changes its URL every month, the URL here is used as a template and {bYYYY} is replaced inside the retrieve.smk." +"wdpa_marine","archive","Jul2025","['latest', 'supported']","https://web.archive.org/web/20250715084308if_/https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_WDOECM_Jul2025_Public_marine_shp.zip","We are legally not allowed to redistribute this dataset, luckily the web archive is keeping copies of it." +"wdpa_marine","primary","unknown","['latest', 'supported']","https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_WDOECM_{bYYYY}_Public_marine_shp.zip","WDPA maritime changes its URL every month, the URL here is used as a template and {bYYYY} is replaced inside the retrieve.smk." +"worldbank_urban_population","archive","2025-08-14","['latest', 'supported']","https://zenodo.org/records/16875854/files/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2_22447.zip","" +"worldbank_urban_population","primary","unknown","['latest', 'might-work']","https://api.worldbank.org/v2/en/indicator/SP.URB.TOTL.IN.ZS?downloadformat=csv","This is the original World Bank API link, which is sometimes updated; it is not guaranteed to work with the current codebase and data changes without notice." +"luisa_land_cover","primary","unknown","['latest', 'supported']","https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/LUISA/EUROPE/Basemaps/LandUse/2018/LATEST/LUISA_basemap_020321_50m.tif","" +"luisa_land_cover","archive","2021-03-02","['latest', 'supported']","https://zenodo.org/records/15879466/files/LUISA_basemap_020321_50m.tif","" +"jrc_idees","primary","unknown","['latest', 'supported']","https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/JRC-IDEES/JRC-IDEES-2021_v1/JRC-IDEES-2021.zip","" +"jrc_idees","archive","2024-05-20","['latest', 'supported']","https://zenodo.org/records/15895830/files/JRC-IDEES-2021.zip","" +"scigrid_gas","primary","1.1.2","['latest', 'supported']","https://zenodo.org/records/4767098/files/IGGIELGN.zip","the primary is already from Zenodo published by original authors" +"scigrid_gas","archive","1.1.1","['deprecated', 'not-supported']","https://zenodo.org/records/4751038/files/IGGIELGN.zip","" +"scigrid_gas","archive","1.1.0","['deprecated', 'not-supported']","https://zenodo.org/records/4642569/files/IGGIELGN.zip","" +"seawater_temperature","primary","v1.0","['latest', 'supported']","https://zenodo.org/records/15828866/files/seawater_temperature.nc","Test cutout seawater temperature" +"seawater_temperature","archive","v1.0","['latest', 'supported']","https://data.pypsa.org/workflows/eur/seawater_temperature/v1.0/seawater_temperature.nc","Test cutout seawater temperature" +"synthetic_electricity_demand","primary","v2","['latest', 'supported']","https://zenodo.org/records/10820928/files/demand_hourly.csv","the primary is already from Zenodo published by original authors" +"synthetic_electricity_demand","archive","0.1.0","['deprecated', 'might-work']","https://zenodo.org/records/7070438/files/demand_hourly.csv","" +"copernicus_land_cover","primary","v3.0.1","['latest', 'supported']","https://zenodo.org/records/3939050/files/PROBAV_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif","The primary is already from Zenodo, documentation in https://zenodo.org/records/4723921" +"copernicus_land_cover","archive","v2.0.2","['deprecated', 'might-work']","https://zenodo.org/records/3939038/files/PROBAV_LC100_global_v3.0.1_2015-base_Discrete-Classification-map_EPSG-4326.tif","" +"ship_raster","primary","v5","['latest', 'supported']","https://datacatalogfiles.worldbank.org/ddh-published/0037580/5/DR0045406/shipdensity_global.zip","" +"ship_raster","archive","v5","['latest', 'supported']","https://zenodo.org/records/16894236/files/shipdensity_global.zip","" +"eez","primary","v12_20231025","['latest', 'supported']","https://www.marineregions.org/download_file.php","API request used" +"eez","archive","v12_20231025","['latest', 'supported']","https://zenodo.org/records/16355917/files/World_EEZ_v12_20231025_LR.zip","" +"nuts3_population","primary","13-03-2025","['latest', 'supported']","https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/nama_10r_3popgdp?format=TSV&compressed=true","" +"nuts3_population","archive","13-03-2025","['latest', 'supported']","https://zenodo.org/records/16551424/files/nama_10r_3popgdp.tsv.gz","earlier part of zenodo bundle" +"gdp_per_capita","archive","2018-02-06","['latest', 'supported']","https://zenodo.org/records/16556029/files/GDP_per_capita_PPP_1990_2015_v2.nc","Primary link is a direct download, earlier part of zenodo bundle" +"ghg_emissions","primary","v23","['latest', 'supported']","https://web.archive.org/web/20200622130401if_/https://www.eea.europa.eu/data-and-maps/data/national-emissions-reported-to-the-unfccc-and-to-the-eu-greenhouse-gas-monitoring-mechanism-16/national-greenhouse-gas-inventories-ipcc-common-reporting-format-sector-classification/ascii-delimited-zip-2/at_download/file","" +"ghg_emissions","archive","v23","['latest', 'supported']","https://zenodo.org/records/16561661/files/UNFCCC_v23.csv","earlier part of databundle" +"population_count","primary","2018-11-01","['latest', 'supported']","https://data.worldpop.org/GIS/Population/Global_2000_2020/2019/0_Mosaicked/ppp_2019_1km_Aggregated.tif","" +"population_count","archive","2018-11-01","['latest', 'supported']","https://zenodo.org/records/16558833/files/ppp_2019_1km_Aggregated.tif","earlier part of zenodo bundle" +"gebco","primary","2014","['latest', 'supported']","https://www.bodc.ac.uk/data/open_download/gebco/GEBCO_30SEC/zip/","The dataset will be cut for the required regions after download" +"gebco","archive","2014","['latest', 'supported']","https://zenodo.org/records/16810417/files/GEBCO_2014_2D.nc","Earlier part of databundle" +"attributed_ports","primary","2020-07-10","['latest', 'supported']","https://datacatalogfiles.worldbank.org/ddh-published/0038118/1/DR0046414/attributed_ports.geojson","" +"attributed_ports","archive","2020-07-10","['latest', 'supported']","https://zenodo.org/records/16810901/files/attributed_ports.json","Moved from github repo `data/` folder" +"corine","archive","v18_5","['latest', 'supported']","https://zenodo.org/records/16899113/files/corine.zip","" +"corine","primary","unknown","['latest', 'supported']","","Need to register with CLMS API and create an access token. The download URL is dynamic" +"emobility","archive","28-08-2016","['latest', 'supported']","https://zenodo.org/records/16899168/files/emobility.zip","" +"h2_salt_caverns","archive","16-10-2019","['latest', 'supported']","https://zenodo.org/records/16899309/files/h2_salt_caverns_GWh_per_sqkm.geojson","" +"lau_regions","primary","2019","['latest', 'supported']","https://gisco-services.ec.europa.eu/distribution/v2/lau/download/ref-lau-2019-01m.geojson.zip","" +"aquifer_data","primary","v1.2","['latest', 'supported']","https://download.bgr.de/bgr/grundwasser/IHME1500/v12/shp/IHME1500_v12.zip","" +"aquifer_data","archive","v1.2","['latest', 'supported']","https://zenodo.org/records/16946750/files/IHME1500_v12.zip","" +"lau_regions","archive","2019","['latest', 'supported']","https://zenodo.org/records/16947002/files/ref-lau-2019-01m.geojson.zip","" +"osm_boundaries","primary","unknown","['latest', 'supported']","","Overpass API is used to fetch the latest available data" +"osm_boundaries","archive","unknown","['latest', 'supported']","https://zenodo.org/records/16992755/files/osm_boundaries.zip","" +"tyndp","primary","2024","['unsupported']","https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-inputs","" +"tyndp","archive","2024","['latest', 'supported']","https://zenodo.org/records/16759672/files","" +"tyndp_bundle","primary","2024","['unsupported']","https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-inputs","" +"tyndp_bundle","archive","2024","['latest', 'supported']","https://zenodo.org/records/14230568/files/TYNDP_2024_data_bundle.zip","Open-TYNDP specific data bundle" +"powerplants","primary","0.7.1","['latest', 'supported']","https://raw.githubusercontent.com/PyPSA/powerplantmatching/refs/tags/v0.7.1/powerplants.csv","Part of the `powerplantmatching` package and versioned on GitHub, i.e. no dedicated 'archive' entry." +"powerplants","primary","0.7.0","['supported']","https://raw.githubusercontent.com/PyPSA/powerplantmatching/refs/tags/v0.7.0/powerplants.csv","Part of the `powerplantmatching` package and versioned on GitHub, i.e. no dedicated 'archive' entry." +"costs","primary","v0.13.3","['latest', 'supported']","https://raw.githubusercontent.com/PyPSA/technology-data/v0.13.3/outputs","Part of the `technologydata` repository and versioned on GitHub, i.e. no dedicated 'archive' entry." +"costs","primary","v0.13.2","['partially-supported']","https://raw.githubusercontent.com/PyPSA/technology-data/v0.13.2/outputs","Part of the `technologydata` repository and versioned on GitHub, i.e. no dedicated 'archive' entry." +"country_runoff","archive","2025-08-13","['latest', 'supported']","https://zenodo.org/records/16849356/files/era5-runoff-per-country.csv","" +"country_runoff","build","unknown","['latest', 'supported']","","Latest dataset built using ERA5 runoff data. This takes a very long time to build." +"country_hdd","archive","2025-08-13","['latest', 'supported']","https://zenodo.org/records/16849356/files/era5-HDD-per-country.csv","" +"country_hdd","build","unknown","['latest', 'supported']","","Latest dataset built using ERA5 runoff data. This takes a very long time to build." +"natura","archive","2025-08-15","['latest', 'supported']","https://zenodo.org/records/16881818/files/natura.tiff","" +"natura","archive","v0.8.2","['supported']","https://zenodo.org/records/16874772/files/natura.tiff","" +"natura","build","unknown","['latest', 'supported']","https://sdi.eea.europa.eu/datashare/s/tWpGXaWdWGYcqsL/download","" +"bfs_road_vehicle_stock","archive","2024-03-13","['latest', 'supported']","https://raw.githubusercontent.com/PyPSA/pypsa-eur/5b5d308bf70f15dd0b107d8a19c121093dcdd5bd/data/gr-e-11.03.02.01.01-cc.csv","" +"bfs_road_vehicle_stock","primary","unknown","['latest', 'supported']","https://datawrapper.dwcdn.net/31f3521eddfa82ada1a436983c31caf5/1/dataset.csv","This dataset is not versioned and is updated regularly. The link points to the latest version. More information on the latest update on this website: https://www.bfs.admin.ch/bfs/de/home/statistiken/kataloge-datenbanken.assetdetail.33827666.html" +"bfs_gdp_and_population","archive","2019-03-28","['latest', 'supported']","https://web.archive.org/web/20250818151254if_/https://dam-api.bfs.admin.ch/hub/api/dam/assets/7786557/master","" +"bfs_gdp_and_population","primary","2019-03-28","['latest', 'supported']","https://dam-api.bfs.admin.ch/hub/api/dam/assets/7786557/master","" +"mobility_profiles","build","unknown","['latest', 'supported']","https://www.bast.de/videos/{year}_{street_type}_S.zip","Latest dataset built using BASt vehicle monitoring data. The URL is a template that is filled based on the config file, see the documentation for details." +"mobility_profiles","archive","2025-08-27","['latest', 'supported']","https://zenodo.org/records/16965042/files","New version recreating the dataset from the data bundle." +"mobility_profiles","archive","2025-08-13","['supported']","https://zenodo.org/records/16964996/files","Data from the original PyPSA-Eur data bundle." +"cutout","archive","v0.8","['latest', 'supported']","https://zenodo.org/records/15349674","Pre-build cutouts for PyPSA-Eur" +"cutout","build","unknown","['latest', 'supported']","","Build latest cutouts using ERA5/SARAH3 data." +"dh_areas","primary","341.5","['latest', 'supported']","https://fordatis.fraunhofer.de/bitstream/fordatis/341.5/2/dh_areas.gpkg","" +"dh_areas","archive","341.5","['latest', 'supported']","https://zenodo.org/records/17207640/files/dh_areas.gpkg","" +"geothermal_heat_utilisation_potentials","primary","341.5","['latest', 'supported']","https://fordatis.fraunhofer.de/bitstream/fordatis/341.5/11/Results_DH_Matching_Cluster.xlsx","" +"geothermal_heat_utilisation_potentials","archive","341.5","['latest', 'supported']","https://zenodo.org/records/17207640/files/Results_DH_Matching_Cluster.xlsx","" +"jrc_ardeco","primary","2021","['latest', 'supported']","https://territorial.ec.europa.eu/ardeco-api-v2/rest/export/","" +"jrc_ardeco","archive","2021","['latest', 'supported']","https://zenodo.org/records/17249457/files","" +"cutout_additional","archive","v0.1-beta","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/","Pre-built cutout of 2009 for PyPSA-Eur" +"tyndp_pecd","archive","3.1","['supported']","https://storage.googleapis.com/open-tyndp-data-store/PECD/","" +"tyndp_pecd","archive","3.1+pre-built.0.1","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/PECD/","Pre-built PECD data for Open-TYNDP" +"tyndp_pecd","primary","3.1","['unsupported']","https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-inputs/PECD.zip","" +"tyndp_hydro_inflows","archive","unknown","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/Hydro_Inflows.zip","" +"tyndp_hydro_inflows","primary","unknown","['unsupported']","https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-inputs/Hydro-Inflows.zip","" +"tyndp_pemmdb","archive","2.5","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/PEMMDB.zip","" +"tyndp_pemmdb","primary","2.5","['unsupported']","https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-inputs/PEMMDB2.zip","" +"tyndp_supply_tool","archive","20240518","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/20240518-Supply-Tool.xlsm.zip","" +"tyndp_supply_tool","primary","20240518","['supported']","https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-outputs/20240518-Supply-Tool.xlsm.zip","" +"tyndp_benchmark","archive","20240522","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx","" +"tyndp_benchmark","primary","20240522","['unsupported']","https://2024-data.entsos-tyndp-scenarios.eu/files/reports/TYNDP-2024-Scenarios-Package-20250128.zip","" +"tyndp_vis_plfm","archive","20250117","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/250117-TYNDP-2024-Visualisation-Platform.zip","" +"tyndp_vis_plfm","primary","unknown","['unsupported']","https://2024.entsos-tyndp-scenarios.eu/visualisation-platform/","" +"tyndp_cba_projects","archive","unknown","['latest', 'supported']","https://storage.googleapis.com/open-tyndp-data-store/CBA_projects.zip","" +"tyndp_cba_projects","primary","unknown","['unsupported']","https://tyndp2024.entsoe.eu/projects-map","" diff --git a/doc/benchmarking.rst b/doc/benchmarking.rst index a3c726a035..f61d18e6b5 100644 --- a/doc/benchmarking.rst +++ b/doc/benchmarking.rst @@ -57,7 +57,7 @@ Workflow -------- #. New configuration files `config/benchmarking.default.yaml`. -#. `retrieve_additional_tyndp_data`: Retrieve the TYNDP 2024 Scenarios Report Data Figures package for benchmarking purposes. This rule will be deprecated once the data bundle has been updated (https://github.com/open-energy-transition/open-tyndp/issues/87). +#. `retrieve_tyndp_benchmark`: Retrieve the TYNDP 2024 Scenarios Report Data Figures package for benchmarking purposes. This rule will be deprecated once the data bundle has been updated (https://github.com/open-energy-transition/open-tyndp/issues/87). #. (new) `clean_tyndp_benchmark`: Read and process the raw TYNDP 2024 Scenarios Report data. The output data structure is a long-format table. #. (new) `clean_tyndp_vp_data`: Read and process the TYNDP 2024 Visualisation Platform data for benchmarking purposes. The output data structure is a long-format table. #. (new) `build_statistics`: Compute the benchmark statistics from the optimised network. Run for every planning horizon. The output data structure is a long-format table. diff --git a/doc/conf.py b/doc/conf.py index c2b389ee04..7ff95b867b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -101,8 +101,8 @@ def setup(app): # General information about the project. project = "Open-TYNDP" -copyright = "2017-2025 Tom Brown (TUB, KIT, FIAS), Jonas Hoersch (OET, KIT, FIAS), Fabian Hofmann (OET, TUB, FIAS), Fabian Neumann (TUB, KIT), Marta Victoria (DTU, Aarhus University), Lisa Zeyen (OET, TUB, KIT), Thomas Gilon (OET), Daniel Rüdt (OET), Martha Frysztacki (OET), Max Parzen (OET), Carlos Gaete (OET), Will Usher (OET)" -author = "Tom Brown (TUB, KIT, FIAS), Jonas Hoersch (OET, KIT, FIAS), Fabian Hofmann (OET, TUB, FIAS), Fabian Neumann (TUB, KIT), Marta Victoria (DTU, Aarhus University), Lisa Zeyen (OET, TUB, KIT), Thomas Gilon (OET), Daniel Rüdt (OET), Martha Frysztacki (OET), Max Parzen (OET), Carlos Gaete (OET), Will Usher (OET)" +copyright = "PyPSA-Eur and Open-TYNDP Contributors" +author = "PyPSA-Eur and Open-TYNDP Contributors" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -186,7 +186,7 @@ def setup(app): # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "img/pypsa-logo.png" +html_logo = "img/logo.svg" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/doc/configtables/atlite.csv b/doc/configtables/atlite.csv index b9ab8f30bd..30b2dc1938 100644 --- a/doc/configtables/atlite.csv +++ b/doc/configtables/atlite.csv @@ -1,5 +1,4 @@ ,Unit,Values,Description -cutout_directory,--,str,"Directory to store cutouts." default_cutout,--,str|list,"Defines a default cutout. Can refer to a single cutout or a list of cutouts." nprocesses,--,int,"Number of parallel processes in cutout preparation" show_progress,bool,true/false,"Whether progressbar for atlite conversion processes should be shown. False saves time." @@ -11,5 +10,8 @@ cutouts,,, -- -- dx,°,"Larger than 0.25","Grid resolution for longitude" -- -- dy,°,"Larger than 0.25","Grid resolution for latitude" -- -- time,,"Time interval within ['1979', '2018'] (with valid pandas date time strings)","Time span to download weather data for. If not defined, it defaults to the time interval spanned by the snapshots." --- -- features,,"String or list of strings with valid cutout features ('influx', 'wind').","When freshly building a cutout, retrieve data only for those features. If not defined, it defaults to all available features." --- -- sarah_dir,,str,"Path to the location where SARAH-2 or SARAH-3 data is stored; SARAH data requires a manual separate download, see the https://atlite.readthedocs.io for details. Required for building cutouts with SARAH, not required for ERA5 cutouts." +-- -- prepare_kwargs,,,"Dictionary of keyword arguments passed to ``atlite.Cutout.prepare()`` when building the cutout." +-- -- -- features,,"String or list of strings with valid cutout features ('influx', 'wind').","When freshly building a cutout, retrieve data only for those features. If not defined, it defaults to all available features." +-- -- -- sarah_dir,,str,"Path to the location where SARAH-2 or SARAH-3 data is stored; SARAH data requires a manual separate download, see the https://atlite.readthedocs.io for details. Required for building cutouts with SARAH, not required for ERA5 cutouts." +-- -- -- monthly_requests,,bool,"Whether to use monthly requests for ERA5 data when building the cutout. Helpful to avoid running into request limits with large cutouts. Defaults to False." +-- -- -- tmpdir,,str,"Path to a temporary directory where intermediate files are stored when building the cutout. Helpful when building large cutouts. Defaults to None." diff --git a/doc/configtables/costs.csv b/doc/configtables/costs.csv index e36c57b5f9..00a0597519 100644 --- a/doc/configtables/costs.csv +++ b/doc/configtables/costs.csv @@ -1,6 +1,5 @@ ,Unit,Values,Description -year,--,YYYY; e.g. '2030',Year for which to retrieve cost assumptions of ``resources/costs.csv``. -version,--,vX.X.X or //vX.X.X; e.g. 'v0.5.0',Version of ``technology-data`` repository to use. If this string is of the form // then costs are instead retrieved from ``github.com//`` at the tag. +year,--,YYYY; e.g. '2030',Year for which to retrieve cost assumptions of ``data/costs/primary//costs_.csv``. social_discountrate,p.u.,float,Social discount rate to compare costs in different investment periods. 0.02 corresponds to a social discount rate of 2%. fill_values,--,float,Default values if not specified for a technology in ``resources/costs.csv``. custom_cost_fn,--,str or None,Path to the custom costs file. None if it should not be used. Default ``data/custom_costs.csv`` contains minor adjustments for stabilising the optimisation results. diff --git a/doc/configtables/data.csv b/doc/configtables/data.csv new file mode 100644 index 0000000000..00394d7638 --- /dev/null +++ b/doc/configtables/data.csv @@ -0,0 +1,163 @@ + ,Unit,Values,Description +hotmaps_industrial_sites,,, +-- source,str,"{archive, primary}","Source of the Hotmaps industrial sites data." +-- version,str,,"Version of the Hotmaps industrial sites data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +enspreso_biomass,,, +-- source,str,"{archive, primary}","Source of the Enspreso biomass data." +-- version,str,,"Version of the Enspreso biomass data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +osm,,, +-- source,str,"{archive, build}","Source of the OSM data. 'archive' retrieves pre-built OSM data, 'build' uses the latest OSM data to build the network." +-- version,str,,"Version of the OSM data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +worldbank_urban_population,,, +-- source,str,"{archive, primary}","Source of the World Bank urban population data." +-- version,str,,"Version of the World Bank urban population data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +gem_europe_gas_tracker,,, +-- source,str,"{archive, primary}","Source of the GEM Europe Gas Tracker data." +-- version,str,,"Version of the GEM Europe Gas Tracker data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +co2stop,,, +-- source,str,"{archive, primary}","Source of the CO2Stop data." +-- version,str,,"Version of the CO2Stop data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +nitrogen_statistics,,, +-- source,str,"{archive, primary}","Source of the Nitrogen Statistics data." +-- version,str,,"Version of the Nitrogen Statistics data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +eu_nuts2013,,, +-- source,str,"{archive, primary}","Source of the EU NUTS 2013 data." +-- version,str,,"Version of the EU NUTS 2013 data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +eu_nuts2021,,, +-- source,str,"{archive, primary}","Source of the EU NUTS 2021 data." +-- version,str,,"Version of the EU NUTS 2021 data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +eurostat_balances,,, +-- source,str,"{archive, primary}","Source of the Eurostat balances data." +-- version,str,,"Version of the Eurostat balances data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +eurostat_household_balances,,, +-- source,str,"{archive, primary}","Source of the Eurostat household balances data." +-- version,str,,"Version of the Eurostat household balances data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +wdpa,,, +-- source,str,"{archive, primary}","Source of the WDPA data." +-- version,str,,"Version of the WDPA data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +wdpa_marine,,, +-- source,str,"{archive, primary}","Source of the WDPA Marine data." +-- version,str,,"Version of the WDPA Marine data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +luisa_land_cover,,, +-- source,str,"{archive, primary}","Source of the LUISA land cover data." +-- version,str,,"Version of the LUISA land cover data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +jrc_idees,,, +-- source,str,"{archive, primary}","Source of the JRC IDEES data." +-- version,str,,"Version of the JRC IDEES data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +scigrid_gas,,, +-- source,str,"{primary, archive}","Source of the SciGRID Gas data." +-- version,str,,"Version of the SciGRID Gas data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +synthetic_electricity_demand,,, +-- source,str,"{primary, archive}","Source of the Synthetic Electricity Demand data." +-- version,str,,"Version of the Synthetic Electricity Demand data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +copernicus_land_cover,,, +-- source,str,"{primary, archive}","Source of the Copernicus Land Cover data." +-- version,str,,"Version of the Copernicus Land Cover data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +ship_raster,,, +-- source,str,"{archive, primary}","Source of the Ship Raster data." +-- version,str,,"Version of the Ship Raster data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +eez,,, +-- source,str,"{archive, primary}","Source of the EEZ data." +-- version,str,,"Version of the EEZ data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +nuts3_population,,, +-- source,str,"{archive, primary}","Source of the NUTS3 population data." +-- version,str,,"Version of the NUTS3 population data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +gdp_per_capita,,, +-- source,str,"{archive, primary}","Source of the GDP per capita data." +-- version,str,,"Version of the GDP per capita data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +population_count,,, +-- source,str,"{archive, primary}","Source of the population count data." +-- version,str,,"Version of the population count data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +ghg_emissions,,, +-- source,str,"{archive, primary}","Source of the GHG emissions data." +-- version,str,,"Version of the GHG emissions data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +gebco,,, +-- source,str,"{archive, primary}","Source of the GEBCO data." +-- version,str,,"Version of the GEBCO data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +attributed_ports,,, +-- source,str,"{archive, primary}","Source of the Attributed Ports data." +-- version,str,,"Version of the Attributed Ports data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +corine,,, +-- source,str,"{archive, primary}","Source of the CORINE data." +-- version,str,,"Version of the CORINE data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +emobility,,, +-- source,str,"{archive, primary}","Source of the Emobility data." +-- version,str,,"Version of the Emobility data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +h2_salt_caverns,,, +-- source,str,"{archive, primary}","Source of the H2 Salt Caverns data." +-- version,str,,"Version of the H2 Salt Caverns data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +lau_regions,,, +-- source,str,"{archive, primary}","Source of the LAU Regions data." +-- version,str,,"Version of the LAU Regions data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +aquifer_data,,, +-- source,str,"{archive, primary}","Source of the Aquifer data." +-- version,str,,"Version of the Aquifer data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +osm_boundaries,,, +-- source,str,"{archive, build}","Source of the OSM Boundaries data." +-- version,str,,"Version of the OSM Boundaries data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +gem_gspt,,, +-- source,str,"{archive, primary}","Source of the Global Steel Plant Tracker data." +-- version,str,,"Version of the Global Steel Plant Tracker data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp,,, +-- source,str,"{archive, primary}","Source of the TYNDP data." +-- version,str,,"Version of the TYNDP data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +powerplants,,, +-- source,str,"{primary, archive}","Source of the Powerplants data." +-- version,str,,"Version of the Powerplants data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +costs,,, +-- source,str,"{primary, archive}","Source of the Costs data." +-- version,str,,"Version of the Costs data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +country_runoff,,, +-- source,str,"{archive, build}","Source of the Country Runoff data." +-- version,str,,"Version of the Country Runoff data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +country_hdd,,, +-- source,str,"{archive, build}","Source of the Country HDD data." +-- version,str,,"Version of the Country HDD data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +natura,,, +-- source,str,"{archive, build}","Source of the Natura data." +-- version,str,,"Version of the Natura data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +bfs_road_vehicle_stock,,, +-- source,str,"{archive, primary}","Source of the BFS Road Vehicle Stock data." +-- version,str,,"Version of the BFS Road Vehicle Stock data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +bfs_gdp_and_population,,, +-- source,str,"{archive, primary}","Source of the BFS GDP and Population data." +-- version,str,,"Version of the BFS GDP and Population data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +mobility_profiles,,, +-- source,str,"{archive, build}","Source of the Mobility Profiles data." +-- version,str,,"Version of the Mobility Profiles data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +cutout,,, +-- source,str,"{archive, build}","Source of the Cutout data." +-- version,str,,"Version of the Cutout data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +dh_areas,,, +-- source,str,"{archive, primary}","Source of the District Heating Areas data." +-- version,str,,"Version of the District Heating Areas data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +geothermal_heat_utilisation_potentials,,, +-- source,str,"{archive, primary}","Source of the Geothermal Heat Utilisation Potentials data." +-- version,str,,"Version of the Geothermal Heat Utilisation Potentials data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +jrc_ardeco,,, +-- source,str,"{archive, primary}","Source of annual regional database for EU regions" +-- version,str,,"Version of the JRC ARDECO data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +cutout_additional,,, +-- source,str,"{archive}","Source of the additional cutout data." +-- version,str,,"Version of the additional cutout data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_pecd,,, +-- source,str,"{archive, primary}","Source of the TYNDP PECD (Pan-European Climate Database) data." +-- version,str,,"Version of the TYNDP PECD data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_hydro_inflows,,, +-- source,str,"{archive, primary}","Source of the TYNDP Hydro Inflows data." +-- version,str,,"Version of the TYNDP Hydro Inflows data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_pemmdb,,, +-- source,str,"{archive, primary}","Source of the Pan-European Market Modelling Database (PEMMDB) data." +-- version,str,,"Version of the TYNDP PEMMDB data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_supply_tool,,, +-- source,str,"{archive, primary}","Source of the TYNDP Supply Tool data." +-- version,str,,"Version of the TYNDP Supply Tool data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_benchmark,,, +-- source,str,"{archive, primary}","Source of the TYNDP Benchmark data." +-- version,str,,"Version of the TYNDP Benchmark data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_vis_plfm,,, +-- source,str,"{archive, primary}","Source of the TYNDP Visualisation Platform data." +-- version,str,,"Version of the TYNDP Visualisation Platform data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." +tyndp_cba_projects,,, +-- source,str,"{archive, primary}","Source of the TYNDP Cost-Benefit Analysis (CBA) projects data." +-- version,str,,"Version of the TYNDP CBA projects data to use. Uses the specific 'version' for the selected 'source' or the dataset tagged 'latest' for this source." \ No newline at end of file diff --git a/doc/configtables/electricity.csv b/doc/configtables/electricity.csv index d267a82c56..72d8599818 100644 --- a/doc/configtables/electricity.csv +++ b/doc/configtables/electricity.csv @@ -1,7 +1,6 @@ ,Unit,Values,Description voltages,kV,"Any subset of {220., 300., 330., 380., 400., 500., 750.}. Distribution grid (experimental, set base_network to `osm-raw`): Any subset of {63., 66., 90., 110., 132., 150., 220., 300., 330., 380., 400., 500., 750.}.",Voltage levels to consider base_network,--,"Any value in {'entsoegridkit', 'osm-prebuilt', 'osm-raw'}","Specify the underlying base network, i.e. GridKit (based on ENTSO-E web map extract, OpenStreetMap (OSM) prebuilt or raw (built from raw OSM data), takes longer." -osm-prebuilt-version,--,"float, any value in range 0.1-0.6","Choose the version of the prebuilt OSM network. Defaults to latest Zenodo release." gaslimit_enable,bool,true or false,Add an overall absolute gas limit configured in ``electricity: gaslimit``. gaslimit,MWhth,float or false,Global gas usage limit co2limit_enable,bool,true or false,"Add an overall absolute carbon-dioxide emissions limit configured in ``electricity: co2limit`` in :mod:`prepare_network`. **Warning:** This option should currently only be used with electricity-only networks, not for sector-coupled networks." @@ -36,10 +35,7 @@ tyndp_renewable_carriers,--,"Any subset of {solar-pv, solar-pv-utility, solar-pv tyndp_stores,--,"Any subset of {battery, h2_cavern, h2_tank}",List of TYNDP storage units (battery and/or hydrogen). pecd_renewable_profiles,,, -- enable,bool,"{true, false}",Activate PECD renewable profiles from TYNDP 2024 instead of default renewable profiles for specified renewable technologies below. --- version,,str,"Version of the raw PECD data, e.g. ``3.1``." --- pre_built,,, --- -- retrieve,bool,"{true, false}","Whether to retrieve already prepared PECD pre-built dataset of the PECD pre-built version as specified below. If ``false``, the pre-built will be created from scratch using PECD raw data." --- -- pecd_prebuilt_version,,str,"Version of the PECD pre-built." +-- pre_built,,,"A new pre-built version is prepared when the configured PECD version (``tyndp_pecd``) is not already set to a pre-built version." -- -- cyears,--,list,"List of climate years to filter for when creating the PECD pre-built. Can be any year between 1982 and 2019." -- fill_gaps_method,,str,"The chosen method for filling gaps in the PECD data to the modelled nodes. Can be either `zero` to fill with zero values or any other aggregation method such as `mean`, `median`, `max` or similar." -- available_years,--,list,"List of years for which PECD data is available." diff --git a/doc/configtables/enable.csv b/doc/configtables/enable.csv index e11f48a1f0..2f53608069 100644 --- a/doc/configtables/enable.csv +++ b/doc/configtables/enable.csv @@ -1,7 +1,2 @@ ,Unit,Values,Description -retrieve,str or bool,"{auto, true, false}","Switch to include (true) or exclude (false) the retrieve_* rules of snakemake into the workflow; 'auto' sets true|false based on availability of an internet connection to prevent issues with snakemake failing due to lack of internet connection." -retrieve_databundle,bool,"{true, false}","Switch to retrieve databundle from zenodo via the rule :mod:`retrieve_databundle` or whether to keep a custom databundle located in the corresponding folder." -retrieve_cost_data,bool,"{true, false}","Switch to retrieve technology cost data from `technology-data repository `_." -build_cutout,bool,"{true, false}","Switch to enable the building of cutouts via the rule :mod:`build_cutout`." -retrieve_cutout,bool,"{true, false}","Switch to enable the retrieval of cutouts from zenodo with :mod:`retrieve_cutout`." drop_leap_day,bool,"{true, false}","Switch to drop February 29 from all time-dependent data in leap years" diff --git a/doc/configtables/plotting.csv b/doc/configtables/plotting.csv index 5a2d46421e..7c4b1ce298 100644 --- a/doc/configtables/plotting.csv +++ b/doc/configtables/plotting.csv @@ -8,7 +8,6 @@ map,,, -- -- land,--,str,Color of the land in the geomap. interactive_bus_balance,,, -- bus_name_pattern,--,str,Regex pattern to match bus names for which interactive balance time series are plotted. E.g. 'DE*' for all buses starting with 'DE'. - projection,,, -- name,--,Valid Cartopy projection name,See https://scitools.org.uk/cartopy/docs/latest/reference/projections.html for list of available projections. -- args,--,--,"Other entries under 'projection' are passed as keyword arguments to the projection constructor, e.g. ``central_longitude: 10.``." @@ -20,7 +19,7 @@ costs_threshold,bn Euro,float,Threshold below which technologies will not be sho energy_max,TWh,float,Upper y-axis limit in energy bar plots. energy_min,TWh,float,Lower y-axis limit in energy bar plots. energy_threshold,TWh,float,Threshold below which technologies will not be shown in energy bar plots. -balance_timeseries: +balance_timeseries,,, -- max_threshold,GW or kt/h for CO2,float,Technologies with maximum absolute dispatch below this threshold are grouped to 'other'. -- mean_threshold,GW or kt/h for CO2,float,Technologies with mean absolute dispatch below this threshold are grouped to 'other'. -- monthly,"{True,False}",bool,Whether to plot monthly balance timeseries. @@ -34,15 +33,15 @@ heatmap_timeseries,,,Plotting configuration for :mod:`plot_heatmap_timeseries`. -- utilisation_rate,--,list,Subset of carriers to plot utilisation rates heatmap time series for. -- soc,--,list,Subset of carriers to plot state of charge heatmap time series for. balance_map,,, --- bus_carriers,--,[str],List of carriers to plot. --- imports_as_flows,"{True,False}",bool,Whether to plot imports as flows (default plots imports in energy balance). +-- bus_carriers,--,[str],List of carriers to plot. Note that an underscore `_` needs to be used instead of spaces in carrier names (e.g. instead of 'co2 stored' use 'co2_stored'). This is to ensure compatibility with queue managers like slurm. -- {bus_carrier},,, --- -- unit,--,str,Unit of the energy carrier like TWh for electricity with conversion factor of a million. --- -- unit_conversion,--,float,Conversion factor for the energy carrier unit. -- -- cmap,--,str,Colormap for the price of the regions. -- -- vmin,--,float,Minimum value for the colormap. -- -- vmax,--,float,Maximum value for the colormap. -- -- region_unit,--,str,Unit for the price like €/MWh for electricity. +-- -- branch_color,--,str,Color of the branches (links) in the map. +-- -- unit,--,str,Unit of the energy carrier like TWh for electricity (with conversion factor of a million). +-- -- unit_conversion,--,float,Conversion factor for the energy carrier unit (divide the raw data by this factor). -- -- bus_factor,--,float,Factor for the bus sizes by which they are multiplied. -- -- branch_factor,--,float,Factor for the branch sizes by which they are multiplied. -- -- flow_factor,--,float,Factor for the flow sizes by which they are multiplied. @@ -50,3 +49,22 @@ balance_map,,, -- -- branch_sizes,--,[float],Sizes for the branches in the legend. tech_colors,--,carrier -> HEX colour code,Mapping from network ``carrier`` to a colour (`HEX colour code `_). nice_names,--,str -> str,Mapping from network ``carrier`` to a more readable name. +balance_map_interactive,,, +-- bus_carriers,--,[str],List of carriers to plot. Note that an underscore `_` needs to be used instead of spaces in carrier names (e.g. instead of 'co2 stored' use 'co2_stored'). This is to ensure compatibility with queue managers like slurm. +-- {bus_carrier},,, +-- -- cmap,--,str,Colormap for the price of the regions. +-- -- region_unit,--,str,Unit for the regional price like €/MWh for electricity or €/t for CO2. +-- -- vmin,--,float,Minimum value for the colormap. +-- -- vmax,--,float,Maximum value for the colormap. +-- -- region_alpha,--,float,Alpha transparency between 0 and 1 for the regions. +-- -- unit_conversion,--,float,Conversion factor for the energy carrier unit (divide the raw data by this factor). +-- -- branch_color,--,str,Color of the branches (links) in the map. +-- -- branch_width_max,--,float,"Maximum width of the branches (links) in the map. Used as reference for automatic proportional scaling of branch widths. Note that proportionality is only guaranteed within a single plot, not across scenarios or carriers." +-- -- bus_size_max,--,float,"Maximum size of the buses in the map. Used as reference for automatic proportional scaling of bus sizes. Note that proportionality is only guaranteed within a single plot, not across scenarios or carriers." +-- -- arrow_size_factor,--,float,Factor to scale the size of the flow arrows on the branches (links). A factor of 1 means that the arrow size is the same width as the flow on the branch (invisible arrow). +-- -- map_style,--,str,"Style of the underlying map. Any subset of {'road', 'light', 'dark', 'light_no_labels', 'dark_no_labels', 'none'}." +-- -- region_unit,--,str,Unit for the price like €/MWh for electricity. +-- -- unit,--,str,Unit of the energy carrier like TWh for electricity (with conversion factor of a million). +-- -- tooltip,--,bool,Whether to show tooltips when hovering over regions and branches. +tech_colors,--,carrier -> HEX colour code,Mapping from network ``carrier`` to a colour (`HEX colour code `_). +nice_names,--,str -> str,Mapping from network ``carrier`` to a more readable name. diff --git a/doc/configtables/run.csv b/doc/configtables/run.csv index 371cd3fe1b..1430bd3758 100644 --- a/doc/configtables/run.csv +++ b/doc/configtables/run.csv @@ -8,5 +8,4 @@ disable_progressbar,bool,"{true, false}","Switch to select whether progressbar s shared_resources,,, -- policy,bool/str,,"Boolean switch to select whether resources should be shared across runs. If a string is passed, this is used as a subdirectory name for shared resources. If set to 'base', only resources before creating the elec.nc file are shared." -- exclude,str,"For the case shared_resources=base, specify additional files that should not be shared across runs." -shared_cutouts,bool,"{true, false}","Switch to select whether cutouts should be shared across runs." use_shadow_directory,bool,"{true, false}","Set to ``true`` (default) if snakemake shadow directories (``shallow``) should be used. Set to ``false`` if problems occcur." diff --git a/doc/configtables/toplevel.csv b/doc/configtables/toplevel.csv index 8b52f466e1..22a4fce10d 100644 --- a/doc/configtables/toplevel.csv +++ b/doc/configtables/toplevel.csv @@ -2,8 +2,17 @@ version,--,0.x.x,"Version of PyPSA-Eur. Descriptive only." tutorial,bool,"{true, false}","Switch to retrieve the tutorial data set instead of the full data set." logging,,, --- level,--,"Any of {'INFO', 'WARNING', 'ERROR'}","Restrict console outputs to all infos, warning or errors only" +-- level,--,"Any of {'INFO', 'WARNING', 'ERROR'}","Restrict console outputs to infos, warnings, or errors only." -- format,--,"","Custom format for log messages. See `LogRecord `_ attributes." remote,,, --- ssh,--,,Optionally specify the SSH of a remote cluster to be synchronized. --- path,--,,Optionally specify the file path within the remote cluster to be synchronized. +-- ssh,--,,"Optionally specify the SSH of a remote cluster to be synchronized." +-- path,--,,"Optionally specify the file path within the remote cluster to be synchronized." +secrets,,, +-- corine,--,,"API token for corine dataset retrieval. You can also pass the token by setting the environment variable `CORINE_API_TOKEN`. See `scripts/retrieve_corine_dataset_primary.py` for more instructions." +overpass_api,,, +-- url,--,string,"Overpass API endpoint URL. See `https://wiki.openstreetmap.org/wiki/Overpass_API#Public_Overpass_API_instances`_ for available public instances." +-- max_tries,--,integer,"Maximum retry attempts for Overpass API requests. Please be respectful to the Overpass API fair use policy of the individual instances." +-- user_agent,,,"Please provide your own user agent details when using the Overpass API,so the instance operators can contact you if needed." +-- -- project_name,--,string,"Project name used to identify the user agent of the Overpass API requests." +-- -- email,--,string,"Contact email addres for the project using the Overpass API." +-- -- website,--,string,"Website URL for the project using the Overpass API." diff --git a/doc/configuration.rst b/doc/configuration.rst index 37fb125a0e..0208b078f5 100644 --- a/doc/configuration.rst +++ b/doc/configuration.rst @@ -75,7 +75,9 @@ It is common conduct to analyse energy system optimisation models for **multiple e.g. assessing their sensitivity towards changing the temporal and/or geographical resolution or investigating how investment changes as more ambitious greenhouse-gas emission reduction targets are applied. -The ``run`` section is used for running and storing scenarios with different configurations which are not covered by :ref:`wildcards`. It determines the path at which resources, networks and results are stored. Therefore the user can run different configurations within the same directory. If a run with a non-empty name should use cutouts shared across runs, set ``shared_cutouts`` to `true`. +The ``run`` section is used for running and storing scenarios with different configurations which are not covered by :ref:`wildcards`. +It determines the path at which resources, networks and results are stored. +Therefore the user can run different configurations within the same directory. .. literalinclude:: ../config/config.default.yaml :language: yaml @@ -621,6 +623,31 @@ The list of available biomass is given by the category in `ENSPRESO_BIOMASS `__ and then -saved to a file ``resources/costs_{year}.csv``. The ``config/config.yaml`` provides options -to choose a reference year and use a specific version of the repository. +saved to a file ``data/costs/*/costs_{year}.csv``. The ``config/config.yaml`` provides options +to choose a reference year. To select a specific version of the cost assumptions, see :ref:`managing_data_versions`. .. literalinclude:: ../config/config.default.yaml :language: yaml :start-at: costs: - :end-at: version: + :end-at: year: The file includes cost assumptions for all included technologies for specific years compiled from various sources, namely for @@ -48,9 +48,4 @@ Modifying Assumptions Some cost assumptions (e.g. marginal cost and capital cost) can be directly set in the ``config/config.yaml`` (cf. Section :ref:`costs_cf` in -:ref:`config`). To change cost assumptions in more detail, make a copy of -``resources/costs_{year}.csv`` and reference the new cost file in the ``Snakefile``: - -.. literalinclude:: ../Snakefile - :start-at: COSTS - :end-at: COSTS +:ref:`config`). \ No newline at end of file diff --git a/doc/data-base-network.rst b/doc/data-base-network.rst index be75758139..2ba6c70907 100644 --- a/doc/data-base-network.rst +++ b/doc/data-base-network.rst @@ -12,10 +12,10 @@ Base network The map might take a moment to load. To view it in full screen, click `here `__. -``data/osm-prebuilt`` +``data/osm/0.6/`` - **Source:** OpenStreetMap; Xiong, B., Fioriti, D., Neumann, F., Riepin I. & Brown, T. (2024). - Prebuilt Electricity Network for PyPSA-Eur based on OpenStreetMap Data (0.5) + Prebuilt Electricity Network for PyPSA-Eur based on OpenStreetMap Data (0.6) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.14144752 - **Link:** https://zenodo.org/records/14144752 - **License:** ODbL (`reference `) diff --git a/doc/data-bundle.rst b/doc/data-bundle.rst deleted file mode 100644 index ad6959e48e..0000000000 --- a/doc/data-bundle.rst +++ /dev/null @@ -1,126 +0,0 @@ -.. SPDX-FileCopyrightText: Contributors to PyPSA-Eur -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -################### -Zenodo data bundle -################### - -Data in this section is downloaded and extracted from the Zenodo data bundle -(https://zenodo.org/records/12760663). Files included in the data bundle are too -large to be placed directly in the repository, have been reduced in spatial -scope to reduce file size, or are not provided through stable URLs elsewhere. - -``data/bundle/seawater_temperature.nc`` - -- **Source:** Copernicus Marine Environment Monitoring Service; https://doi.org/10.48670/moi-00021 -- **Link:** https://data.marine.copernicus.eu/product/GLOBAL_MULTIYEAR_PHY_001_030/description -- **License:** `custom `__ -- **Description:** Seawater temperatures resolved in time and space for Europe. Copyright notice: All studies using this data have been conducted using E.U. Copernicus Marine Service Information (DOI: https://doi.org/10.48670/moi-00021) and related derivate work has been generated using E.U. Copernicus Marine Service Information (DOI: https://doi.org/10.48670/moi-00021). - -``data/bundle/je-e-21.03.02.nc`` - -- **Source:** Swiss Federal Statistics Office -- **Link:** https://www.bfs.admin.ch/bfs/en/home/news/whats-new.assetdetail.7786557.html#context-sidebar -- **License:** `custom (OPEN BY ASK) `__ -- **Description:** Population and GDP data for Swiss Cantons. - -``data/bundle/NUTS_2013_60M_SH`` - -- **Source:** GISCO -- **Link:** https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ -- **License:** `custom `__ -- **Description:** Europe's NUTS administrative regions. - -``data/bundle/nama_10r_3popgdp.tsv.gz`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/databrowser/view/NAMA_10R_3POPGDP/default/table?lang=en -- **License:** `custom `__ -- **Description:** Average annual population to calculate regional GDP data (thousand persons) by NUTS 3 regions. - -``data/bundle/corine`` - -- **Source:** European Environment Agency (EEA) -- **Link:** https://sdi.eea.europa.eu/catalogue/copernicus/api/records/a84ae124-c5c5-4577-8e10-511bfe55cc0d -- **License:** `custom `__ -- **Description:** CORINE Land Cover (CLC) database. - -``data/bundle/eea`` - -- **Source:** European Environment Agency (EEA) -- **Link:** https://www.eea.europa.eu/en/datahub/datahubitem-view/3b7fe76c-524a-439a-bfd2-a6e4046302a2 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Total GHG emissions and removals in the EU. - -``data/bundle/emobility`` - -- **Source:** German Federal Highway Research Institute (BASt) -- **Link:** https://www.bast.de/DE/Verkehrstechnik/Fachthemen/v2-verkehrszaehlung/zaehl_node.html -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains data from permanent automatic counting stations on highways and federal roads in Germany. - -``data/bundle/h2_salt_caverns_GWh_per_sqkm.geojson`` - -- **Source:** Dilara Gulcin Caglayan, Nikolaus Weber, Heidi U. Heinrichs, Jochen - Linßen, Martin Robinius, Peter A. Kukla, Detlef Stolten, Technical potential - of salt caverns for hydrogen storage in Europe, International Journal of - Hydrogen Energy, Volume 45, Issue 11, 2020, Pages 6793-6805. -- **Link:** https://doi.org/10.1016/j.ijhydene.2019.12.161 -- **License:** CC-BY 4.0 -- **Description:** Contains geological hydrogen storage potentials for Europe. - -``data/bundle/natura`` - -- **Source:** European Environment Agency (EEA) -- **Link:** https://www.eea.europa.eu/en/datahub/datahubitem-view/6fc8ad2d-195d-40f4-bdec-576e7d1268e4 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Natura 2000 natural protection areas. - -``data/bundle/gebco`` - -- **Source:** GEBCO -- **Link:** https://www.gebco.net/data_and_products/gridded_bathymetry_data/version_20141103/ -- **License:** CC0 (`reference `__) -- **Description:** Bathymetric dataset (2014 version). - -``data/bundle/GDP_per_capita_PPP_1990_2015_v2.nc`` - -- **Source:** Kummu, M., Taka, M. & Guillaume, J. Gridded global datasets for - Gross Domestic Product and Human Development Index over 1990-2015. Sci Data 5, - 180004 (2018). https://doi.org/10.1038/sdata.2018.4 -- **Link:** https://datadryad.org/stash/dataset/doi:10.5061/dryad.dk1j0 -- **License:** CC0 (`reference `__) -- **Description:** Gridded GDP data. - -``data/bundle/ppp_2019_1km_Aggregated.tif`` - -- **Source:** WorldPop (www.worldpop.org - School of Geography and Environmental - Science, University of Southampton; Department of Geography and Geosciences, - University of Louisville; Departement de Geographie, Universite de Namur) and - Center for International Earth Science Information Network (CIESIN), Columbia - University (2018). Global High Resolution Population Denominators Project - - Funded by The Bill and Melinda Gates Foundation (OPP1134076). - https://dx.doi.org/10.5258/SOTON/WP00647 -- **Link:** https://hub.worldpop.org/doi/10.5258/SOTON/WP00647 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Gridded population data. - - -``data/bundle/era5-HDD-per-country.csv`` - -- **Source:** Neumann, Fabian -- **Link:** https://gist.github.com/fneum/d99e24e19da423038fd55fe3a4ddf875 -- **License:** CC-BY 4.0 -- **Description:** Contains country-level heating degree days in Europe for - 1941-2023. Used for rescaling heat demand in weather years not covered by - energy balance statistics. - -``data/bundle/era5-runoff-per-country.csv`` - -- **Source:** Neumann, Fabian -- **Link:** https://gist.github.com/fneum/d99e24e19da423038fd55fe3a4ddf875 -- **License:** CC-BY 4.0 -- **Description:** Contains country-level daily sum of runoff in Europe for - 1941-2023. Used for rescaling hydro-electricity availability in weather years - not covered by EIA hydro-generation statistics. diff --git a/doc/data-repos.rst b/doc/data-repos.rst index 8bf04d22f7..6e476c014b 100644 --- a/doc/data-repos.rst +++ b/doc/data-repos.rst @@ -7,6 +7,8 @@ Repository ########### Data in this section is included in the PyPSA-Eur repository in the ``data`` folder. +While most external data is stored outside of the repository, this data is inside the repository either for simplicity or historic reasons. +New data should generally not be added to the data, but externally retrieved in a versioned manner. ``data/entsoegridkit`` @@ -20,7 +22,7 @@ Data in this section is included in the PyPSA-Eur repository in the ``data`` fol - **Source:** European Commission DG ENER; Mapping and analyses of the current and future (2020 - 2030) heating/cooling fuel deployment - **Link:** https://energy.ec.europa.eu/publications/mapping-and-analyses-current-and-future-2020-2030-heatingcooling-fuel-deployment-fossilrenewables-1_en - **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains country-level data on existing heating infrastructure, i.e. gas, oil, coal boilers, resistive heaters, air- and ground-sourced heat pumps. +- **Description:** Contains country-level data on existing heating infrastructure, i.e. gas, oil, coal, biomass boilers, resistive heaters, air- and ground-sourced heat pumps. ``data/retro/comparative_level_investment.csv`` @@ -49,7 +51,7 @@ Data in this section is included in the PyPSA-Eur repository in the ``data`` fol - **License:** `custom `__ - **Description:** Electricity prices for household consumers. -``data/retro/{floor_area_missing,u_values_poland}.csv`` +``data/retro/floor_area_missing.csv`` and ``data/retro/u_values_poland.csv`` - **Source:** EU Building Stock Observatory - **Link:** https://data.europa.eu/euodp/de/data/dataset/building-stock-observatory @@ -97,13 +99,6 @@ Data in this section is included in the PyPSA-Eur repository in the ``data`` fol - **License:** CC-BY 4.0 (for compiled dataset) - **Description:** Locations and production capacities of ammonia plants in Europe. -``data/attributed_ports.json`` - -- **Source:** World Bank -- **Link:** https://datacatalog.worldbank.org/search/dataset/0038118/Global---International-Ports -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** International ports with attributes describing name, port functions, total capacity and location. - ``data/cement_plants-noneu.csv`` - **Source:** manually collected, mostly from USGS @@ -155,13 +150,6 @@ Data in this section is included in the PyPSA-Eur repository in the ``data`` fol - **License:** CC0 (`reference `__) - **Description:** Contains country-level hydro-electric generato for Europe by year. -``data/gr-e-11.03.02.01.01-cc.csv`` - -- **Source:** Swiss Federal Statistics Office -- **Link:** https://www.bfs.admin.ch/asset/de/30305426 -- **License:** `custom (OPEN BY ASK) `__ -- **Description:** Stock of road motor vehicles in Switzerland. - ``data/heat_load_profile_BDEW.csv`` - **Source:** oemof/demandlib diff --git a/doc/data-retrieval.rst b/doc/data-retrieval.rst deleted file mode 100644 index c04d0be4cb..0000000000 --- a/doc/data-retrieval.rst +++ /dev/null @@ -1,295 +0,0 @@ -.. SPDX-FileCopyrightText: Contributors to Open-TYNDP -.. SPDX-FileCopyrightText: Contributors to PyPSA-Eur -.. -.. SPDX-License-Identifier: CC-BY-4.0 - -######################### -Specific retrieval rules -######################### - -Data in this section is retrieved and extracted in rules specified in ``rules/retrieve.smk``. - - -``data/bgr/`` - -- **Source:** Bundesanstalt für Geowissenschaften und Rohstoffe (BGR) -- **Link:** https://www.bgr.bund.de/DE/Themen/Wasser/Projekte/laufend/Beratung/Ihme1500/ihme1500_projektbeschr.html?nn=1546102 -- **License:** `custom ` and `custom ` -- **Description:** Contains data on geothermal energy resources in Europe. - -``data/fraunhofer_heat_source_utilisation_potentials`` and ``data/dh_areas.gpkg`` - -- **Source:** Fraunhofer Fordatis -- **Link:** https://fordatis.fraunhofer.de/handle/fordatis/341.3?mode=simple -- **License:** `CC BY 4.0 `__ -- **Description:** Utilisation potentials for different heat sources across Europe and future district heating areas, based on Manz et al. 2024. - - -``data/nuts`` - -- **Source:** GISCO -- **Link:** https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ -- **License:** `custom `__ -- **Description:** Europe's NUTS administrative regions. - -``data/ENSPRESO_BIOMASS.xlsx`` - -- **Source:** European Commission Joint Research Centre (JRC) -- **Link:** https://data.jrc.ec.europa.eu/dataset/74ed5a04-7d74-4807-9eab-b94774309d9f -- **License:** CC-BY 4.0 -- **Description:** Contains biomass potentials for Europe. - -``data/CO2JRC_OpenFormats`` - -- **Source:** SETIS -- **Link:** https://setis.ec.europa.eu/european-co2-storage-database_en -- **License:** `various `__ -- **Description:** European CO2 storage database CO2StoP. - -``data/myb1-2022-nitro-ert.xlsx`` - -- **Source:** United States Geological Survey (USGS) -- **Link:** https://www.usgs.gov/centers/national-minerals-information-center/nitrogen-statistics-and-information -- **License:** CC0 (`reference `__) -- **Description:** Statistics and information on the worldwide supply of, demand for, and flow of the mineral commodity nitrogen. - -``data/Industrial_Database.csv`` - -- **Source:** Simon Pezzutto, Stefano Zambotti, Silvia Croce, Pietro Zambelli, - Giulia Garegnani, Chiara Scaramuzzino, Ramón Pascual Pascuas, Alyona - Zubaryeva, Franziska Haas, Dagmar Exner (EURAC), Andreas Mueller (e-think), - Michael Hartner (TUW), Tobias Fleiter, Anna-Lena Klingler, Matthias Kuehnbach, - Pia Manz, Simon Marwitz, Matthias Rehfeldt, Jan Steinbach, Eftim Popovski - (Fraunhofer ISI) Reviewed by Lukas Kranzl, Sara Fritz (TUW) - Hotmaps Project, D2.3 WP2 Report - Open Data Set for the EU28, 2018 - https://www.hotmaps-project.eu -- **Link:** https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains georeferenced industrial sites of energy-intensive - industry sectors, together with GHG-emissions, production capacity, fuel - demand and excess heat potentials calculated from emission and production - data. - -``data/eurostat/Balances-April2023`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/documents/38154/4956218/Balances-April2023.zip -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains energy balances for Europe. - -``data/eurostat/eurostat-household_energy_balances-february_2024.csv`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/databrowser-backend/api/extraction/1.0/LIVE/false/sdmx/csv/nrg_d_hhq__custom_11480365?startPeriod=2013&endPeriod=2022&i&compressed=true -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains household energy balances for Europe. - -``data/jrc-idees-2021`` - -- **Source:** Rózsai, M., Jaxa-Rozen, M., Salvucci, R., Sikora, P., Tattini, J. - and Neuwahl, F., JRC-IDEES-2021: the Integrated Database of the European - Energy System - Data update and technical documentation, Publications Office - of the European Union, Luxembourg, 2024, doi:10.2760/614599, JRC137809. -- **Link:** https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/JRC-IDEES/JRC-IDEES-2021_v1 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains more granular energy balances for Europe. - -``data/gas_network`` - -- **Source:** Jan Diettrich, Adam Pluta, & Wided Medjroubi. (2021). SciGRID_gas - IGGIELGN (1.1.2) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.4767098 -- **Link:** https://zenodo.org/records/4767098 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains gas infrastructure data. - -``data/electricity_demand_raw.csv`` - -- **Source:** Open Power System Data (OPSD) from ENTSO-E Transparency -- **Link:** - https://data.open-power-system-data.org/time_series/2019-06-05/time_series_60min_singleindex.csv - and https://data.open-power-system-data.org/time_series/2020-10-06/time_series_60min_singleindex.csv -- **License:** unknown -- **Description:** Contains country-level electricity demand time series. - -``data/load_synthetic_raw.csv`` - -- **Source:** Frysztacki, M., van der Most, L., & Neumann, F. (2024). - Interannual Electricity Demand Calculator [Data set]. Zenodo. - https://doi.org/10.5281/zenodo.10820928 -- **Link:** https://zenodo.org/records/10820928 -- **License:** CC-BY 4.0 -- **Description:** Contains synthetic country-level electricity demand time series. - -``data/shipdensity_global.zip`` - -- **Source:** World Bank -- **Link:** https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Global shipping traffic density. - -``data/Copernicus_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif`` - -- **Source:** Marcel Buchhorn, Bruno Smets, Luc Bertels, Bert De Roo, Myroslava - Lesiv, Nandin-Erdene Tsendbazar, Martin Herold, & Steffen Fritz. (2020). - Copernicus Global Land Service: Land Cover 100m: collection 3: epoch 2019: - Globe (V3.0.1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.3939050 -- **Link:** https://zenodo.org/records/3939050 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains rastered land cover and land use data. - -``data/LUISA_basemap_020321_50m.tif`` - -- **Source:** European Commission Joint Research Centre (JRC) -- **Link:** https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/LUISA/EUROPE/Basemaps/LandUse/2018/LATEST/ -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains rastered land cover and land use data. - -``data/eez`` - -- **Source:** Marine Regions -- **Link:** https://www.marineregions.org/download_file.php -- **License:** CC-BY-NC-SA -- **Description:** Contains offshore exclusive economic zones. - -``data/worldbank`` - -- **Source:** World Bank -- **Link:** https://data.worldbank.org/indicator/SP.URB.TOTL.IN.ZS -- **License:** CC-BY 4.0 -- **Description:** Contains share of urban population by country. - -``data/gem/Europe-Gas-Tracker-2024-05.xlsx`` - -- **Source:** Global Energy Monitor -- **Link:** https://globalenergymonitor.org/projects/global-steel-plant-tracker/ -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Covers methane gas pipelines, LNG terminals, oil and gas-fired power plants, and methane gas extraction sites. - -``data/gem/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx`` - -- **Source:** Global Energy Monitor -- **Link:** https://globalenergymonitor.org/projects/global-steel-plant-tracker/ -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** The Global Steel Plant Tracker (GSPT) provides information on - global crude iron and steel production plants, and includes every plant - currently operating with a capacity of five hundred thousand tonnes per year - (ttpa) or more of crude iron or steel. - -``data/WDPA.gpkg`` - -- **Source:** UNEP-WCMC and IUCN (2024), Protected Planet: The World Database on - Protected Areas (WDPA) [Online], September 2024, Cambridge, UK: UNEP-WCMC and - IUCN. Available at: www.protectedplanet.net. -- **Link:** https://www.protectedplanet.net/en/thematic-areas/wdpa -- **License:** `custom `__ -- **Description:** Contains global protected areas. - -``data/WDPA_WDOECM_marine.gpkg`` - -- **Source:** UNEP-WCMC and IUCN (2024), Protected Planet: The World Database on - Protected Areas (WDPA) and World Database on Other Effective Area-based - Conservation Measures (WD-OECM) [Online], September 2024, Cambridge, UK: - UNEP-WCMC and IUCN. Available at: www.protectedplanet.net. -- **Link:** https://www.protectedplanet.net/en/thematic-areas/marine-protected-areas -- **License:** `custom `__ -- **Description:** Contains global protected marine areas. - -``data/osm-raw`` - -- **Source:** OpenStreetMap via Overpass API -- **Link:** https://overpass-api.de/api/interpreter -- **License:** ODbL -- **Description:** Data of high-voltage transmission grid in Europe from OpenStreetMap. - -``cutouts`` - -- **Source:** `ERA5 - `__ - and `SARAH-3 `__ -- **Link:** https://zenodo.org/records/15349674 -- **License:** CC-BY 4.0 -- **Description:** Contains weather data cutouts for Europe to read in with ``atlite``. - -``resources/costs_{year}.csv`` - -- **Source:** various, mostly compiled from Danish Energy Agency (DEA) - `Technology Catalogues - `__. -- **Link:** https://github.com/PyPSA/technology-data -- **License:** GPL-3.0 -- **Description:** Contains technology data for different years such as costs, efficiencies, and lifetimes. - -``resources/powerplants.csv`` - -- **Source:** F. Gotzens, H. Heinrichs, J. Hörsch, and F. Hofmann, Performing - energy modelling exercises in a transparent way - The issue of data quality in - power plant databases, Energy Strategy Reviews, vol. 23, pp. 1-12, Jan. 2019. - https://doi.org/10.1016/j.esr.2018.11.004 -- **Link:** https://github.com/PyPSA/powerplantmatching -- **License:** GPL-3.0 -- **Description:** Contains matched dataset of powerplants in Europe. - -``data/busshapes/bidding_zones_electricitymaps.geojson`` - -- **Source:** Electricity Maps, https://github.com/electricitymaps/electricitymaps-contrib -- **Link:** https://raw.githubusercontent.com/electricitymaps/electricitymaps-contrib/v1.238.0/web/geo/world.geojson -- **License:** AGPLv3 -- **Description:** Contains bidding zones shape files. - -``data/busshapes/bidding_zones_entsoepy.geojson`` - -- **Source:** Pecinovsky, J., & Boerman, F. entsoe-py. https://github.com/EnergieID/entsoe-py -- **Link:** https://github.com/EnergieID/entsoe-py/tree/c03c604af36ef92e8ef6ee89dc57c56ca5e1dbac/entsoe/geo/geojson -- **License:** MIT License -- **Description:** Contains bidding zones shape files used to improve `data/busshapes/bidding_zones_electricitymaps.geojson` data. - -``resources/countries_centroids.geojson`` - -- **Source:** Copyright (c) 2021 Gavin Rehkemper, https://github.com/gavinr/world-countries-centroids/tree/v1.0.0 -- **Link:** https://cdn.jsdelivr.net/gh/gavinr/world-countries-centroids@v1.0.0/dist/countries.geojson -- **License:** MIT License -- **Description:** Contains centroids of world countries in GeoJson. - -``data/tyndp_2024_bundle/PECD/PECD_{pecd_version}`` - -- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ -- **Link:** https://storage.googleapis.com/open-tyndp-data-store/PECD/PECD_{pecd_version}.zip -- **License:** CC-BY 4.0 -- **Description:** Contains hourly PECD v3.1 capacity factor time series for Solar PV rooftop, - Solar PV utility, Onshore Wind, Offshore Wind and Solar CSP. - -``data/tyndp_2024_bundle/PECD/PECD_{pecd_prebuilt_version}`` - -- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ -- **Link:** https://storage.googleapis.com/open-tyndp-data-store/PECD/PECD_{pecd_prebuilt_version}.zip -- **License:** CC-BY 4.0 -- **Description:** Contains pre-built hourly PECD v3.1 capacity factor time series for climate years 1995, 2008, and 2009, covering Solar PV rooftop, Solar PV utility, Onshore Wind, Offshore Wind and Solar CSP. - -``data/tyndp_2024_bundle/PEMMDB2`` - -- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ -- **Link:** https://storage.googleapis.com/open-tyndp-data-store/PEMMDB.zip -- **License:** CC-BY 4.0 -- **Description:** Contains PEMMDB v2.4 capacities, as well as must-run and availability profiles for various PEMMDB technologies (thermal, RES, reserves, DSR, batteries and electrolysers). - -``data/tyndp_2024_bundle/TYNDP-2024-Scenarios-Package/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx`` - -- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ -- **Link:** https://storage.googleapis.com/open-tyndp-data-store/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx -- **License:** CC-BY 4.0 -- **Description:** Contains the TYNDP Scenarios Report Data Figures data and calculation - used to produce the figures in the Scenarios Report. - -``data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform`` - -- **Source:** TYNDP 2024 Visualisation Platform, https://2024.entsos-tyndp-scenarios.eu/visualisation-platform/ -- **Link:** https://storage.googleapis.com/open-tyndp-data-store/250117-TYNDP-2024-Visualisation-Platform.zip -- **License:** CC-BY 4.0 -- **Description:** Contains the TYNDP 2024 Visualisation Platform data for both electricity (supply mix, flexibility options, and electricity demand) and hydrogen (supply mix and hydrogen demand). - -``data/tyndp_2024_bundle/Supply Tool`` - -- **Source:** TYNDP 2024 Supply Tool, https://2024-data.entsos-tyndp-scenarios.eu/files/scenarios-outputs/20240518-Supply-Tool.xlsm.zip -- **Link:** https://storage.googleapis.com/open-tyndp-data-store/20240518-Supply-Tool.xlsm.zip -- **License:** CC-BY 4.0 -- **Description:** Contains the TYNDP 2024 Supply Tool. diff --git a/doc/data_inventory.csv b/doc/data_inventory.csv new file mode 100644 index 0000000000..276135c879 --- /dev/null +++ b/doc/data_inventory.csv @@ -0,0 +1,52 @@ +"Short name","Long name","Description","Owner","Link to website","License" +"enspreso_biomass",ENSPRESO biomass potentials for Europe,"This collection contains datasets from ENSPRESO2, an EU-28 wide, open dataset on renewable energy potentials, at national (NUTS0), regional and high-resolution (1 x 1 km and 5 x 5 km) levels for the 2010-2050 period. Within ENSPRESO, ENergy Systems Potential Renewable Energy SOurces, and the ENSPRESO2 updates, technical potentials are provided for wind, solar and biomass, based on coherent GIS-based land-restriction scenarios. [...] For biomass, agriculture, forestry and waste sectors are considered. The temporal resolution for wind and solar is both annual.","European Commission Joint Research Centre","https://data.jrc.ec.europa.eu/dataset/74ed5a04-7d74-4807-9eab-b94774309d9f","CC-BY-4.0" +"osm","Open Street Map electricity transmission grid","Transmission grid topology and infrastructure on substations, lines and cables from Open Street Map (OSM). The dataset is built from OSM data and is not versioned. The latest dataset can be built using the scripts in the repository.","Open Street Map contributors","https://www.openstreetmap.org/","ODbL-1.0" +"worldbank_urban_population","Urban population (% of total population)","Percentage of Urban population by country, United Nations Population Division. World Urbanization Prospects: 2018 Revision.","World Bank","https://data.worldbank.org/indicator/SP.URB.TOTL.IN.ZS","CC-BY-4.0" +"hotmaps_industrial_sites","Hotmaps industrial sites","In this repository are over 5000 georeferenced industrial sites of energy-intensive industry sectors published, together with GHG-emissions, production capacity, fuel demand and excess heat potentials calculated from emission and production data.","","https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database/","CC-BY-4.0" +"co2stop","CO2 Storage Potentials","An assessment of the CO2 storage potential in Europe, including storage units, traps, and maps.","European Commission Joint Research Centre","https://setis.ec.europa.eu/european-co2-storage-database_en","Reuse policy following 2011/833/EU" +"nitrogen_statistics","Nitrogen Statistics and Information","Statistics and information on the worldwide supply of, demand for, and flow of the mineral commodity nitrogen.","United States Geological Survey (USGS)","https://www.usgs.gov/centers/nmic/nitrogen-statistics-and-information","Public Domain" +"eu_nuts2013","Nomenclature of Territorial Units for Statistics (NUTS) 2013 - shapefiles","Shapefiles of EU's Nomenclature of Territorial Units for Statistics (NUTS) 2013, which is a hierarchical system for dividing up the economic territory of the European Union.","eurostat","https://ec.europa.eu/eurostat/web/nuts/overview","Reuse policy following 2011/833/EU" +"eu_nuts2021","Nomenclature of Territorial Units for Statistics (NUTS) 2021 - shapefiles","Shapefiles of EU's Nomenclature of Territorial Units for Statistics (NUTS) 2021, which is a hierarchical system for dividing up the economic territory of the European Union.","eurostat","https://ec.europa.eu/eurostat/web/nuts/overview","Reuse policy following 2011/833/EU" +"eurostat_balances","Energy Balances","European energy balances by country and fuel, as reported by Eurostat.","eurostat","https://ec.europa.eu/eurostat/data/database","Reuse policy following 2011/833/EU ; newer versions of the same data are available as CC-BY-4.0 through the eurostat API" +"eurostat_household_balances","Eurostat Household Energy Balances","Disaggregated final energy consumption in household - quantities (nrg_d_hhq)","eurostat","https://ec.europa.eu/eurostat/databrowser/product/page/NRG_D_HHQ","CC-BY-4.0" +"luisa_land_cover","The LUISA base map 2018","The LUISA Base Map 2018 is a high-resolution land use/land cover map developed and produced by the Joint Research Centre of the European Commission","European Commission Joint Research Centre","https://data.jrc.ec.europa.eu/dataset/51858b51-8f27-4006-bf82-53eba35a142c","CC-BY-4.0" +"jrc_idees","JRC-IDEES-2021","The JRC-IDEES-2021 release contains a consistent set of disaggregated energy-economy-emissions data for each Member State of the European Union, covering all sectors of the energy system for the 2000-2021 period: industry, buildings, transport, and power generation.", "European Commission Joint Research Centre", "https://data.jrc.ec.europa.eu/dataset/82322924-506a-4c9a-8532-2bdd30d69bf5", "CC-BY-4.0" +"scigrid_gas","","Scientific Grid Model of European Gas Transmission Networks,Gas transmission data model","DLR Institute for Networked Energy Systems","https://web.archive.org/web/20241112092853/https://www.gas.scigrid.de/", "CC-BY-4.0" +"synthetic_electricity_demand","","Interannual Electricity Demand Calculator,generates country-level electricity consumption time series based on weather data and correlates historical electricity demand to temperature","","https://zenodo.org/records/10820928", "CC-BY-4.0" +"copernicus_land_cover","Copernicus Global Land Service", "Land cover and land use inventory of European continent","Copernicus","https://land.copernicus.eu/en/products/global-dynamic-land-cover", "CC-BY-4.0" +"ship_raster","Global Shipping Traffic Density","To build ship density raster and use it further to compute availability matrix for renewables","Worldbank","https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density", "CC-BY-4.0" +"eez","Maritime Boundaries World EEZ","To estimate potentials for offshore wind in country's EEZ","Marine Regions","https://www.marineregions.org/downloads.php", "CC-BY-4.0" +"nuts3_population","Population by NUTS3 region","Average annual population to calculate regional GDP data (thousand persons) by NUTS 3 region (nama_10r_3popgdp)","Eurostat","https://ec.europa.eu/eurostat/databrowser/bulk?lang=en&searchFilter=nama_10r_3pop", "CC-BY-4.0" +"gdp_per_capita","Gridded global datasets for Gross Domestic Product over 1990–2015","Gross Domestic Product per capita (PPP)","Kummu, M et al.","https://www.nature.com/articles/sdata20184","CC-BY-4.0" +"population_count","World - Population Counts","Spatial distribution of population","WorldPop","https://data.humdata.org/dataset/worldpop-population-counts-for-world https://hub.worldpop.org/doi/10.5258/SOTON/WP00647","CC-BY-4.0" +"ghg_emissions","Total GHG emissions and removals in the EU","National emissions reported to the UNFCCC and to the EU under the Governance Regulation","European Environment Agency","https://www.eea.europa.eu/en/datahub/datahubitem-view/3b7fe76c-524a-439a-bfd2-a6e4046302a2?activeAccordion=1095700%2C1095998%2C1085929%2C1084352%2C1084914","CC-BY-4.0" +"gebco","General Bathymetric Chart of the Oceans","Gridded Bathymetric data for ocean and land, providing elevation data in meters, on a 15 arc-second interval grid.","GEBCO Comilation Group","https://www.gebco.net/data-products/gridded-bathymetry-data","Public domain" +"attributed_ports","Global - International Ports","International ports with attributes describing name, port functions, total capacity and location","World bank Group","https://datacatalog.worldbank.org/search/dataset/0038118/Global---International-Ports", "CC-BY-4.0" +"corine","CORINE Land Cover 2012","Pan European Land cover for 44 thematic classes with 2012 as reference year","Copernicus","https://land.copernicus.eu/en/products/corine-land-cover/clc-2012","Custom similar to CC-BY" +"emobility","","Motor and passenger vehicles count","Bundesanstalt für Straßenwesen (BASt)","https://www.bast.de/DE/Home/home_node.html","CC-BY-4.0" +"h2_salt_caverns","Technical potential of salt caverns for Hydrogen Storage in Europe","Salt cavern potentials in GWh/sqkm", "Dilara et al", "https://www.sciencedirect.com/science/article/abs/pii/S0360319919347299?via%3Dihub","CC-BY-4.0" +"lau_regions","Local Administrative Units","Used for local administration regions when building geothermal potentials","Eurostat","https://ec.europa.eu/eurostat/web/gisco/geodata/administrative-units","Permission to download only if used for non-commercial purposes" +"aquifer_data","International Hydrogeological Map of Europe","Groundwater data","BGR","https://geoportal.bgr.de/mapapps/resources/apps/geoportal/index.html?lang=en#/datasets/portal/341255A9-180F-4BF9-B96F-D085339EA86D","Right to use without restriction but no right to redistribute" +"osm_boundaries","OSM Boundaries","OSM-Boundaries was created to enable users to easily extract boundaries such as country borders, state borders, and equivalents from the OpenStreetMap databases","Ground Zero Communications AB","https://osm-boundaries.com/about","ODbL" +"gem_europe_gas_tracker","Europe Gas Tracker","Methane and hydrogen infrastructure in Europe, including pipelines, LNG terminals, gas power plants and extraction sites.","Global Energy Monitor","https://globalenergymonitor.org/projects/europe-gas-tracker/","CC-BY-4.0" +"gem_gspt","Global Steel Plant Tracker","Steel plant global locations and characteristics, including production capacity, ownership, and emissions data.","Global Energy Monitor","https://globalenergymonitor.org/projects/global-steel-plant-tracker/","CC-BY-4.0" +"tyndp","Ten Year Network Development Plan (TYNDP) electricity transmission grid","Transmission grid topology based on the ENTSO-E/ENTSO-G TYNDP scenarios, including planned and existing lines.","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_bundle","Ten Year Network Development Plan (TYNDP) 2024 data bundle for Open-TYNDP","TYNDP 2024 data package from ENTSO-E/ENTSO-G, including hourly demand profiles, EV modelling inputs, hybrid heat pump modelling inputs, hydrogen modelling inputs, investment datasets, line data, nodes data and offshore hubs data.","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_benchmark","TYNDP 2024 Scenarios data package","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_hydro_inflows","TYNDP 2024 Hydro Inflows","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_pecd","Pan-European Climate Database (PECD) v3.1","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_pemmdb","Pan-European Market Modelling Database (PEMMDB) v2.4","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_supply_tool","TYNDP 2024 Supply Tool","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_vis_plfm","TYNDP 2024 Visualisation Platform","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"tyndp_cba_projects","Projects from the Cost-Benefit Analysis (CBA) of the TYNDP 2024","Additional data to the TYNDP 2024 data package, will be incorporated in the data package","ENTSO-E/ENTSO-G","https://2024.entsos-tyndp-scenarios.eu/download/","CC-BY-4.0" +"powerplants","Power plants matching dataset","Global dataset of power plants with their location, capacity and technology type.","The powerplantmatching contributors","https://powerplantmatching.readthedocs.io","CC-BY-4.0" +"costs","Technology cost assumptions","Technology cost and performance assumptions for Europe for various technologies, including renewables, fossil fuels.","The technologydata contributors","https://technology-data.readthedocs.io","CC-BY-4.0" +"country_runoff","Country level runoff data","Country-level runoff data, daily sums, for Europe, used for rescaling hydro-electricity availability in weather years not covered by EIA hydro-generation statistics.","Fabian Neumann","see `rule retrieve_country_runoff` in the PyPSA-Eur repository","CC-BY-4.0" +"country_hdd","Country level runoff data","Country-level heating degree days for Europe, used for rescaling heat demand in weather years not covered by energy statistics.","Fabian Neumann","see `rule retrieve_country_runoff` in the PyPSA-Eur repository","CC-BY-4.0" +"natura","Natura 2000 protected areas","Protected areas in Europe as defined by the Natura 2000 network.","European Environment Agency","https://www.eea.europa.eu/en/datahub/datahubitem-view/6fc8ad2d-195d-40f4-bdec-576e7d1268e4","CC-BY-4.0" +"bfs_road_vehicle_stock","Swiss Road Vehicle Stock","Stock of road motor vehicles in Switzerland.","Swiss Federal Statistics Office","https://www.bfs.admin.ch/bfs/de/home/statistiken/kataloge-datenbanken.assetdetail.33827666.html","custom (OPEN BY ASK)" +"bfs_gdp_and_population","Swiss Population","Population data for Switzerland.","Swiss Federal Statistics Office","https://www.bfs.admin.ch/bfs/en/home/news/whats-new.assetdetail.7786557.html","custom (OPEN BY ASK)" +"mobility_profiles","German Vehicle Activity Profiles","Vehicle activity profiles for different vehicle types and road types in Germany, based on monitoring data from the Federal Highway Research Institute (BASt). These profiles provide insights into travel behavior and patterns, which can be used for transport modeling and analysis.","Federal Highway Research Institute (BASt)","https://www.bast.de/DE/Themen/Digitales/HF_1/Massnahmen/verkehrszaehlung/Stundenwerte.html?nn=414410","CC-BY-4.0" +"dh_areas","","Shapes of district heating areas","ISI Fraunhofer-Institut für System- und Innovationsforschung","https://fordatis.fraunhofer.de/handle/fordatis/341.5","CC-BY-4.0" +"geothermal_heat_utilisation_potentials","","Potentials for Geothermal heat utilisation","ISI Fraunhofer-Institut für System- und Innovationsforschung","https://fordatis.fraunhofer.de/handle/fordatis/341.5","CC-BY-4.0" +"jrc_ardeco","Annual Regional Database of the European Commission's Directorate General for Regional and Urban Policy","The database contains a set of long time-series variables and indicators for EU regions, as well as for regions in some EFTA and candidate countries, at various statistical scales (NUTS1, NUTS2, NUTS3, metro regions).","European Commission","https://territorial.ec.europa.eu/ardeco","similar to CC-BY" \ No newline at end of file diff --git a/doc/data_sources.rst b/doc/data_sources.rst index 334cea7984..2c2ec10deb 100644 --- a/doc/data_sources.rst +++ b/doc/data_sources.rst @@ -15,7 +15,100 @@ data sources. :maxdepth: 1 ../data-base-network - ../data-bundle - ../data-retrieval ../data-repos ../tyndp-2024-bundle + +.. _managing_data_versions: + +###################### +Managing Data Versions +###################### + +Many of the data sources used in PyPSA-Eur are updated regularly. +To ensure reproducibility, PyPSA-Eur uses a versioning system for data sources which allows users to select specific versions of the data sources to use in their models. + +.. note:: + For users, selection and control over which is managed through the configuration file. + See :ref:`data_cf` for details. + +########################################## +Creating a new version of the data sources +########################################## + +To create a new version of the data sources, you can use the helper script in ``scripts/create_zenodo_deposition_cli.py``. +Here are the steps that this script helps you to navigate: + +1. Locate the data for the new version and place it under ``data//archive//``. + E.g. for creating a new version ``2029-01-01`` of the ``worldbank_population`` dataset, place the data into a folder named ``data/worldbank_population/archive/2029-01-01/``. + We follow the versioning names of the original dataset, so make sure to use the same version name as the original dataset. +2. If you want to use the script, run it now. It will guide you through the process outlined below. +3. Create a new Zenodo deposition for the new version of the data. + You can do this by visiting the Zenodo website and creating a new deposition. + + * All relevant metadata, such as the title, description, and keywords based on the previous version of the dataset and make changes as needed. + * Make sure to add the previous version Zenodo deposit as a related identifier with the relation "is new version of", "doi" as the identifier scheme, and the DOI of the previous version as the identifier. + * Upload the data files from the ``data//archive//`` folder to the Zenodo deposition. + +4. Once the deposition is complete, publish it on Zenodo. +5. Update ``data/versions.csv`` to include the new version of the dataset. + + * Create a new row in the CSV file based on the previous version, updating the version number and Zenodo URL + * Make sure to tag this new version with the tags ``['latest', 'supported']``. + * Remove the ``latest`` tag from the previous version. + * If the previous version is no longer supported or outdated, remove the ``supported`` tag and add the ``deprecated`` tag. + +6. Commit the changes to the repository and create a pull request. + +######################## +Adding a new data source +######################## + +The process of adding a new data source is similar to creating a new version of an existing data source, with some additional steps. +It is also possible to use the helper script in ``scripts/create_zenodo_deposition_cli.py`` to guide you through the process. + +1. Create a new folder for the new data source in the ``data/`` directory, e.g. ``data/my_new_data_source/``. +2. Place the data files for the new data source in the ``data//archive//`` folder. + We follow the versioning names of the original dataset, so make sure to use the same version name as the original dataset. +3. If you want to use the script, run it now. It will guide you through the process outlined below. +4. Create a new Zenodo deposition for the new data source. + You can do this by visiting the Zenodo website and creating a new deposition. + + * Add all relevant metadata, such as the title, authors, description, keywords. + * When adding the license, make sure that the license of the dataset is compatible with redistribution (i.e. uploading to Zenodo). Most of our data is originally CC-BY-4.0 licensed. If you have doubts about the license, reach out to the maintainers. + * Make sure to set the version name to be the same as the version name used for the data files, e.g. ``2029-01-01``. + * Upload the data files from the ``data//archive//`` folder to the Zenodo deposition. + +5. Once the deposition is complete, publish it on Zenodo. +6. Update ``data/versions.csv`` to include the new data source. + Create a new row in the CSV file with the following columns: + + * ``dataset``: The name of the dataset as used in the folder name, e.g. ``my_new_data_source``. + * ``source``: The source of the dataset. For Zenodo uploads the source is by definition ``archive``. + * ``version``: The version name of the dataset as used in the folder name, e.g. ``2029-01-01``. + * ``tags``: A list of tags for the dataset. Make sure to include ``latest`` and ``supported`` tags. + * ``url``: The link to the Zenodo deposition of the dataset, e.g. ``https://zenodo.org/record/``. Check whether the respective ``retrieve_`` rule in ``rules/retrieve.smk`` requires a direct download link or the link to the Zenodo record. + * ``note``: An optional note about the dataset. + +7. Implement a ``retrieve`` rule for your dataset in ``rules/retrieve.smk``. + This rule should download the data from the Zenodo deposition and place it in the ``data//archive//`` folder. + Take inspiration from existing rules in the file, e.g. the ``rule retrieve_worldbank_urban_population``. +8. Add an additional rule for the ``primary`` source of the data, i.e. the original source of the data. + You may be able to use the same rule for ``archive`` and ``primary`` sources, but sometimes dedicated rules are needed. + Create an entry in ``data/versions.csv`` for the ``primary`` source as well, with the URL pointing to the original source of the data. + Again, take inspiration from existing rules in the file, e.g. the ``rule retrieve_worldbank_urban_population_primary``. + This rule will also help us in the future to update to new versions of the data set. +9. Add the new data source to the + + * ``data`` section in the configuration file ``config/config.default.yaml`` + * ``doc/configtables/data.csv`` for the documentation + * ``data_sources.rst`` data inventory for PyPSA-Eur + +============== +Data inventory +============== + +.. csv-table:: + :header-rows: 1 + :class: longtable + :widths: auto + :file: data_inventory.csv diff --git a/doc/img/logo.svg b/doc/img/logo.svg new file mode 100644 index 0000000000..892b0fb87a --- /dev/null +++ b/doc/img/logo.svg @@ -0,0 +1,52 @@ + + \ No newline at end of file diff --git a/doc/preparation.rst b/doc/preparation.rst index 9efb3ac76a..dd6d4d4b7c 100644 --- a/doc/preparation.rst +++ b/doc/preparation.rst @@ -73,6 +73,11 @@ Rule ``base_network`` .. automodule:: base_network +Rule ``build_natura`` +============================= + +.. automodule:: build_natura + Rule ``build_transmission_projects`` ==================================== diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 4ba43df063..55468a36b4 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -19,12 +19,31 @@ Upcoming Open-TYNDP Release * Fix: Correct handling of electrolyzer capacities between optimization years (https://github.com/open-energy-transition/open-tyndp/pull/370). +* Docs: Integrate Open-TYNDP specific data into the data versioning system introduced upstream (see https://github.com/PyPSA/pypsa-eur/pull/1675) (https://github.com/open-energy-transition/open-tyndp/pull/363). Consequently, the rule `retrieve_additional_tyndp_data` is deprecated. Upcoming PyPSA-Eur Release ================ * Fix compatibility of rules `build_gas_input_locations` and `build_gas_network` with pyogrio >=0.12.0 (https://github.com/PyPSA/pypsa-eur/pull/1955). +* Added interactive (html) balance maps `results/maps/interactive/` (https://github.com/PyPSA/pypsa-eur/pull/1935) based on https://docs.pypsa.org/latest/user-guide/plotting/explore/. Settings for interactive maps can be found in `plotting.default.yaml` under `plotting["balance_map_interactive"]`. + +* Relocated and modified static (pdf) balance maps to `results/maps/static/` (https://github.com/PyPSA/pypsa-eur/pull/1935) for better organization. + +* With https://github.com/PyPSA/pypsa-eur/pull/1935, note that bus carriers for balance maps containing spaces need to be specified with underscores `_` in the configuration file, e.g., `co2_stored` instead of `co2 stored`. This is to ensure compatibility with queue managers like slurm. + +* Fix building osm network using overpass API (https://github.com/PyPSA/pypsa-eur/pull/1940). + +* Added configuration option to set overpass API URL, maximum retries, timeout and user agent information (https://github.com/PyPSA/pypsa-eur/pull/1940 and https://pypsa-eur.readthedocs.io/en/latest/configuration.html#overpass_api). For a list of public overpass APIs see `here `_. + +* Refactored `solve_network.py` and `solve_operations_network.py` to separate optimization problem preparation from solving, enabling inspection of optimization problems before solve execution. + +* Added example configurations for rolling horizon and iterative optimization modes in `config/examples/`. + +* Added existing biomass decentral/rural residential and services heating capacity. + +* Fix parsing in Swiss passenger cars data (https://github.com/PyPSA/pypsa-eur/pull/1934 and https://github.com/PyPSA/pypsa-eur/pull/1936). + * Fix: ValueError with `cop_heat_pump` in `prepare_sector_network.py` if `tim_dep_hp_cop` is `false`. * Fixed OSM raw data cleaning to include `section` line relation role. @@ -114,6 +133,22 @@ Upcoming PyPSA-Eur Release * Added minimum unit dispatch setting option for electrolysis +* Feature: All input data to the model is now version controlled. The data versions are listed in `data/versions.csv` and can be configured in the configfile. (https://github.com/PyPSA/pypsa-eur/pull/1675) + +* Deprecate `shared_cutouts`: This configuration entry is no longer supported. Cutouts are always shared. + To use scenario specific cutouts with different time or spatial resolution, make sure to name those cutouts differently in the `atlite:` configuration entry. + +* Move cutouts into `data/cutouts/` directory for consistency. Note: This will trigger all cutouts to be re-downloaded or rebuild. If you need to retain downloaded cutouts, move them manually into `data/cutouts/`. + +* Deprecate the ability to determine ``cutout`` bounds based on ``regions_onshore`` and ``regions_offshore``. + Instead ``cutouts`` need to have their bounds explicitly defined in the configuration file. + +* Moved configuration for ``cutout`` preparation into a nested dictionary ``prepare_kwargs``. + This allows to pass any keyword argument supported by ``atlite.Cutout.prepare()`` like ``tmpdir``. + +* Deprecate the configuration options ``enable: retrieve``, ``enable: retrieve_databundle``, and ``enable: retrieve_cost_data``. + Instead, the rules are always included in the workflow. If no internet connection is available, the rules will fail. + * Misc: Empty folders that are automatically generated by ``snakemake`` have been added to the repository, e.g. ``resources/`` and ``results/``. The ``purge`` rule now removes their contents but keeps the folders (https://github.com/PyPSA/pypsa-eur/pull/1764). diff --git a/doc/retrieve.rst b/doc/retrieve.rst index a252d400c3..7da138c2c8 100644 --- a/doc/retrieve.rst +++ b/doc/retrieve.rst @@ -1,4 +1,3 @@ -.. SPDX-FileCopyrightText: Contributors to Open-TYNDP .. SPDX-FileCopyrightText: Contributors to PyPSA-Eur .. .. SPDX-License-Identifier: CC-BY-4.0 @@ -9,56 +8,17 @@ Retrieving Data ############### -Not all data dependencies are shipped with the git repository, -since git is not suited for handling large changing files. -Instead we provide separate data bundles which can be obtained -using the ``retrieve*`` rules. - -Rule ``retrieve_databundle`` -============================ - -.. automodule:: retrieve_databundle - -Rule ``retrieve_tyndp_bundle`` -============================ - -.. automodule:: retrieve_tyndp_bundle - -Rule ``retrieve_eurostat_data`` -=============================== - -.. automodule:: retrieve_eurostat_data - - -Rule ``retrieve_jrc_idees`` -=============================== - -.. automodule:: retrieve_jrc_idees - - - -Rule ``retrieve_eurostat_household_data`` -========================================= - -.. automodule:: retrieve_eurostat_household_data +Not all data dependencies are shipped with the git repository, since git is not suited for handling large changing files. +Instead we use separate steps in the workflow (``rules`` executed by ``snakemake``) to download external data using the ``retrieve_`` rules. +Data is generally retrieved in a version-controlled manner, enabling control over input data versions, reproducibility and consistency of modelling runs. +The rules download data into subfolders in the `data/` directory, following the structure +``data/{dataset}/{source}/{version}``, e.g. ``data/jrc_idees/primary/March-2025-V1/``. +Which specific data version is retrieve can be controlled in the `data configuration `__ . -Rule ``retrieve_co2stop`` -=============================== +Below some specific ``retrieve_`` rules are documented. +For more information on the datasets retrieved, see the `data sources `__ and *Data inventory* section there in the documentation. -.. automodule:: retrieve_co2stop - - -Rule ``retrieve_gas_infrastructure_data`` -========================================= - -.. automodule:: retrieve_gas_infrastructure_data - - -Rule ``retrieve_osm_data`` -========================================= - -.. automodule:: retrieve_osm_data Rule ``retrieve_bidding_zones`` ========================================= @@ -103,23 +63,7 @@ Rule ``retrieve_additional_cutout`` This rule mirrors the default cutout retrieval but allows the retrieval of additional PyPSA-Eur cutouts that are not available from the `Zenodo record `__ but instead retrieved from GCP for the Open-TYNDP project specifically. -Rule ``retrieve_electricity_demand`` -==================================== - -This rule downloads hourly electric load data for each country from the `OPSD platform `__. - -**Relevant Settings** - -None. - -**Outputs** - -- ``data/electricity_demand_raw.csv`` - -Rule ``retrieve_tyndp_bundle`` -========================================= -.. automodule:: retrieve_tyndp_bundle Rule ``retrieve_cost_data`` ================================ @@ -130,12 +74,8 @@ This rule downloads techno-economic assumptions from the `technology-data reposi .. code:: yaml - enable: - retrieve_cost_data: - costs: year: - version: .. seealso:: Documentation of the configuration file ``config/config.yaml`` at @@ -143,20 +83,8 @@ This rule downloads techno-economic assumptions from the `technology-data reposi **Outputs** -- ``resources/costs.csv`` - -Rule ``retrieve_ship_raster`` -================================ - -This rule downloads data on global shipping traffic density from the `World Bank Data Catalogue `__. +- ``data/costs/primary/{version}/costs_{year}.csv`` -**Relevant Settings** - -None. - -**Outputs** - -- ``data/shipdensity_global.zip`` Rule ``retrieve_countries_centroids`` ==================================== @@ -170,33 +98,3 @@ None. **Outputs** - ``data/countries_centroids.geojson`` - -Rule ``retrieve_tyndp_pecd_data_raw`` -==================================== - -.. automodule:: retrieve_additional_tyndp_data - -Rule ``retrieve_tyndp_pecd_data_prebuilt`` -==================================== - -.. automodule:: retrieve_additional_tyndp_data - -Rule ``retrieve_tyndp_hydro_inflows`` -==================================== - -.. automodule:: retrieve_additional_tyndp_data - -Rule ``retrieve_tyndp_pemmdb_data`` -==================================== - -.. automodule:: retrieve_additional_tyndp_data - -Rule ``retrieve_tyndp_h2_data`` -==================================== - -.. automodule:: retrieve_additional_tyndp_data - -Rule ``retrieve_tyndp_gas_data`` -==================================== - -.. automodule:: retrieve_additional_tyndp_data diff --git a/doc/sector.rst b/doc/sector.rst index 796fc464e8..f030bb5527 100644 --- a/doc/sector.rst +++ b/doc/sector.rst @@ -243,6 +243,11 @@ Rule ``build_temperature_profiles`` .. automodule:: build_temperature_profiles +Rule ``build_mobility_profiles`` +============================================================================== + +.. automodule:: build_mobility_profiles + Rule ``build_transport_demand`` ============================================================================== diff --git a/doc/tyndp-2024-bundle.rst b/doc/tyndp-2024-bundle.rst index 60cd679129..d42afeea14 100644 --- a/doc/tyndp-2024-bundle.rst +++ b/doc/tyndp-2024-bundle.rst @@ -3,7 +3,7 @@ .. SPDX-License-Identifier: CC-BY-4.0 ################### -TYNDP 2024 data bundle for PyPSA-Eur +TYNDP 2024 data bundle ################### Data in this section is downloaded and extracted from the TYNDP 2024 data bundle for PyPSA-Eur @@ -11,72 +11,101 @@ Data in this section is downloaded and extracted from the TYNDP 2024 data bundle Creative Commons Attribution 4.0 International License (CC-BY 4.0). The original data files can be found under https://2024.entsos-tyndp-scenarios.eu/download/. -``data/tyndp_2024_bundle/Demand Profiles`` +``Demand Profiles`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains hourly demand profiles for CH4, electricity (market and prosumer), H2 (heat, zone 1 and zone 2), synthetic fuels (e-diesel, e-kerosene, sng). -``data/tyndp_2024_bundle/EV Modelling Inputs`` +``EV Modelling Inputs`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains hourly availability, min SOC and driving profiles, EV charging stations, and EV technology assumptions. -``data/tyndp_2024_bundle/Hybrid Heat Pump Modelling Inputs`` +``Hybrid Heat Pump Modelling Inputs`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains hourly COP profiles, HP capacity and heat rate for H2 and CH4 hybrid HP. -``data/tyndp_2024_bundle/Hydrogen`` +``Hydrogen`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains H2 import generators properties, synthetic fuel generators properties, CO2 synthetic fuel ratios, synthetic fuel lines, H2 storage data, and SMR figures. -``data/tyndp_2024_bundle/Investment Datasets`` +``Investment Datasets`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains expansion constraints (capacities, capex, opex, trajectories) for grids' and generators' investment candidates. -``data/tyndp_2024_bundle/Line data`` +``Line data`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains electricity and hydrogen reference grids and e-market prosumer wheeling charge. -``data/tyndp_2024_bundle/Nodes`` +``Nodes`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains a list of electricity and hydrogen nodes. -``data/tyndp_2024_bundle/Offshore hubs`` +``Offshore hubs`` - **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains generators, electrolysers, nodes and grid information used in the modelling of offshore hubs. -``data/tyndp_2024_bundle/cba_projects`` +``cba_projects`` - **Source:** TYNDP 2024 Project Sheets, https://tyndp2024.entsoe.eu/projects-map - **Link:** https://zenodo.org/records/14230568 -- **License:** CC-BY 4.0 - **Description:** Contains 177 transmission and 33 storage projects, which have been assessed by TYNDP 2024 in its Cost-Benefit Analysis. + +``PECD/PECD_{pecd_version}`` + +- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ +- **Link:** https://storage.googleapis.com/open-tyndp-data-store/PECD/PECD_{pecd_version}.zip +- **Description:** Contains hourly PECD v3.1 capacity factor time series for Solar PV rooftop, + Solar PV utility, Onshore Wind, Offshore Wind and Solar CSP. + +``PECD/PECD_{pecd_prebuilt_version}`` + +- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ +- **Link:** https://storage.googleapis.com/open-tyndp-data-store/PECD/PECD_{pecd_prebuilt_version}.zip +- **Description:** Contains pre-built hourly PECD v3.1 capacity factor time series for climate years 1995, 2008, and 2009, covering Solar PV rooftop, Solar PV utility, Onshore Wind, Offshore Wind and Solar CSP. + +``PEMMDB2`` + +- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ +- **Link:** https://storage.googleapis.com/open-tyndp-data-store/PEMMDB.zip +- **Description:** Contains PEMMDB v2.4 capacities, as well as must-run and availability profiles for various PEMMDB technologies (thermal, RES, reserves, DSR, batteries and electrolysers). + +``TYNDP-2024-Scenarios-Package/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx`` + +- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ +- **Link:** https://storage.googleapis.com/open-tyndp-data-store/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx +- **Description:** Contains the TYNDP Scenarios Report Data Figures data and calculation + used to produce the figures in the Scenarios Report. + +``TYNDP-2024-Visualisation-Platform`` + +- **Source:** TYNDP 2024 Visualisation Platform, https://2024.entsos-tyndp-scenarios.eu/visualisation-platform/ +- **Link:** https://storage.googleapis.com/open-tyndp-data-store/250117-TYNDP-2024-Visualisation-Platform.zip +- **Description:** Contains the TYNDP 2024 Visualisation Platform data for both electricity (supply mix, flexibility options, and electricity demand) and hydrogen (supply mix and hydrogen demand). + +``Supply Tool`` + +- **Source:** TYNDP 2024 Scenarios, https://2024.entsos-tyndp-scenarios.eu/download/ +- **Link:** https://storage.googleapis.com/open-tyndp-data-store/20240518-Supply-Tool.xlsm.zip +- **Description:** Contains the TYNDP 2024 Supply Tool. \ No newline at end of file diff --git a/envs/default_linux-64.pin.txt b/envs/default_linux-64.pin.txt index 09fd6bc55c..cb6a3e7924 100644 --- a/envs/default_linux-64.pin.txt +++ b/envs/default_linux-64.pin.txt @@ -1,54 +1,55 @@ # Generated by `pixi workspace export` # platform: linux-64 @EXPLICIT -https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda#4222072737ccff51314b5ece9c7d6f5a -https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_14.conda#91349c276f84f590487e4c7f6e90e077 +https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda#ad659d0a2b3e47e38d829aa8cad2d610 +https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_16.conda#26c46f90d0e727e95c6c9498a33a09f3 https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d -https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_14.conda#550dceb769d23bcf0e2f97fd4062d720 +https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_16.conda#6d0363467e6ed84f11435eb309f2ff06 https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda#edb0dca6bc32e4f4789199455a1dbeb8 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda#86bc20552bf46075e3d92b67f089172d https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda#47e340acb35de30501a76c7c799c41d7 -https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda#283b96675859b20a825f8fa30f311446 -https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda#f0991f0f84902f6b6009b4d2350a83aa +https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda#d7d95fc8287ea7bf33e0e7116d2b95ec +https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda#bddacf101bb4dd0e51811cb69c7790e2 https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda#9ee58d5c534af06558933af3c845a780 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_14.conda#6c13aaae36d7514f28bd5544da1a7bb8 +https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda#5a68259fac2da8f2ee6f7bfe49c9eb8b https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda#5aa797f8787fe7a17d1b0821485b5adc -https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda#80c07c68d2f6870250959dcc95b209d1 -https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda#2e1b84d273b01835256e53fd938de355 +https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda#db409b7c1720428638e7c0d509d3e1b5 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda#68f68355000ec3f1d6f26ea13e8f525f +https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda#186a18e3ba246eccfc7cff00cd19a870 +https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda#da5be73701eecd0e8454423fd6ffcf30 https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda#d864d34357c3b65a4b731f78c0801dc4 -https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda#1a580f7796c7bf6393fddb8bbbde58dc +https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda#c7c83eecbb72d88b940c249af56c8b17 https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h9ec8514_0.conda#35f29eec58405aaf55e01cb470d8c26a https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda#8b09ae86839581147ef2e5c5e229d164 -https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-h3691f8a_5.conda#deab14816773ef8762baeec73bb0d456 -https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda#a6abd2796fc332536735f68ba23f7901 +https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda#4a13eeac0b5c8e5b8ab496e6c4ddd829 +https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda#3ec0aa5037d39b06554109a01e6fb0c6 https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda#51a19bba1b8ebfb60df25cde030b7ebc https://conda.anaconda.org/conda-forge/linux-64/python-3.12.12-hd63d673_1_cpython.conda#5c00c8cea14ee8d02941cab9121dce41 https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda#962b9857ee8e7018c22f2776ffa0b2d7 https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda#9efbfdc37242619130ea42b1cc4ed861 https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda#9d64911b31d57ca443e9f1e36b04385f https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda#c3efd25ac4d74b1584d2f7a57195ddf1 -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_14.conda#8e96fe9b17d5871b5cf9d312cab832f6 -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_14.conda#9531f671a13eec0597941fa19e489b96 -https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_14.conda#3078a2a9a58566a54e579b41b9e88c84 -https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_14.conda#fa9d91abc5a9db36fa8dcd1b9a602e61 +https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda#1b3152694d236cf233b76b8c56bf0eae +https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_16.conda#39183d4e0c05609fd65f130633194e37 +https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_16.conda#40d9b534410403c821ff64f00d0adc22 https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda#be43915efc66345cccb3c310b6ed0374 -https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-2_h4a7cf45_openblas.conda#6146bf1b7f58113d54614c6ec683c14a -https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-2_h47877c9_openblas.conda#9fb20e74a7436dc94dd39d9a9decddc3 -https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-2_h0358290_openblas.conda#a84b2b7ed34206d14739fb8d29cd2799 +https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda#c160954f7418d7b6e87eaf05a8913fa9 +https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda#b38076eb5c8e40d0106beda6f95d7609 +https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda#6636a2b6f1a87572df2970d3ebc87cc0 https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda#d8285bea2a350f63fab23bf460221f3f -https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py312h7a1785b_1.conda#c6e0e1f1d9ac014a980574cfe8caa25f -https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda#4de79c071274a53dcaf2a8c749d1499e -https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.2-pyhd8ed1ab_0.conda#4e717929cfa0d49cef92d911e31d0e90 -https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.7.2-py312h4f0b9e3_0.conda#ee36c7b06c5d7c0ae750147ed9faee8a +https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py312h54fa4ab_1.conda#828eb07c4c87c38ed8c6560c25893280 +https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda#cb72cedd94dd923c6a9405a3d3b1c018 +https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.3-pyhd8ed1ab_0.conda#615de2a4d97af50c350e5cf160149e77 +https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.8.0-np2py312h3226591_1.conda#38decbeae260892040709cafc0514162 https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda#fd5062942bfa1b0bd5e0d2a4397b099e https://conda.anaconda.org/conda-forge/linux-64/pyomo-6.9.5-py312h1289d80_0.conda#14653b1832d3fe7f51942e60ff2a5b00 https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda#bc8e3267d44011051f2eb14d22fb0960 -https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda#88476ae6ebd24f39261e0854ac244f33 +https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda#7ead57407430ba33f681738905278d03 https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda#3339e3b65d58accf4ca4fb8748ab16b3 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda#5b8d21249ff20967101ffa321cab24e8 https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py312hf79963d_1.conda#e597b3e812d9613f659b7d87ad252d18 -https://conda.anaconda.org/conda-forge/noarch/networkx-3.6-pyhcf101f3_0.conda#6725bfdf8ea7a8bf6415f096f3f1ffa5 +https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda#a2c1eeadae7a309daed9d62c96012a2b https://conda.anaconda.org/conda-forge/linux-64/highspy-1.12.0-np2py312h0f77346_0.conda#209aecf319ad78f8ff9426571373844d https://conda.anaconda.org/conda-forge/noarch/tsam-2.3.9-pyhd8ed1ab_0.conda#2b661fd7a718757b2e91bbcac81deb48 https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda#5d99943f2ae3cc69e1ada12ce9d4d701 @@ -61,31 +62,31 @@ https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0. https://conda.anaconda.org/conda-forge/noarch/argparse-dataclass-2.0.0-pyhd8ed1ab_1.conda#3c0e753fd317fa10d34020a2bc8add8e https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda#e9bb00d8c7d26a5cd220d3d73bee45fb https://conda.anaconda.org/conda-forge/noarch/reretry-0.11.8-pyhd8ed1ab_1.conda#b965b0dfdb3c89966a6a25060f73aa67 -https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.2.3-pyhd4c3c12_0.conda#0de5b58d7772fb879c4117fb37121e0b -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef -https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py312h460c074_1.conda#648ee28dcd4e07a1940a17da62eccd40 -https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py312h5253ce2_1.conda#02738ff9855946075cbd1b5274399a41 +https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda#b894c6a2d0612da952c9989ac7a22d16 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda#461219d1a5bd61342293efa2c0c90eac https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda#8e6923fc12f1fe8f8c4e5c9f343256ac https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda#0a802cb9888dd14eeefc611f05c40b6e https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda#164fc43f0b53b6e3a7bc7dce5e4f1dc9 https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py312hdb49522_1.conda#64088dffd7413a2dd557ce837b4cbbdb -https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda#436c165519e140cb08d246a4472a9d6a +https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.3.0-py312h90b7ffd_0.conda#5b8c55fed2e576dde4b0b33693a4fdb1 +https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda#9272daa869e03efe68833e3dc7a02130 https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda#53abe63df7e10a6ba605dc5f9f961d36 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda#a22d1fd9bf98827e280a02875d9a007a -https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda#96a02a5c1a65470a7e4eedb644c872fd -https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda#db0c6b99149880c8ba515cf4abe93ee4 +https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda#eacc711330cd46939f66cd401ff9c44b +https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda#c65df89a0b2e321045a9e01d1337b182 https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda#84c5c40ea7c5bbc6243556e5daed20e7 -https://conda.anaconda.org/conda-forge/linux-64/cryptography-46.0.3-py312hee9fe19_0.conda#85ce285422e464eb1768aefd7d0d89f0 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef +https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py312h460c074_1.conda#648ee28dcd4e07a1940a17da62eccd40 +https://conda.anaconda.org/conda-forge/linux-64/cryptography-46.0.3-py312ha4b625e_1.conda#a42f7c8a15d53cdb6738ece5bd745d13 https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda#42834439227a4551b939beeeb8a4b085 https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.3.1-pyhd8ed1ab_0.conda#d4f3f31ee39db3efecb96c0728d4bdbf https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.4.0-pyhd8ed1ab_0.conda#a55b220de8970208f583e38639cfbecc https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2#269943ac6637718947763b4f989710fc -https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda#5c7a868f8241e64e1cf5fdf4962f23e2 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda#1bd2e65c8c7ef24f4639ae6e850dacc2 https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda#03fe290994c5e4ec17293cfb6bdce520 -https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda#4b69232755285701bc86a5afe4d9933a +https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda#b8993c19b0c32a2f7b66cbb58ca27069 https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda#8e662bd460bda79b1ea39194e3c4c9ab -https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda#9958d4a1ee7e9c768fe8f4fb51bd07ea +https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.1-pyhcf101f3_0.conda#11a2b8c732d215d977998ccd69a9d5e8 https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda#4f14640d58e2cc0aa0819d9d8ba125bb https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda#d6989ead454181f4f9bc987d3dc4e285 https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda#17232431f65ce347f972f0fd95d2e97a @@ -93,31 +94,31 @@ https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda#a77f https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py312h8a5da7c_0.conda#fba10c2007c8b06f77c5a23ce3a635ad https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda#7b2af124684a994217e62c641bca2e48 https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda#89d5edf5d52d3bc1ed4d7d3feef508ba -https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda#959484a66b4b76befcddc4fa97c95567 +https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda#de98449f11d48d4b52eefb354e2bfe35 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda#1500fccf5e46c7f91d14925449ff3632 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda#e6fd8cfb23b294da699e395dbc968d11 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda#98f75f2ca3a222992e2230d7afc54bb8 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2#e75b9c422bcc3c9b52679dedb84f3b71 https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda#9d1659c8332e9822e347e115e6bb4d0c -https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.11.0-2_h6ae95b6_openblas.conda#35d16498d50b73886cb30014c2741726 +https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.11.0-5_h6ae95b6_openblas.conda#e487a0e38d89da76410cb92a5db39ec5 https://conda.anaconda.org/conda-forge/linux-64/coin-or-utils-2.11.12-hc93afbd_7.conda#42539e27d7bf055ea723a66aa381c04b https://conda.anaconda.org/conda-forge/linux-64/coin-or-osi-0.108.11-hf4fecb4_8.conda#61fcb2852d3f1d6c120a941f66db032c -https://conda.anaconda.org/conda-forge/linux-64/coin-or-clp-1.17.10-hc03379b_3.conda#36a0b880feba1c1a14a37eb95b3d8dd6 -https://conda.anaconda.org/conda-forge/linux-64/coin-or-cgl-0.60.9-hc46dffc_6.conda#e98b685998df1badbaf1245f67b909a3 -https://conda.anaconda.org/conda-forge/linux-64/coin-or-cbc-2.10.12-h4d16d09_4.conda#603a1a18878030b5e6793ba558fac972 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda#6c8979be6d7a17692793114fa26916e8 -https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.3-pyhd8ed1ab_0.conda#abbe8c85619c87c4f4f61b44173434af +https://conda.anaconda.org/conda-forge/linux-64/coin-or-clp-1.17.10-hc03379b_4.conda#2646b9648d2cc643eddbe0e440f57fe6 +https://conda.anaconda.org/conda-forge/linux-64/coin-or-cgl-0.60.9-hc46dffc_7.conda#4a05507c2db2f1722e62fffc95510205 +https://conda.anaconda.org/conda-forge/linux-64/coin-or-cbc-2.10.12-h4d16d09_5.conda#06455c25d5ccaee980897ae4b5cf21f1 +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda#3687cc0b82a8b4c17e1f0eb7e47163d5 +https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda#d6bd3cd217e62bbd7efe67ff224cd667 https://conda.anaconda.org/conda-forge/noarch/amply-0.1.6-pyhd8ed1ab_1.conda#5a81866192811f3a0827f5f93e589f02 https://conda.anaconda.org/conda-forge/linux-64/pulp-2.8.0-py312hd0750ca_3.conda#1ade2915cfabbcb8f07e7b4387f4d49b -https://conda.anaconda.org/conda-forge/linux-64/psutil-7.1.3-py312h5253ce2_0.conda#82ce56c5a4a55165aed95e04923ab363 +https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.1-py312h5253ce2_0.conda#ff09ba570ce66446db523ea21c12b765 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda#019a7385be9af33791c989871317e1ed https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda#23029aae904a2ba587daba708208012f https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda#b38fe4e78ee75def7e599843ef4c1ab0 https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py312h868fb18_0.conda#3ffc5a3572db8751c2f15bacf6a0e937 -https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda#c7944d55af26b6d2d7629e27e9a972c1 +https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda#537296d57ea995666c68c821b00e360b https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda#870293df500ca7e18bedefa5838a22ab https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda#439cd0f567d697b20a8f45cb70a1005a -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda#341fd940c242cf33e832c0402face56f +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda#ada41c863af263cc4c5fcbaff7c3e4dc https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda#bbe1963f1e47f594070ffe87cdf612ea https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py312h8a5da7c_0.conda#f775a43412f7f3d7ed218113ad233869 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda#04558c96691bed63104678757beb4f8d @@ -125,18 +126,18 @@ https://conda.anaconda.org/conda-forge/linux-64/immutables-0.21-py312h4c3975b_2. https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda#7fe569c10905402ed47024fc481bb371 https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda#87f47a78808baf2fa1ea9c315a1e48f1 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda#7c14f3706e099f8fcd47af2d494616cc -https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.45-pyhff2d567_0.conda#b91d463ea8be13bcbe644ae8bc99c39f +https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda#74c0cfdd5359cd2a1f178a4c3d0bd3a5 https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2#e270fff08907db8691c02a0eda8d38ae https://conda.anaconda.org/conda-forge/noarch/conda-inject-1.3.2-pyhd8ed1ab_0.conda#e52c2a160d6bd0649c9fafdf0c813357 https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda#f4e90937bbfc3a4a92539545a37bb448 -https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.0-pyhdfd78af_0.conda#e28575d609ea3f36ff6b75dc1fb08396 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2#1e3d84ab0cd46fbf1dd4e5b290f7c7a5 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.0-pyhdfd78af_0.conda#6f481701e5b4494d77b37527f153a52c +https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda#71856e8d31fc4396cb4b3b57c9e7fb83 +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda#7d4f2bf739967798eb4d8c02d59cf36c +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda#01e79189d86f278322d0807f7d1dbada https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2#9b1db7127119f513696d620eefe7bf67 -https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.7-h813ae00_0.conda#e6923235c29720871fe86e6014ff0a2f +https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda#5c8827cadaa6c8d4b8e510cf3dbf0fa6 https://conda.anaconda.org/conda-forge/noarch/xarray-2025.6.1-pyhd8ed1ab_1.conda#145c6f2ac90174d9ad1a2a51b9d7c1dd https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda#9aa358575bbd4be126eaa5e0039f835c -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.1-hbc0de68_0.conda#968f50847d17c74a428fc47a2c70fd6f +https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.2-h04a0ce9_0.conda#bb88d9335d09e54c7e6b5529d1856917 https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda#aea31d2e5b1091feca96fcfe945c3cf9 https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.2-hb03c661_0.conda#8397539e3a0bbd1695584fb4f927485a https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-h17f619e_0.conda#6c77a605a7a689d17d4819c0f8ac9a00 @@ -144,57 +145,61 @@ https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda#9344 https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda#cd5a90476766d53e901500df9215e927 https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda#eecce068c7e4eddeb169591baac20ac4 https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda#172bf1cd1ff8629f2b1179945ed45055 -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda#f7f0d6cc2dc986d42ac2689ec88192be +https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda#920bb03579f15389b9e512095ad995b7 https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda#b499ce4b026493a13774bcf0f4c33849 https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda#c277e0a4d549b03ac1e9d6cbbe3d017b https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda#b38117a3c920364aff79f870c984b4a3 https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda#3f43953b7d3fb3aaa1d0d0723d91e368 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.17.0-h4e3cde8_0.conda#01e149d4a53185622dc2e788281961f2 -https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.0-hb72c0af_0.conda#438e75abf4d8c9c1d9e483b6c3f36282 -https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda#8b189310083baabfb622af68fd9d3ae3 -https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.3.0-h988505b_0.conda#eeecd6ccca69409a39ac99721a72f387 -https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.46-h1321c63_0.conda#7fa07cb0fb1b625a089ccc01218ee5b1 +https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.18.0-h4e3cde8_0.conda#0a5563efed19ca4461cf927419b6eb73 +https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.1-h99ae125_0.conda#8bbc19a6e87fbe8b97796e9a42a47a30 +https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.3.0-hd9031aa_1.conda#66a1db55ecdb7377d2b91f54cd56eafa +https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda#7a3bff861a6583f1889021facefc08b1 +https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda#ab3e3db511033340e75e7002e80ce8c0 https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda#9de5350a85c4a20c685259b889aa6393 https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda#915f5995e94f60e9a4826e0b0920ee88 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda#e7733bc6785ec009e47a224a71917e84 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda#e512be7dc1f84966d50959e900ca121f +https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda#3fdd8d99683da9fe279c2f4cecd1e048 +https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda#417955234eccd8f252b86a265ccdab7f https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda#c9f075ab2f33b3bbee9e62d4ad0a6cd8 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-devel-2.15.1-h26afc86_0.conda#1b92b7d1b901bd832f8279ef18cac1f4 +https://conda.anaconda.org/conda-forge/linux-64/libxml2-devel-2.15.1-he237659_1.conda#644b2a3a92ba0bb8e2aa671dd831e793 https://conda.anaconda.org/conda-forge/linux-64/geos-3.14.1-h480dda7_0.conda#4d4efd0645cd556fab54617c4ad477ef https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h46dd2a8_20.conda#df81fd57eacf341588d728c97920e86d https://conda.anaconda.org/conda-forge/linux-64/minizip-4.0.10-h05a5f5f_0.conda#da01bb40572e689bd1535a5cee6b1d68 https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h9dce30a_2.conda#ecb5d11305b8ba1801543002e69d2f2f https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-gpl_h2abfd87_119.conda#887245164c408c289d0cb45bd508ce5f -https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.51-h421ea60_0.conda#d8b81203d08435eb999baa249427884e +https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda#d361fa2a59e53b61c2675bfa073e5b7e https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda#d71d3a66528853c0a1ac2c02d79a0284 https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-haa4a5bd_1022.conda#00f0f4a9d2eb174015931b1a234d61ca +https://conda.anaconda.org/conda-forge/linux-64/libhwy-1.3.0-h4c17acf_1.conda#c2a0c1d0120520e979685034e0b79859 +https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda#72c8fd1af66bd67bf580645b426513ed +https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda#4ffbb341c8b616aa2494b6afb26a0c5f +https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda#366b40a69f0ad6072561c1d09301c886 +https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-ha09017c_8.conda#6e9bf4ce797d0216bd2a58298b6290b5 https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h280c20c_1002.conda#45161d96307e3a447cc3eb5896cf6f8c -https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.8.2-gpl_h7be2006_100.conda#9d0eaa26e3c5d7af747b3ddee928327b +https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.8.5-gpl_hc2c16d8_100.conda#5fdaa8b856683a5598459dead3976578 https://conda.anaconda.org/conda-forge/linux-64/json-c-0.18-h6688a6e_0.conda#38f5dbc9ac808e31c00650f7be1db93f https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda#3bf7b9fd5a7136126e0234db4b87c8b6 -https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.4-h1000f5c_4.conda#ff1966654a6cd1cf06a6e44c13e60b8a https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda#98b6c9dc80eb87b2519b97bcf7e578dd https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.conda#2c2fae981fd2afd00812c92ac47d023d -https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.10.3-hd23061b_26.conda#382afbed649320860cfe10ac86e11893 +https://conda.anaconda.org/conda-forge/linux-64/libgdal-core-3.12.1-hf05ffb4_0.conda#6ce4ad29c3ae0b74df813409433457ff https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda#f22f4d4970e09d68a10b922cbb0408d3 https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda#55c7804f428719241a90b152016085a1 https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda#e9b05deb91c013e5224672a4ba9cf8d1 https://conda.anaconda.org/conda-forge/noarch/affine-2.4.0-pyhd8ed1ab_1.conda#8c4061f499edec6b8ac7000f6d586829 -https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.4.3-py312h762fea3_3.conda#f02bbf618034615a013dd8afcf9a0899 +https://conda.anaconda.org/conda-forge/linux-64/rasterio-1.5.0-py312hcedc861_0.conda#f0d110978a87b200a06412b56b26407c https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py312h9b6a7d9_2.conda#573b9a879a3a42990f9c51d7376dce6b https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda#27583d44e139c520d9fdc1fd7aedd58d https://conda.anaconda.org/conda-forge/noarch/pyxlsb-1.0.10-pyhd8ed1ab_0.tar.bz2#0c14e44bc93a99cdc11398311c3c0dcf -https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.12.1-default_h7f8ec31_1002.conda#c01021ae525a76fe62720c7346212d74 +https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.12.1-default_hafda6a7_1003.conda#4fe840c6d6b3719b4231ed89d389bb17 https://conda.anaconda.org/conda-forge/linux-64/tbb-2022.3.0-h8d10470_1.conda#e3259be3341da4bc06c5b7a78c8bf1bd https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda#c94a5994ef49749880a8139cf9afcbe1 https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda#2eeb50cab6652538eee8fc0bc3340c81 https://conda.anaconda.org/conda-forge/linux-64/mumps-include-5.7.3-h82cca05_10.conda#d6c7d8811686ed912ed4317831dd8c44 https://conda.anaconda.org/conda-forge/linux-64/metis-5.1.0-hd0bcaf9_1007.conda#28eb714416de4eb83e2cbc47e99a1b45 -https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda#1bad2995c8f1c8075c6c331bf96e46fb -https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda#bf627c16aa26231720af037a2709ab09 -https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda#f61edadbb301530bd65a32646bd81552 -https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda#68eae977d7d1196d32b636a026dc015d -https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-15.2.0-h69a702a_14.conda#ab557953cdcf9c483e1d088e0d8ab238 +https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.2-hb03c661_0.conda#dfd6129671f782988d665354e7aa269d +https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.2-ha02ee65_0.conda#a159fe1e8200dd67fa88ddea9169d25a +https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda#de60549ba9d8921dff3afa4b179e2a4b +https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.2-ha02ee65_0.conda#d34b831f6d6a9b014eb7cf65f6329bba +https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-15.2.0-h69a702a_16.conda#e5eb2ddedabd0063e442f230755d2062 https://conda.anaconda.org/conda-forge/linux-64/libscotch-7.0.4-h2fe6a88_5.conda#dd1e1c54432494476d66c679014c675c https://conda.anaconda.org/conda-forge/linux-64/mumps-seq-5.7.3-h27a6a8b_0.conda#d524b41c7757ea147337039fa4158fbb https://conda.anaconda.org/conda-forge/linux-64/libspral-2025.05.20-hfabd9d1_1.conda#9f54808199531c466b437215d8dd5c29 @@ -206,9 +211,9 @@ https://conda.anaconda.org/conda-forge/linux-64/pyscipopt-5.6.0-py312h1289d80_1. https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda#3449ef730c7d483adde81993994092b9 https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.2-py312h383787d_2.conda#69e400d3deca12ee7afd4b73a5596905 https://conda.anaconda.org/conda-forge/noarch/patsy-1.0.2-pyhcf101f3_0.conda#8678577a52161cc4e1c93fcc18e8a646 -https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.5-py312h4f23490_1.conda#35b9b77a76cf6b17872513ba57bcc975 +https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.6-py312h4f23490_0.conda#423b8676bd6eed60e97097b33f13ea3f https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda#353823361b1d27eb3960efb076dfcaf6 -https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.1-hde8ca8f_0.conda#49c832bff803d95a56190e7992b4b230 +https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.2-hceb46e0_1.conda#40feea2979654ed579f1cda7c63ccb94 https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda#11b3379b191f63139e29c0d19dee24cd https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb03c661_1.conda#1dafce8548e38671bea82e3f5c6ce22f https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb03c661_1.conda#b2895afaf55bf96a8c8282a2e47a5de0 @@ -216,18 +221,15 @@ https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002. https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda#92ed62436b625154323d40d5f2f11dd7 https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.1-h73754d4_0.conda#8e7251989bca326a28f4a5ffbd74557a https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.1-ha770c72_0.conda#f4084e4e6577797150f9b04a4560ceb0 -https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda#000e85703f0fd9594c81710dd5066471 -https://conda.anaconda.org/conda-forge/linux-64/pillow-12.0.0-py312h50c33e8_2.conda#f2aef8ecea68f4d35330f0c48949bff2 +https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda#6f2e2c8f58160147c4d1c6f4c14cbac4 +https://conda.anaconda.org/conda-forge/linux-64/pillow-12.1.0-py312h50c33e8_0.conda#923b06ad75b7acc888fa20a22dc397cd https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py312h0a2e395_2.conda#3a3004fddd39e3bb1a631b08d7045156 https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.1-ha770c72_0.conda#4afc585cd97ba8a23809406cd8a9eda8 https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-17.0.0-py312h4c3975b_1.conda#a0b8efbe73c90f810a171a6c746be087 https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda#37293a85a0f4f77bbd9cf7aaefc62609 -https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda#72c8fd1af66bd67bf580645b426513ed -https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda#4ffbb341c8b616aa2494b6afb26a0c5f -https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda#366b40a69f0ad6072561c1d09301c886 https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.2.0-hb03c661_1.conda#af39b9a8711d4a8d437b52c1d78eb6a1 https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-hed03a55_1.conda#8ccf913aaba749a5496c17629d859ed1 -https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.61.0-py312h8a5da7c_0.conda#a214816edb28136aabcfad864b3a445b +https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.61.1-py312h8a5da7c_0.conda#3bf8fb959dc598c67dac0430b4aff57a https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda#4c2a8fef270f6c69591889b93f9f55c1 https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312hd9148b4_3.conda#86cf7a7d861b79d38e3f0e5097e4965b https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py312he3d6523_0.conda#b8dc157bbbb69c1407478feede8b7b42 @@ -238,62 +240,33 @@ https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.cond https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2#9a66894dfd07c4510beb6b3f9672ccc0 https://conda.anaconda.org/conda-forge/linux-64/numexpr-2.14.1-py312h88efc94_101.conda#f31fa7178c477ce82dfb47273582de15 https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda#01ba04e414e47f95c03d6ddd81fd37be -https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda#c74d83614aec66227ae5199d98852aaf +https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda#d58cd79121dd51128f2a5dab44edf1ea https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.22.0-hc31b594_1.conda#52019609422a72ec80c32bbc16a889d8 https://conda.anaconda.org/conda-forge/linux-64/pytables-3.10.2-py312hefc0c3f_10.conda#e5bb2b09278f18b76ace60e809d8057c -https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda#dc257b7e7cad9b79c1dfba194e92297b -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda#dbf8b81974504fa51d34e436ca7ef389 -https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 -https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c -https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 -https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc -https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 -https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 -https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda#7d9daffbb8d8e0af0f769dbbcd173a54 -https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda#d0d408b1f18883a944376da5cf8101ea -https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 -https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 -https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 -https://conda.anaconda.org/conda-forge/noarch/ipython-9.7.0-pyh53cf698_0.conda#2d6b86a2e11b8cb2f20a432158ef10b9 -https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda#d68e3f70d1f068f1b66d94822fdc644e -https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.2-py312h4c3975b_2.conda#2f03dbd34c9706d67b7c9ee815cc89ef -https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda#a587892d3c13b6621a6091be690dbca2 -https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.conda#8035e5b54c08429354d5d64027041cad -https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 -https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 -https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda#3399d43f564c905250c1aea268ebb935 -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda#4ebae00eae9705b0c3d6d1018a81d047 -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.17-py312h8285ef7_0.conda#14938d17d7a91e2bf132330c7f2f61a2 -https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyha191276_0.conda#c6f63cfe66adaa5650788e3106b6683a -https://conda.anaconda.org/conda-forge/noarch/pydeck-0.8.0-pyhd8ed1ab_0.tar.bz2#176b16002a5423169bf0f4b4c0ebecaf -https://conda.anaconda.org/conda-forge/noarch/narwhals-2.12.0-pyhcf101f3_0.conda#02cab382663872083b7e8675f09d9c21 -https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.0-pyhd8ed1ab_0.conda#6d4c79b604d50c1140c32164f7eca72a +https://conda.anaconda.org/conda-forge/noarch/pydeck-0.9.1-pyhd8ed1ab_0.conda#4b13d1d2d5cba37be9fa3c0922bbf995 +https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda#37926bb0db8b04b8b99945076e1442d0 +https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda#7702bcd70891dd0154d765a69e1afa94 https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda#a7b27c075c9b7f459f1c022090697cba https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda#bd77f8da987968ec3927990495dc22e4 https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.2-h39aace5_0.conda#791365c5f65975051e4e017b5da3abf5 https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.3-nompi_h11f7409_103.conda#3ccff1066c05a1e6c221356eecc40581 -https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.4-py312h4f23490_2.conda#ff4b5976814bc00861f962276c8fb87f -https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py312hf6400b3_100.conda#ed7ab4073fe4c48d0f9d3a80b6a17f74 +https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_1.conda#84bf349fad55056ed326fc550671b65c +https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py312h25f8dc5_102.conda#99217b58c029977345b72bb36a1f6596 https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda#c07a6153f8306e45794774cf9b13bd32 -https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.35.2-py310hffdcd12_0.conda#2b90c3aaf73a5b6028b068cf3c76e0b7 -https://conda.anaconda.org/conda-forge/noarch/polars-1.35.2-pyh6a1acc5_0.conda#24e8f78d79881b3c035f89f4b83c565c +https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 +https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 +https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f +https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.37.1-py310hffdcd12_0.conda#732a536c6ce768f096f5340121e10cc5 +https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda#1894d4373da653406c91e20ef89f05c8 https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250512.1-cxx17_hba17884_0.conda#83b160d4da3e1e847bf044997621ed63 https://conda.anaconda.org/conda-forge/linux-64/protobuf-6.31.1-py312hb8af0ac_2.conda#2aaf8d6c729beb30d1b41964e7fb2cd6 https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda#b22fe9a3d53bc833659823e48f879db9 https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2#c965a5aa0d5c1c37ffc62dff36e28400 -https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.7.1-py312h03f33d3_1.conda#e177c8834a368f6e9691017d4e85f0ac +https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_1.conda#68f704ea294dcec9e09edd9c3d233846 https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda#ba7f04ba62be69f9c9fef0c4487c210b https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h7b12aa8_0.conda#a30848ebf39327ea078cf26d114cff53 https://conda.anaconda.org/conda-forge/linux-64/re2-2025.11.05-h5301d42_0.conda#0227d04521bc3d28c7995c7e1f99a721 -https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_2.conda#94cb88daa0892171457d9fdc69f43eca +https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_4.conda#07479fc04ba3ddd5d9f760ef1635cfa7 https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.73.1-h3288cfb_1.conda#ff63bb12ac31c176ff257e3289f20770 https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.73.1-py312h6f3464c_1.conda#dca50c100d8d67882ada32756810372f https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda#003094932fb90de018f77a273b8a509b @@ -303,52 +276,53 @@ https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda#58958 https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_1.conda#644bd4ca9f68ef536b902685d773d697 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda#ddf01a1d87103a152f725c7aeabffa29 https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda#c689b62552f6b63f32f3322e463f3805 -https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.2-pyhd8ed1ab_0.conda#9c265afcec13eb6e844ae51b4a4b52ad https://conda.anaconda.org/conda-forge/linux-64/propcache-0.3.1-py312h178313f_0.conda#0cf580c1b73146bb9ff1bbdb4d4c8cf9 -https://conda.anaconda.org/conda-forge/linux-64/multidict-6.6.3-py312h178313f_0.conda#f4e246ec4ccdf73e50eefb0fa359a64e +https://conda.anaconda.org/conda-forge/linux-64/multidict-6.7.0-py312h8a5da7c_0.conda#9fe4c848dd01cde9b8d0073744d4eef8 https://conda.anaconda.org/conda-forge/linux-64/yarl-1.22.0-py312h8a5da7c_0.conda#6a3fd177315aaafd4366930d440e4430 https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.7.0-py312h447239a_0.conda#63e20cf7b7460019b423fc06abb96c60 https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda#421a865222cd0c9d83ff08bc78bf3a61 https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda#18fd895e0e775622906cdabfc3cf0fb4 -https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.13.2-py312h27b7581_0.conda#ad84ca57d502eead2df0233090261dfb -https://conda.anaconda.org/conda-forge/noarch/google-auth-2.43.0-pyhd8ed1ab_0.conda#5b33d9974cab063dcf39e8671ddee1c1 -https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.26.1-pyhd8ed1ab_0.conda#6fcfcf4432cd80d05ee9c6e20830bd36 -https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda#4f543962961d34db6b5c72ebe827caf7 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda#862b63f7548be0c97e9c6f4f85959189 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.6.0-pyhcf101f3_0.conda#d079010d36f98b32766aa3a4aed57306 +https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.13.3-py312h5d8c7f2_0.conda#7ee12bbdb2e989618c080c7c611048db +https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda#fa0d1dbb4ae73ca3636fe64ed0632a42 +https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.27.0-pyhd8ed1ab_0.conda#1099a038989e7f4037d3ce21e8ee9f2c +https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda#7fd8158ff94ccf28a2ac1f534989d698 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda#48fcccc0b579087018df0afc332b8bd6 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda#d05f7e8724ceb2a77edf3e39cc7760bb https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2#7b6747d7cc2076341029cff659669e8b https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 -https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.10.0-pyhd8ed1ab_0.conda#d18004c37182f83b9818b714825a7627 -https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhd8ed1ab_0.conda#fcac5929097ba1f2a0e5b6ecaa13b253 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.11.0-pyhcf101f3_0.conda#91549f296c15ef7b49ee6600e7c934c1 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 +https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda#1daaf94a304a27ba3446a306235a37ea +https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda#61b8078a0905b12529abc622406cb62c +https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda#91e3b2a0d014ac032c066a2e18051686 https://conda.anaconda.org/conda-forge/linux-64/bottleneck-1.6.0-np2py312hfb8c2c5_3.conda#99981dfd6b851dba87c43b5f895e6d6a -https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_0.conda#2b6cde24a62b353a81664bb219674183 +https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda#8f46def45efc90f7462e476e3fdb3de0 https://conda.anaconda.org/conda-forge/linux-64/rapidfuzz-3.14.3-py312h1289d80_1.conda#bce14345fd01c051c51884878cfd053d https://conda.anaconda.org/conda-forge/linux-64/levenshtein-0.27.3-py312h1289d80_0.conda#5b323b1b5edd0359606d7e53779a8b82 https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda#16933322051fa260285f1a44aae91dd6 -https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.11.0-py312h02b19dd_0.conda#b4e4e057ab327b7a1270612587a75523 +https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.12.1-py312h053e1f3_0.conda#f8e7e5ddfbdca16b65335b0b6615eb4c https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda#cc293b4cad9909bf66ca117ea90d4631 -https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.1-pyha770c72_1.conda#23e25e079cd0108ec9cbae779ef4b685 +https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.2-pyha770c72_0.conda#ca79e96c1fd39ab6d12c8f99968111b1 https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda#1fcdf88e7a8c296d3df8409bf0690db4 https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda#a6997a7dcd6673c0692c61dfeaea14ab -https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.1-pyhd8ed1ab_1.conda#99baf7d3c98e77f22972757af7e774f8 -https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.4-pyhd8ed1ab_0.conda#67586682c0e1c17a2fb59386746c2a14 -https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda#146402bf0f11cbeb8f781fa4309a95d3 -https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda#d2732eb636c264dc9aa4cbee404b1a53 +https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda#3b9d40bef27d094e48bb1a821e86a252 +https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda#1cfa64a0a8211bafbb05e9b8f7e472c8 +https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda#385dca77a8b0ec6fa9b92cb62d09b43b +https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda#72e780e9aa2d0a3295f59b1874e3768b https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda#827064ddfe0de2917fb29f1da4f8f533 https://conda.anaconda.org/conda-forge/noarch/isort-7.0.0-pyhd8ed1ab_0.conda#55a61979242077b2cc377c74326ea9f0 -https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda#eec5b361dbbaa69dba05050977a414b0 -https://conda.anaconda.org/conda-forge/linux-64/astroid-4.0.2-py312h7900ff3_0.conda#01ddf9d3e4a39c3f032ba14ad91bdc82 +https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda#080a808fce955026bf82107d955d32da +https://conda.anaconda.org/conda-forge/linux-64/astroid-4.0.3-py312h7900ff3_0.conda#d52bf8682166142541a533c7a15d4780 https://conda.anaconda.org/conda-forge/noarch/pylint-4.0.4-pyhcf101f3_0.conda#3a830511a81b99b67a1206a9d29b44b3 -https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda#66b8b26023b8efdf8fcb23bac4b6325d +https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda#2cfaaccf085c133a477f0a7a8657afe9 https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda#003b8ba0a94e2f1e117d0bd46aebc901 -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda#cfccfd4e8d9de82ed75c8e2c91cab375 -https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda#7ba3f09fceae6a120d664217e58fe686 +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda#6b0259cea8ffa6b66b35bae0ca01c447 +https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda#eb52d14a901e23c39e9e7b4a1a5c015f https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py312hd9148b4_6.conda#f30ece80e76f9cc96e30cc5c71d2818e -https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda#25f954b7dae6dd7b0dc004dab74f1ce9 +https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda#8bc5851c415865334882157127e75799 https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda#381bd45fb7aa032691f3063aff47e3a1 -https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda#af8d4882203bccefec6f1aeed70030c6 +https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda#7f3ac694319c7eaf81a0325d6405e974 https://conda.anaconda.org/conda-forge/noarch/xlrd-2.0.2-pyhd8ed1ab_0.conda#91f5637b706492b9e418da1872fd61ce https://conda.anaconda.org/conda-forge/noarch/unidecode-1.4.0-pyhcf101f3_1.conda#53cb4b14ab0841e104e2bd11ee64b840 https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda#62ed8c560f1b5b8d74ed11e68e9ae223 @@ -356,12 +330,13 @@ https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.cond https://conda.anaconda.org/conda-forge/linux-64/openpyxl-3.1.5-py312h7f6eeab_2.conda#868d486c51b475998e3b5ea814591ccc https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda#43dd16b113cc7b244d923b630026ff4f https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda#40182a8d62a61d147ec7d3e4c5c36ac2 -https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda#18c019ccf43769d211f2cf78e9ad46c2 +https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda#fcbe3971b6017792e9b24ff451daa7f5 https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda#5267bef8efea4127aacd1f4e1f149b6e https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda#3181cf53cd50513a1a7c00aae2f08e7a https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda#193a9e54636d8d70781a3e56370f5502 -https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda#153f1b172beb7f5df84a78b2bde02f24 -https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhd8ed1ab_1.conda#71abbefb6f3b95e1668cd5e0af3affb9 +https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda#3c806a133fb9e59dca249c5a00c2ab3e +https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhcf101f3_1.conda#e1bccffd88819e75729412799824e270 +https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py312h4c3975b_0.conda#e03a4bf52d2170d64c816b2a52972097 https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.12-h4f16b4b_0.conda#db038ce880f100acc74dba10302b5630 https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda#febbab7d15033c913d53c7a2c102309d https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.6-hb9d3cd8_0.conda#5efa5fa6243a622445fdfd72aee15efa @@ -383,14 +358,14 @@ https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2. https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.6-hb03c661_0.conda#4d1fc190b99912ed557a8236e958c559 https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-hd6090a7_1.conda#035da2e4f5770f036ff704fa17aace24 https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.46-hb03c661_0.conda#71ae752a748962161b4740eaff510258 -https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.0-hca5e8e5_0.conda#aa65b4add9574bb1d23c76560c5efd4c +https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.1-hca5e8e5_0.conda#2bca1fbb221d9c3c8e3a155784bbc2e9 https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda#372a62464d47d9e966b630ffae3abe73 https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.8-hb9d3cd8_0.conda#7c7927b404672409d9917d49bff5f2d6 https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda#cae723309a49399d2949362f4ab5c9e4 https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.10-he970967_0.conda#2e5bf4f1da39c0b32778561c3c4e5878 -https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-h5c52fec_2.conda#a8ac9a6342569d1714ae1b53ae2fcadb -https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.6-hf7376ad_0.conda#8aa154f30e0bc616cbde9794710e0be2 -https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.2-h32235b2_0.conda#0cb0612bc9cb30c62baf41f9d600611b +https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda#c39da2ad0e7dd600d1eb3146783b057d +https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda#1a2708a460884d6861425b7f9a7bef99 +https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.3-h6548e54_0.conda#034bea55a4feef51c98e8449938e9cee https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda#434ca7e50e40f4918ab701e3facd59a0 https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_2.conda#c8013e438185f33b13814c5c488acd5c https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda#928b8be80851f5d8ffb016f9c81dae7a @@ -398,8 +373,8 @@ https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_2.conda#c1 https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda#70e3400cbbfa03e96dcde7fc13e38c7b https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.125-hb03c661_1.conda#9314bc5a1fe7d1044dc9dfd3ef400535 https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-hb8b1518_5.conda#d4a250da4737ee127fb1fa6452a9002e -https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.6-default_h746c552_0.conda#f5b64315835b284c7eb5332202b1e14b -https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.6-default_h99862b1_0.conda#0fcc9b4d3fc5e5010a7098318d9b7971 +https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.8-default_h746c552_1.conda#e00afd65b88a3258212661b32c1469cb +https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.8-default_h99862b1_1.conda#e933f92cedca212eb2916f24823cf90b https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda#2cd94587f3a401ae05e03a6caf09539d https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda#c01af13bdc553d1a8fbfff6e8db075f0 https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda#49023d73832ef61042f6a237cb2687e7 @@ -409,37 +384,43 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda#a7970cd949a077b7cb9696379d338681 https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda#8f5b0b297b59e1ac160ad4beec99dbee -https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda#09262e66b19567aff4f592fb53b28760 -https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.2.0-h15599e2_0.conda#b8690f53007e9b5ee2c2178dd4ac778c -https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.1-h5888daf_0.conda#bfd56492d8346d669010eccafe0ba058 +https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-he90730b_1.conda#bb6c4808bfa69d6f7f6b07e5846ced37 +https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda#1ea5ed29aea252072b975a232b195146 +https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_0.conda#dbe3ec0f120af456b3477743ffd99b74 https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda#ce96f2f470d39bd96ce03945af92e280 -https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.14-hb9d3cd8_0.conda#76df83c2a9035c54df5d04ff81bcc02d -https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.9.3-h5c1c036_1.conda#762af6d08fdfa7a45346b1466740bacd +https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda#dcdc58c15961dbf17a0621312b01f5cb +https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.10.1-hb82b983_4.conda#f4dfd61ec958d420bebdcefeb805d658 https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda#87e6096ec6d542d1c1f8b33245fe8300 https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda#7df50d44d4a14d6c31a2c54f2cd92157 -https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.9.3-py312h9da60e5_1.conda#30e8545156cab1f5ff0fe9f0297c77c6 +https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py312h9da60e5_0.conda#dda0a61b6186fc914cf6c1581f64229d https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py312h7900ff3_0.conda#2a7663896e5aab10b60833a768c4c272 https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.2-py312h63ddcf0_2.conda#a12c2fbcb3a5a7fa24e5fb8468368b1b -https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf5-3.10.3-h966a9c2_26.conda#53061657b22c54dc30156f6222b2f776 -https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf4-3.10.3-ha810028_26.conda#0f04cfeb00c3d16000d9809089f50df9 -https://conda.anaconda.org/conda-forge/linux-64/libgdal-netcdf-3.10.3-ha526aae_26.conda#aa9afc029052e8ef8c7e49c4dea6fbec +https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf5-3.12.1-h966a9c2_0.conda#c7b8e4edbc3674c4b54c9daee0a8345b +https://conda.anaconda.org/conda-forge/linux-64/libgdal-hdf4-3.12.1-ha810028_0.conda#3e8adce1a37012c233a68789594e29cf +https://conda.anaconda.org/conda-forge/linux-64/libgdal-netcdf-3.12.1-ha526aae_0.conda#7985a2b9b8434e9a20f2edecc326bb1a https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-pyhd8ed1ab_0.conda#2f1ed718fcd829c184a6d4f0f2e07409 -https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda#efba281bbdae5f6b0a1d53c6d4a97c93 -https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda#938c8de6b9de091997145b3bf25cdbf9 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda#a1e91db2d17fd258c64921cb38e6745a +https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda#7d9daffbb8d8e0af0f769dbbcd173a54 +https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda#17b43cee5cc84969529d5d0b0309b2cb +https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda#645026465469ecd4989188e1c4e24953 +https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda#a587892d3c13b6621a6091be690dbca2 +https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.conda#8035e5b54c08429354d5d64027041cad +https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda#3399d43f564c905250c1aea268ebb935 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda#7526d20621b53440b0aae45d4797847e https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda#f6d7aa696c67756a650e91e15e88223c https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda#e51f1e4089cad105b6cac64bd8166587 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda#6bb0d77277061742744176ab555b723c -https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda#f5a4d548d1d3bdd517260409fc21e205 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda#8a3d6d0523f66cf004e563a50d9392b3 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda#00f5b8dafa842e0c27c1cd7296aa4875 +https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda#b11e360fc4de2b0035fc8aaa74f17fd6 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda#fd312693df06da3578383232528c468d https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda#2841eb5bfc75ce15e9a0054b98dcd64d -https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.0-pyhcf101f3_0.conda#2caf483992d5d92b232451f843bdc8af +https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda#c0d0b883e97906f7524e2aac94be0e0d https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda#b1a27250d70881943cca0dd6b4ba0956 https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda#08a03378bc5293c6f97637323802f480 https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda#cfc86ccc3b1de35d36ccaae4c50391f5 -https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda#2d983ff1b82a1ccb6f2e9d8784bdd6bd +https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda#7b8bace4943e0dc345fc45938826f2b8 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda#36de09a8d3e5d5e6f4ee63af49e59706 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda#a61bf9ec79426938ff785eb69dbb1960 @@ -447,41 +428,62 @@ https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda#e7cb0f5745e4c5035a460248334af7eb https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda#9b965c999135d43a3d0f7bd7d024e26a https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda#7234f99325263a5af6d4cd195035e8f2 -https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py312h7900ff3_2.conda#eeaf37c3dc2d1660668bd102c841f783 +https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda#cd2214824e36b0180141d422aba01938 https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda#85c4f19f377424eafc4ed7911b291642 https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda#0b0154421989637d424ccf0f104be51a https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2#576d629e47797577ab0f1b351297ef4a https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2#9b347a7ec10940d3f7941ff6c460b551 https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda#d3549fd50d450b6d9e7dddff25dd2110 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda#13e31c573c884962318a738405ca3487 +https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda#8368d58342d0825f0843dc6acdd0c483 https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda#f56000b36f09ab7533877e695e4e8cb0 https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py312h4c3975b_2.conda#1567f06d717246abab170736af8bad1b https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda#8ac12aff0860280ee0cff7fa2cf63f3b https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda#d79a87dcfa726bcea8e61275feed6f83 https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda#e7f89ea5f7ea9401642758ff50a2d9c1 -https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda#0fc93f473c31a2f85c0bde213e7c63ca +https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda#8d5f66ebf832c4ce28d5c37a0e76605c https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda#0a01c169f0ab0f91b26e77a3301fbfe4 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda#a63877cb23de826b1620d3adfccc4014 https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda#62b7c96c6cd77f8173cc5cada6a9acaa -https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda#d9d0f99095a9bb7e3641bca8c6ad2ac7 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda#e6dc3d6bf1591f0ebe8e77959e950660 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 +https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 +https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 +https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c +https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 +https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc +https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda#d0d408b1f18883a944376da5cf8101ea +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 +https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 +https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 +https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 +https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda#8481978caa2f108e6ddbf8008a345546 +https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.18-py312h8285ef7_0.conda#4d7e170b575fc405dc106927a2f0a311 +https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 +https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyha191276_0.conda#c6f63cfe66adaa5650788e3106b6683a +https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda#04d2e5fba67e5a1ecec8e25d6c769004 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda#513e7fcc06c82b24c84ff88ece13ac9f https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda#c85c76dc67d75619a92f51dfbce06992 -https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.0-pyhcf101f3_0.conda#3cf7402eb77b6434e830b6863a0e6118 +https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda#47b58fa741a608dac785b71b8083bdb7 https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda#6d034d3a6093adbba7b24cb69c8c621e https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda#801dbf535ec26508fac6d4b24adfb76e +https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-3.6.10-pyhd8ed1ab_0.conda#4d52bbdb661dc1b5a1c2aeb1afcd9a67 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda#05a08b368343304618b6a88425aa851a +https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-pyhd8ed1ab_2.conda#2f0ba4bc12af346bc6c99bdc377e8944 +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.8.5-pyhd8ed1ab_0.conda#47672c493015ab57d5fcde9531ab18ef https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda#9453512288d20847de4356327d0e1282 https://conda.anaconda.org/conda-forge/linux-64/jpype1-1.6.0-py312hd9148b4_1.conda#e49867483039df96221d655dc0347728 -https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.0-py312_0.conda#ef0ccf2535c1ad7699b19ec5831b7c4e +https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.1-py312_0.conda#a1841f5378cf8df084e4807c6f724b2e https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda#f9f81ea472684d75b9dd8d0b328cf655 https://conda.anaconda.org/conda-forge/linux-64/pango-1.56.4-hadf4263_0.conda#79f71230c069a287efe3a8614069ddf1 https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda#c379d67c686fb83475c1a6ed41cc41ff https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.60.0-h61e6d4b_0.conda#91e6d4d684e237fba31b9815c4b40edf -https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h6f5c62b_11.conda#68fc66282364981589ef36868b1a7c78 +https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h5fbf134_12.conda#88c1c66987cd52a712eea89c27104be6 https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda#4d8df0b0db060d33c9a702ada998a8fe https://conda.anaconda.org/conda-forge/linux-64/xorg-libxinerama-1.1.5-h5888daf_1.conda#5e2eb9bf77394fc2e5918beefec9f9ab https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2#bbf6f174dcd3254e19a2f5d2295ce808 -https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.86.2-hf516916_0.conda#14ad79cb7501b6a408485b04834a734c -https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda#7c21106b851ec72c037b162c216d8f05 +https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.86.3-hf516916_0.conda#fd6acbf37b40cbe919450fa58309fbe1 +https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hb03c661_0.conda#aa8d21be4b461ce612d8f5fb791decae https://conda.anaconda.org/conda-forge/linux-64/libglx-devel-1.7.0-ha4b6fd6_2.conda#27ac5ae872a21375d980bd4a6f99edf3 https://conda.anaconda.org/conda-forge/linux-64/libgl-devel-1.7.0-ha4b6fd6_2.conda#53e7cbb2beb03d69a478631e23e340e9 https://conda.anaconda.org/conda-forge/linux-64/libegl-devel-1.7.0-ha4b6fd6_2.conda#b513eb83b3137eca1192c34bf4f013a7 @@ -491,29 +493,29 @@ https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.t https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2#6b889f174df1e0f816276ae69281af4d https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda#f9f33c65b20e6a61f21714785e3613ec https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda#b3f0179590f3c0637b7eb5309898f79e -https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.0.5-h8b86629_0.conda#0447770fe9c9329beb44474c3f4d3096 +https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.1-h8b86629_0.conda#4cf37d6ca8783d52c080bd277ebc1ab3 https://conda.anaconda.org/conda-forge/linux-64/glpk-5.0-h445213a_0.tar.bz2#efc4b0c33bdf47312ad5a8a0587fa653 https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda#9f9840fb1c2e009fb0009a2f9461e64a -https://conda.anaconda.org/conda-forge/linux-64/fiona-1.10.1-py312h02b19dd_3.conda#e8cf2f37c1cb279c64a5d1a65721fbc6 +https://conda.anaconda.org/conda-forge/linux-64/fiona-1.10.1-py312h053e1f3_6.conda#a68cae58a81a937a6edcb3e4e6f0bbe7 https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda#4a25cae637029c5589135903aa15b3b6 https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py312hd9148b4_1.conda#2e489969e38f0b428c39492619b5e6e5 -https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda#bf74a83f7a0f2a21b5d709997402cac4 -https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.1-py312hf79963d_2.conda#d489739e10134df6839ee4a80060dc26 +https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda#5498feb783ab29db6ca8845f68fa0f03 +https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.5-py312hf79963d_0.conda#86a969eeb489119374ec1d2e863777e6 https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda#c56a7fa5597ad78b62e1f5d21f7f8b8f https://conda.anaconda.org/conda-forge/noarch/zarr-3.1.5-pyhcf101f3_0.conda#c1844a94b2be61bb03bbb71574a0abfc -https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhd8ed1ab_0.conda#982aa48accc06494cbd2b51af69e17c7 -https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.1-pyhd8ed1ab_0.conda#434061aaa26dafd0e21a6184f6fb52bf +https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda#8e7be844ccb9706a999a337e056606ab +https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda#77ae41598d63b453bb3c9052f4a14c4b https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda#a0a4a3035667fc34f29bfbd5c190baa6 https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py312h868fb18_1.conda#56a776330a7d21db63a7c9d6c3711a04 https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda#2934f256a8acfe48f6ebb4fce6cde29c https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda#c3946ed24acdb28db1b5d63321dbca7d https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py312ha4f8f14_101.conda#23965cb240cb534649dfe2327ecec4fa -https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda#4ce3dfa4440b4aa5364f4a6fcc3d7cb3 +https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda#5f394d6ab27b83833789bbe6bcf87518 https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_1.conda#972bdca8f30147135f951847b30399ea -https://conda.anaconda.org/conda-forge/noarch/botocore-1.41.5-pyhd8ed1ab_0.conda#14350e9c15a4f69bf9ca92db6cea7e36 -https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.15.0-pyhd8ed1ab_0.conda#fc70a7ca6da2b4f8ede5409b673a8b72 -https://conda.anaconda.org/conda-forge/noarch/boto3-1.41.5-pyhd8ed1ab_0.conda#6d4bd063f1efa1241b3de028dba873ea -https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.2-hfe17d71_0.conda#5641725dfad698909ec71dac80d16736 +https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda#82b5c1f7d596ddd3bf5c096c1204a553 +https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda#061b5affcffeef245d60ec3007d1effd +https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda#524a4e4a5961300edb23f363225f617a +https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda#1247168fe4a0b8912e3336bccdbf98a5 https://conda.anaconda.org/conda-forge/linux-64/orc-2.2.1-hd747db4_0.conda#ddab8b2af55b88d63469c040377bd37e https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda#a83f6a2fdc079e643237887a37460668 https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda#16c2a0e9c4a166e53632cfca4f68d020 @@ -528,53 +530,53 @@ https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.11.0 https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.15.0-h2a74896_1.conda#ffd553ff98ce5d74d3d89ac269153149 https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.13.0-hf38f1be_1.conda#f10b9303c7239fbce3580a60a92bcf97 https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.13.2-h3a5f585_1.conda#4e921d9c85e6559c60215497978b3cdb -https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.5-hb03c661_1.conda#f1d45413e1c41a7eff162bf702c02cea -https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h7e655bb_3.conda#70e83d2429b7edb595355316927dfbea -https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.7-h7e655bb_4.conda#83a6e0fc73a7f18a8024fc89455da81c -https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.0-h8399546_1.conda#8dbc626b1b11e7feb40a14498567b954 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.10-h346e085_1.conda#7e6b378cfb6ad918a5fa52bd7741ab20 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.23.3-ha76f1cc_3.conda#14d9fc6b1c7a823fca6cf65f595ff70d -https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.1-h7e655bb_8.conda#1baf55dfcc138d98d437309e9aba2635 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.7-hc5c8343_4.conda#b6fdadda34f2a60870980607ef469e39 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.1-h7ca4310_7.conda#6e91a9182506f6715c25c3ab80990653 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.10.1-hcb69869_2.conda#3bcec65152e70e02e8d17d296c056a82 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.13.3-h3a25ec9_10.conda#f329cc15f3b4559cab20646245c3fc9b -https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.6-h3cb25bf_6.conda#874d910adf3debe908b1e8e5847e0014 -https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.35.2-h2ceb62e_4.conda#363b3e12e49cecf931338d10114945e9 -https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.606-hd6e39bc_7.conda#0f7a1d2e2c6cdfc3864c4c0b16ade511 -https://conda.anaconda.org/conda-forge/linux-64/libarrow-22.0.0-h773bc41_4_cpu.conda#9d89be0b1ca8be7eedf821a365926338 -https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-22.0.0-h8c2c5c3_4_cpu.conda#fdecd3d6168561098fa87d767de05171 -https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_0_cpu.conda#7fe5934d9aa025b4e5c8708718c4dafb +https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.6-hb03c661_0.conda#e36ad70a7e0b48f091ed6902f04c23b8 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h8b1a151_4.conda#c7e3e08b7b1b285524ab9d74162ce40b +https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.7-h8b1a151_5.conda#68da5b56dde41e172b7b24f071c4b392 +https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda#bade189a194e66b93c03021bd36c337b +https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.13-h2c9d079_1.conda#3c3d02681058c3d206b562b2e3bc337f +https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.23.3-hdaf4b65_5.conda#132e8f8f40f0ffc0bbde12bb4e8dd1a1 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.1-h8b1a151_9.conda#f7ec84186dfe7a9e3a9f9e5a4d023e75 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.7-ha8fc4e3_5.conda#3028f20dacafc00b22b88b324c8956cc +https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.3-hef928c7_0.conda#bdd464b33f6540ed70845b946c11a7b8 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.11.3-h06ab39a_1.conda#3689a4290319587e3b54a4f9e68f70c8 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.13.3-hc63082f_11.conda#6a653aefdc5d83a4f959869d1759e6e3 +https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.7-h28f887f_1.conda#7b8e3f846353b75db163ad93248e5f9d +https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.35.4-h8824e59_0.conda#113b9d9913280474c0868b0e290c0326 +https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.606-h20b40b1_10.conda#937d1d4c233adc6eeb2ac3d6e9a73e53 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-22.0.0-hb6ed5f4_6_cpu.conda#fbaa3742ccca0f7096216c0832137b72 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-22.0.0-h8c2c5c3_6_cpu.conda#d2cd924b5f451a7c258001cb1c14155d +https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_1_cpu.conda#7b472774c327e18f74e9bbe73467673d https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda#a1cfcc585f0c42bf8d5546bb1dfb668d https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda#8ed82d90e6b1686f5e98f8b7825a15ef -https://conda.anaconda.org/conda-forge/linux-64/libparquet-22.0.0-h7376487_4_cpu.conda#5e9383b1d25179787aff71aaad8208aa -https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-22.0.0-h635bf11_4_cpu.conda#20f1a4625bce6e9b41e01232895450d9 -https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-22.0.0-h635bf11_4_cpu.conda#6389644214f7707ab05f17f464863ed3 -https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-22.0.0-h3f74fd7_4_cpu.conda#6f07bf204431fb87d8f827807d752662 -https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_0.conda#f135d6fe1a8065e6a59cab7512237524 +https://conda.anaconda.org/conda-forge/linux-64/libparquet-22.0.0-h7376487_6_cpu.conda#83fd8f55f38ac972947c9eca12dc4657 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-22.0.0-h635bf11_6_cpu.conda#5a8f878ca313083960ab819a009848b3 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-22.0.0-h635bf11_6_cpu.conda#579bdb829ab093d048e49a289d3c9883 +https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-22.0.0-h3f74fd7_6_cpu.conda#cfc7d2c5a81eb6de3100661a69de5f3d +https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_1.conda#c6a872af2954958aa478f3fd835a048b https://conda.anaconda.org/conda-forge/noarch/arcosparse-0.4.2-pyhd8ed1ab_0.conda#9a005ba5f540619a1343587b4ee3d95e -https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda#e6f85f3cd0c5aff4ef0e07e80f49fa39 +https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda#9e18b048c69d2d72bc69d120a435d731 https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda#c138c7aaa6a10b5762dcd92247864aff https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.25.0-py312hf79963d_1.conda#6c913a686cb4060cbd7639a36fa144f0 -https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda#7da7ccd349dbf6487a7778579d2bb971 +https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda#d7585b6550ad04c8c5e21097ada2888e https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda#9614359868482abba1bd15ce465e3c42 -https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda#fa7f71faa234947d9c520f89b4bda1a2 +https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda#2b694bad8a50dc2f712f5368de866480 https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda#24ed1dc544b101075fa7462be5c3a5c5 https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda#e557abf678a0bf100fe7cf9d2b4f4a72 -https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py312h3d67a73_0.conda#aa47cd8d43b2dcbfc69f4f81ba5c9d33 +https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py312h3d67a73_1.conda#a669145a2c834895bdf3fcba1f1e5b9c https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_1.conda#e52c2ef711ccf31bb7f70ca87d144b9e https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda#f88bb644823094f436792f80fba3207e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda#0401a17ae845fa72c7210e206ec5647d https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.1.0-py312h4c3975b_1.conda#693cda60b9223f55d0836c885621611b -https://conda.anaconda.org/conda-forge/noarch/distributed-2025.11.0-pyhcf101f3_0.conda#a072de34cd7024a54f1b309bc9e36a3b +https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda#c15e359a982395be86a7576a91f9c5f5 https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda#f301f72474b91f1f83d42bcc7d81ce09 -https://conda.anaconda.org/conda-forge/noarch/dask-2025.11.0-pyhcf101f3_0.conda#1f97a470dbcf4a633e8da14e08428d42 +https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda#a86541105aa7920d2147d48bf370dc08 https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda#fa9e9ec7bf26619a8edd3e11155f15d6 https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.3-h5888daf_1.conda#8422fcc9e5e172c91e99aef703b3ce65 https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-ha6d2627_3.conda#84ec3f5b46f3076be49f2cf3f1cfbf02 https://conda.anaconda.org/conda-forge/linux-64/jasper-4.2.8-he3c4edf_0.conda#a04073db11c2c86c555fb088acc8f8c1 -https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.44.0-h83bc92c_0.conda#2d37fd4ccfd98453a02a278e4112da39 -https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py312h4f23490_1.conda#eea306a68c483e1305381130b35a09ff +https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.45.0-h83bc92c_0.conda#a981ecc85b1ff6307b8f09cf66b77083 +https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py312hfb8c2c5_1.conda#66f8d5e7005b9d38b4c1cd00068881ae https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda#0f12f8436a2a238e255d49ea3f8aefe2 https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda#e585c71c2ed48e4eee1663d627ddcd47 https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda#ea90ece1da754ca0c5d6766eb59908c2 diff --git a/envs/default_osx-64.pin.txt b/envs/default_osx-64.pin.txt index d3311da6a9..77e0ce3492 100644 --- a/envs/default_osx-64.pin.txt +++ b/envs/default_osx-64.pin.txt @@ -1,16 +1,15 @@ # Generated by `pixi workspace export` # platform: osx-64 @EXPLICIT -https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda#4222072737ccff51314b5ece9c7d6f5a +https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda#ad659d0a2b3e47e38d829aa8cad2d610 https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda#003a54a4e32b02f7355b50a837e699da https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda#bd9f1de651dbd80b51281c694827f78f https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda#ced34dd9929f491ca6dab6a2927aff25 -https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda#342570f8e02f2f022147a7f841475784 -https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda#f0991f0f84902f6b6009b4d2350a83aa +https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda#eefd65452dfe7cce476a519bece46704 +https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda#bddacf101bb4dd0e51811cb69c7790e2 https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.0-h230baf5_0.conda#3f50cdf9a97d0280655758b735781096 -https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda#d68d48a3060eb5abdc1cdc8e2a3a5966 -https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-h6cc646a_0.conda#f71213ed0c51030cb17a77fc60a757f1 -https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda#8468beea04b9065b9807fc8b9cdc5894 +https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda#d910105ce2b14dfb2b32e92ec7653420 +https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda#688a0c3d57fa118b9c97bf7e471ab46c https://conda.anaconda.org/conda-forge/osx-64/libffi-3.5.2-h750e83c_0.conda#d214916b24c625bcc459b245d509f22e https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.3-heffb93a_0.conda#222e0732a1d0780a622926265bee14ef https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_8.conda#97c4b3bd8a90722104798175a1bdddbf @@ -19,29 +18,29 @@ https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda# https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda#9efbfdc37242619130ea42b1cc4ed861 https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda#9d64911b31d57ca443e9f1e36b04385f https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda#c3efd25ac4d74b1584d2f7a57195ddf1 -https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.6-h472b3d1_0.conda#d002bb48f35085405e90a62ffeebebfb +https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda#e2d811e9f464dd67398b4ce1f9c7c872 https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-7_kmp_llvm.conda#eaac87c21aff3ed21ad9656697bb8326 -https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_14.conda#ad31de7df92caf04a70d0d8dc48d9ecd -https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_14.conda#0f4173df0120daf2b2084a55960048e8 -https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_14.conda#c11e0acbe6ba3df9a30dbe7f839cbd99 +https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_15.conda#c816665789d1e47cdfd6da8a81e1af64 +https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_15.conda#c2a6149bf7f82774a0118b9efef966dd +https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_15.conda#a089323fefeeaba2ae60e1ccebf86ddc https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda#9241a65e6e9605e4581a2a8005d7f789 -https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-2_he492b99_openblas.conda#1c8b502902eacae5a3df66477e61a636 -https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-2_h859234e_openblas.conda#8db178ce18ce1a024920967144b9f0b8 -https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.6-h3d58e20_0.conda#866af4d7269cd8c9b70f5b49ad6173aa -https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-2_h9b27e0a_openblas.conda#4340614c0af5534339786cfd3b79211f +https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda#36d2e68a156692cbae776b75d6ca6eae +https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda#eb5b1c25d4ac30813a6ca950a58710d6 +https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.8-h3d58e20_0.conda#9f8a60a77ecafb7966ca961c94f33bd1 +https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda#b31d771cbccff686e01a687708a7ca41 https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda#96c61a21c4276613748dba069554846b -https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312he2acf2f_1.conda#d84da8b0c914cd3071be89b458e2811e -https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda#4de79c071274a53dcaf2a8c749d1499e -https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.2-pyhd8ed1ab_0.conda#4e717929cfa0d49cef92d911e31d0e90 -https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.7.2-py312hfee4f84_0.conda#9cecc4b9d6cca528546f53a6c0120a04 +https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py312ha20b133_1.conda#9ab1af443bf4a42fd14a2baf21e394b9 +https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda#cb72cedd94dd923c6a9405a3d3b1c018 +https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.3-pyhd8ed1ab_0.conda#615de2a4d97af50c350e5cf160149e77 +https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.8.0-np2py312h47bbdc5_1.conda#9c037f2050f55c721704013b87c9724e https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda#fd5062942bfa1b0bd5e0d2a4397b099e https://conda.anaconda.org/conda-forge/osx-64/pyomo-6.9.5-py312h69bf00f_0.conda#b10048620718b2a9d5da308d8676c609 https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda#bc8e3267d44011051f2eb14d22fb0960 -https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda#88476ae6ebd24f39261e0854ac244f33 +https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda#7ead57407430ba33f681738905278d03 https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda#3339e3b65d58accf4ca4fb8748ab16b3 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda#5b8d21249ff20967101ffa321cab24e8 -https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.3-py312h86abcb1_1.conda#d12433d760615b890cfedd0ac29ffceb -https://conda.anaconda.org/conda-forge/noarch/networkx-3.6-pyhcf101f3_0.conda#6725bfdf8ea7a8bf6415f096f3f1ffa5 +https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.3-py312h86abcb1_2.conda#d7dfad2b9a142319cec4736fe88d8023 +https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda#a2c1eeadae7a309daed9d62c96012a2b https://conda.anaconda.org/conda-forge/osx-64/highspy-1.12.0-np2py312h855832a_0.conda#6680ff3c2fb8f30cd31f57c4a0c16338 https://conda.anaconda.org/conda-forge/noarch/tsam-2.3.9-pyhd8ed1ab_0.conda#2b661fd7a718757b2e91bbcac81deb48 https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda#5d99943f2ae3cc69e1ada12ce9d4d701 @@ -54,32 +53,32 @@ https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0. https://conda.anaconda.org/conda-forge/noarch/argparse-dataclass-2.0.0-pyhd8ed1ab_1.conda#3c0e753fd317fa10d34020a2bc8add8e https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda#e9bb00d8c7d26a5cd220d3d73bee45fb https://conda.anaconda.org/conda-forge/noarch/reretry-0.11.8-pyhd8ed1ab_1.conda#b965b0dfdb3c89966a6a25060f73aa67 -https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.2.3-pyhd4c3c12_0.conda#0de5b58d7772fb879c4117fb37121e0b -https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h281d3d1_5.conda#de488ea4c951e8eb642e19d574e7414b -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef -https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda#cf70c8244e7ceda7e00b1881ad7697a9 -https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.25.0-py312h01f6755_1.conda#d9209ec6445f95fba0c3c64fa4a46216 +https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda#b894c6a2d0612da952c9989ac7a22d16 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda#461219d1a5bd61342293efa2c0c90eac https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda#8e6923fc12f1fe8f8c4e5c9f343256ac https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda#0a802cb9888dd14eeefc611f05c40b6e https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda#164fc43f0b53b6e3a7bc7dce5e4f1dc9 https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py312h4b46afd_1.conda#01fdbccc39e0a7698e9556e8036599b7 -https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda#436c165519e140cb08d246a4472a9d6a +https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h3eecb57_6.conda#727109b184d680772e3122f40136d5ca +https://conda.anaconda.org/conda-forge/osx-64/backports.zstd-1.3.0-py312h6917036_0.conda#c8b7d0fb5ff6087760dde8f5f388b135 +https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda#9272daa869e03efe68833e3dc7a02130 https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda#53abe63df7e10a6ba605dc5f9f961d36 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda#a22d1fd9bf98827e280a02875d9a007a -https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda#96a02a5c1a65470a7e4eedb644c872fd -https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda#db0c6b99149880c8ba515cf4abe93ee4 +https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda#eacc711330cd46939f66cd401ff9c44b +https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda#c65df89a0b2e321045a9e01d1337b182 https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda#84c5c40ea7c5bbc6243556e5daed20e7 -https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py312hb922d34_0.conda#e9636d533e72247828ba8218056cab56 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef +https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda#cf70c8244e7ceda7e00b1881ad7697a9 +https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py312heb31a8c_1.conda#3d055072c43c46fbce57662072fe68ec https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda#42834439227a4551b939beeeb8a4b085 https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.3.1-pyhd8ed1ab_0.conda#d4f3f31ee39db3efecb96c0728d4bdbf https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.4.0-pyhd8ed1ab_0.conda#a55b220de8970208f583e38639cfbecc https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2#269943ac6637718947763b4f989710fc -https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda#5c7a868f8241e64e1cf5fdf4962f23e2 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda#1bd2e65c8c7ef24f4639ae6e850dacc2 https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda#03fe290994c5e4ec17293cfb6bdce520 -https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda#4b69232755285701bc86a5afe4d9933a +https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda#b8993c19b0c32a2f7b66cbb58ca27069 https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda#8e662bd460bda79b1ea39194e3c4c9ab -https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda#9958d4a1ee7e9c768fe8f4fb51bd07ea +https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.1-pyhcf101f3_0.conda#11a2b8c732d215d977998ccd69a9d5e8 https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda#4f14640d58e2cc0aa0819d9d8ba125bb https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda#d6989ead454181f4f9bc987d3dc4e285 https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda#17232431f65ce347f972f0fd95d2e97a @@ -87,31 +86,31 @@ https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda#a645bb https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312hacf3034_0.conda#dbc6cfbec3095d84d9f3baab0c6a5c24 https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda#7b2af124684a994217e62c641bca2e48 https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda#89d5edf5d52d3bc1ed4d7d3feef508ba -https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda#959484a66b4b76befcddc4fa97c95567 +https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda#de98449f11d48d4b52eefb354e2bfe35 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda#1500fccf5e46c7f91d14925449ff3632 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda#e6fd8cfb23b294da699e395dbc968d11 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda#98f75f2ca3a222992e2230d7afc54bb8 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2#e75b9c422bcc3c9b52679dedb84f3b71 https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda#9d1659c8332e9822e347e115e6bb4d0c -https://conda.anaconda.org/conda-forge/osx-64/liblapacke-3.11.0-2_h94b3770_openblas.conda#5713a8ad66ab24432e2b12e001334206 +https://conda.anaconda.org/conda-forge/osx-64/liblapacke-3.11.0-5_h94b3770_openblas.conda#475b9378f397064c05a8c5ed9eecedef https://conda.anaconda.org/conda-forge/osx-64/coin-or-utils-2.11.12-h6e60e65_7.conda#a6a81ab566fcdbf550b0275717920226 https://conda.anaconda.org/conda-forge/osx-64/coin-or-osi-0.108.11-hcf72bcd_8.conda#9c2efffe5fb845060e06a90b82ac7239 -https://conda.anaconda.org/conda-forge/osx-64/coin-or-clp-1.17.10-heb008f4_3.conda#f743fd25c0107b0ed5f4ae0955fe27a6 -https://conda.anaconda.org/conda-forge/osx-64/coin-or-cgl-0.60.9-hbb40df2_6.conda#734365056c54a4c63b8de90993f4817d -https://conda.anaconda.org/conda-forge/osx-64/coin-or-cbc-2.10.12-h084678f_4.conda#5f4886245ab5bc69a4f6ab2378ca1b54 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda#6c8979be6d7a17692793114fa26916e8 -https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.3-pyhd8ed1ab_0.conda#abbe8c85619c87c4f4f61b44173434af +https://conda.anaconda.org/conda-forge/osx-64/coin-or-clp-1.17.10-h58ba847_4.conda#88c9058ba921d6aee30b02071a605a5a +https://conda.anaconda.org/conda-forge/osx-64/coin-or-cgl-0.60.9-h62ac857_7.conda#65ea7a4112ac45dbea02657b95f26d65 +https://conda.anaconda.org/conda-forge/osx-64/coin-or-cbc-2.10.12-h2b2dcb5_5.conda#35aeb4eb765148c469af1b2292ecd48f +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda#3687cc0b82a8b4c17e1f0eb7e47163d5 +https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda#d6bd3cd217e62bbd7efe67ff224cd667 https://conda.anaconda.org/conda-forge/noarch/amply-0.1.6-pyhd8ed1ab_1.conda#5a81866192811f3a0827f5f93e589f02 https://conda.anaconda.org/conda-forge/osx-64/pulp-2.8.0-py312hda2ad9a_3.conda#b6f6e7a2c6800cc8b57e072824a00ffc -https://conda.anaconda.org/conda-forge/osx-64/psutil-7.1.3-py312h01f6755_0.conda#9587fcc6d21e10f59b708690399c5a66 +https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.1-py312hf7082af_0.conda#15f4c2db60fbc6b770b69319861cfc2b https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda#019a7385be9af33791c989871317e1ed https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda#23029aae904a2ba587daba708208012f https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda#b38fe4e78ee75def7e599843ef4c1ab0 https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py312h8a6388b_0.conda#9adbe03b6d1b86cab37fb37709eb4e38 -https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda#c7944d55af26b6d2d7629e27e9a972c1 +https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda#537296d57ea995666c68c821b00e360b https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda#870293df500ca7e18bedefa5838a22ab https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda#439cd0f567d697b20a8f45cb70a1005a -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda#341fd940c242cf33e832c0402face56f +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda#ada41c863af263cc4c5fcbaff7c3e4dc https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda#bbe1963f1e47f594070ffe87cdf612ea https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.3-py312hacf3034_0.conda#2e6f78b0281181edc92337aa12b96242 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda#04558c96691bed63104678757beb4f8d @@ -119,18 +118,18 @@ https://conda.anaconda.org/conda-forge/osx-64/immutables-0.21-py312h2f459f6_2.co https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda#7fe569c10905402ed47024fc481bb371 https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda#87f47a78808baf2fa1ea9c315a1e48f1 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda#7c14f3706e099f8fcd47af2d494616cc -https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.45-pyhff2d567_0.conda#b91d463ea8be13bcbe644ae8bc99c39f +https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda#74c0cfdd5359cd2a1f178a4c3d0bd3a5 https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2#e270fff08907db8691c02a0eda8d38ae https://conda.anaconda.org/conda-forge/noarch/conda-inject-1.3.2-pyhd8ed1ab_0.conda#e52c2a160d6bd0649c9fafdf0c813357 https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda#f4e90937bbfc3a4a92539545a37bb448 -https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.0-pyhdfd78af_0.conda#e28575d609ea3f36ff6b75dc1fb08396 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2#1e3d84ab0cd46fbf1dd4e5b290f7c7a5 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.0-pyhdfd78af_0.conda#6f481701e5b4494d77b37527f153a52c +https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda#71856e8d31fc4396cb4b3b57c9e7fb83 +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda#7d4f2bf739967798eb4d8c02d59cf36c +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda#01e79189d86f278322d0807f7d1dbada https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2#9b1db7127119f513696d620eefe7bf67 -https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.7-hd9f4cfa_0.conda#a9dad353b4423d55aaac7f4c1b12f833 +https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda#e53e2e4106b7a55550c68f33cec147c3 https://conda.anaconda.org/conda-forge/noarch/xarray-2025.6.1-pyhd8ed1ab_1.conda#145c6f2ac90174d9ad1a2a51b9d7c1dd https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda#9aa358575bbd4be126eaa5e0039f835c -https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.1-h9e4bfbb_0.conda#abe6e51b7529c047912848821ba2f872 +https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.2-h5af3ad2_0.conda#9eef7504045dd9eb1be950b2f934d542 https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda#7bb6608cf1f83578587297a158a6630b https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.2-h8616949_0.conda#48dda187f169f5a8f1e5e07701d5cdd9 https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.25-h517ebb2_0.conda#31aa65919a729dc48180893f62c25221 @@ -138,46 +137,52 @@ https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda#21f765 https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.1-ha0a348c_1.conda#9d4344f94de4ab1330cdc41c40152ea6 https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda#a6cb15db1c2dc4d3a5f6cf3772e09e81 https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda#899db79329439820b7e8f8de41bca902 -https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.5-hf13058a_0.conda#eafe5d9f1a8c514afe41e6e833f66dfd +https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.6-hb5e19a0_0.conda#fc9a153c57c9f070bebaa7eef30a8f17 https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda#e7630cef881b1174d40f3e69a883e55f https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda#1f4ed31220402fcddc083b4bff406868 https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda#d4765c524b1d91567886bde656fb514b -https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.17.0-h7dd4100_0.conda#b3985ef7ca4cd2db59756bae2963283a +https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.18.0-h9348e2b_0.conda#de1910529f64ba4a9ac9005e0be78601 https://conda.anaconda.org/conda-forge/osx-64/proj-9.7.0-h3124640_0.conda#c952a9e5ecd52f6dfdb1b4e43e033893 -https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.3.0-hd0321b6_0.conda#3ad24748832587b79c7a1f96ca874376 +https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda#30334add4de016489b731c6662511684 +https://conda.anaconda.org/conda-forge/osx-64/xerces-c-3.3.0-ha8d0d41_1.conda#21338f14e1226ca108452b770e770455 https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.47-h13923f0_0.conda#08f970fb2b75f5be27678e077ebedd46 +https://conda.anaconda.org/conda-forge/osx-64/muparser-2.3.5-hb996559_0.conda#d3aa5571d7b5182dcfbf8beb92c434a1 https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.10.0-h240833e_1.conda#d6b9bd7e356abd7e3a633d59b753495a https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda#210a85a1119f97ea7887188d176db135 -https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-ha1d9b0f_0.conda#453807a4b94005e7148f89f9327eb1b7 -https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h7b7ecba_0.conda#e7ed73b34f9d43d80b7e80eba9bce9f3 +https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda#6cd21078a491bdf3fdb7482e1680ef63 +https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h24ca049_1.conda#c58fc83257ad06634b9c935099ef2680 https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda#c989e0295dcbdc08106fe5d9e935f0b9 -https://conda.anaconda.org/conda-forge/osx-64/libxml2-devel-2.15.1-h7b7ecba_0.conda#d48da211fb9523b22a299bce824c1242 +https://conda.anaconda.org/conda-forge/osx-64/libxml2-devel-2.15.1-h24ca049_1.conda#cc1c67f0676478f972e26c5649ea68ac https://conda.anaconda.org/conda-forge/osx-64/geos-3.14.1-he483b9e_0.conda#d83030a79ce1276edc2332c1730efa17 https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-h16cd5d8_20.conda#32837d365266ad66fcf849b7a92fb5fa https://conda.anaconda.org/conda-forge/osx-64/minizip-4.0.10-hfb7a1ec_0.conda#412fd08e5bf0e03fdce24dea0560fa26 https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3183152_2.conda#5cb34c1d2ed89fd36f4e3759c966daf0 https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-gpl_hb921464_119.conda#14067124e9dd23b72cd78d68d78fac03 -https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.51-h380d223_0.conda#d54babdd92ec19c27af739b53e189335 +https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda#3d43dcdfcc3971939c80f855cf2df235 https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda#649890a63cc818b24fbbf0572db221a5 https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-h450b6c2_1022.conda#ec47f97e9a3cdfb729e1b1173d80ed0f +https://conda.anaconda.org/conda-forge/osx-64/libhwy-1.3.0-hab838a1_1.conda#bb8ff4fec8150927a54139af07ef8069 +https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.2.0-h8616949_1.conda#f157c098841474579569c85a60ece586 +https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.2.0-h8616949_1.conda#12a58fd3fc285ce20cf20edf21a0ff8f +https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.2.0-h8616949_1.conda#63186ac7a8a24b3528b4b14f21c03f54 +https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-hde0fb83_8.conda#5e478d37b1027d73872f7c8d579dc314 https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h4132b18_1002.conda#5a047b9aa4be1dcdb62bd561d9eb6ceb -https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.8.2-gpl_h889603c_100.conda#7520a1a2a186da7ade597f8fdf72a168 +https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.8.5-gpl_h264331f_100.conda#bfb9152520db0958801b3c87846c942b https://conda.anaconda.org/conda-forge/osx-64/json-c-0.18-hc62ec3d_0.conda#2c5a3c42de607dda0cfa0edd541fd279 https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda#03e8c9b4d3da5f3d6eabdd020c2d63ac -https://conda.anaconda.org/conda-forge/osx-64/geotiff-1.7.4-h6952e58_4.conda#30f1583db3fcb2893dbcafb2328d6393 https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h01f5ddf_1.conda#2e993292ec18af5cd480932d448598cf https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-hd145fbb_1.conda#717852102c68a082992ce13a53403f9d -https://conda.anaconda.org/conda-forge/osx-64/libgdal-core-3.10.3-hb8c6b92_27.conda#1285c38329dfd110fb87635817808376 +https://conda.anaconda.org/conda-forge/osx-64/libgdal-core-3.12.1-hc010f1d_0.conda#5fedeef42dca8c3bba696092097d3d73 https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda#f22f4d4970e09d68a10b922cbb0408d3 https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda#55c7804f428719241a90b152016085a1 https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda#e9b05deb91c013e5224672a4ba9cf8d1 https://conda.anaconda.org/conda-forge/noarch/affine-2.4.0-pyhd8ed1ab_1.conda#8c4061f499edec6b8ac7000f6d586829 -https://conda.anaconda.org/conda-forge/osx-64/rasterio-1.4.3-py312hd11fb3f_3.conda#742920bb32292ac42cfe6eab3230d58b +https://conda.anaconda.org/conda-forge/osx-64/rasterio-1.5.0-py312h6f80297_0.conda#9954d4dba5eb83661bc1cbc2b5c245ea https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.7.2-py312hfea2d77_2.conda#21ad98450ce826128e7ff9bfeadd57d9 https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda#27583d44e139c520d9fdc1fd7aedd58d https://conda.anaconda.org/conda-forge/noarch/pyxlsb-1.0.10-pyhd8ed1ab_0.tar.bz2#0c14e44bc93a99cdc11398311c3c0dcf -https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.1-default_h094e1f9_1002.conda#4d9e9610b6a16291168144842cd9cae2 -https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-hf0c99ee_1.conda#108a7d3b5f5b08ed346636ac5935a495 +https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.2-default_h273dbb7_1000.conda#56aaf4b7cc4c24e30cecc185bb08668d +https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-h06b67a2_2.conda#e048347a60763f60ada3c5fac23dfb60 https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda#427101d13f19c4974552a4e5b072eef1 https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-haed47dc_3.conda#d511e58aaaabfc23136880d9956fa7a6 https://conda.anaconda.org/conda-forge/osx-64/mumps-include-5.8.1-hc797fd9_4.conda#b90d807d81535f092a947c3ff5cbe1c7 @@ -192,9 +197,9 @@ https://conda.anaconda.org/conda-forge/osx-64/pyscipopt-5.6.0-py312h462f358_1.co https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda#3449ef730c7d483adde81993994092b9 https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.2-py312hd8edc82_2.conda#eae9cbc6418de8f26e08f4fb255759e9 https://conda.anaconda.org/conda-forge/noarch/patsy-1.0.2-pyhcf101f3_0.conda#8678577a52161cc4e1c93fcc18e8a646 -https://conda.anaconda.org/conda-forge/osx-64/statsmodels-0.14.5-py312h391ab28_1.conda#1ec5ac2091ec31f1c2ee57a1bf66b4cb +https://conda.anaconda.org/conda-forge/osx-64/statsmodels-0.14.6-py312h391ab28_0.conda#114bf0de85f665ce5586e9a0f0f077a8 https://conda.anaconda.org/conda-forge/osx-64/qhull-2020.2-h3c5361c_5.conda#dd1ea9ff27c93db7c01a7b7656bd4ad4 -https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.3.1-h55e386d_0.conda#a74905e66f8d64c939c1010f1ade58f9 +https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.3.2-h8bce59a_1.conda#cdd69480d52f2b871fad1a91324d9942 https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.4-h87e8dc5_0.conda#a67d3517ebbf615b91ef9fdc99934e0c https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.5-h8616949_1.conda#435446d9d7db8e094d2c989766cfb146 https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.12-h8616949_1.conda#47f1b8b4a76ebd0cd22bd7153e54a4dc @@ -202,18 +207,15 @@ https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-h00291cd_1002.co https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.17.0-hf1f96e2_0.conda#bbeca862892e2898bdb45792a61c4afc https://conda.anaconda.org/conda-forge/osx-64/libfreetype6-2.14.1-h6912278_0.conda#dfbdc8fd781dc3111541e4234c19fdbd https://conda.anaconda.org/conda-forge/osx-64/libfreetype-2.14.1-h694c41f_0.conda#e0e2edaf5e0c71b843e25a7ecc451cc9 -https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda#bf210d0c63f2afb9e414a858b79f0eaa -https://conda.anaconda.org/conda-forge/osx-64/pillow-12.0.0-py312hea0c9db_2.conda#1d9e77d994f7593d52f6f42ec2712b4d +https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda#753acc10c7277f953f168890e5397c80 +https://conda.anaconda.org/conda-forge/osx-64/pillow-12.1.0-py312h4985050_0.conda#2cc7fe00971062013ccc3c6616665182 https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py312h90e26e8_2.conda#b85c7204ae22668690eb1e95640202c4 https://conda.anaconda.org/conda-forge/osx-64/freetype-2.14.1-h694c41f_0.conda#ca641fdf8b7803f4b7212b6d66375930 https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-17.0.0-py312h80b0991_1.conda#32a0138cbc4a3934d61fef34a4b8e1c5 https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda#37293a85a0f4f77bbd9cf7aaefc62609 -https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.2.0-h8616949_1.conda#f157c098841474579569c85a60ece586 -https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.2.0-h8616949_1.conda#12a58fd3fc285ce20cf20edf21a0ff8f -https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.2.0-h8616949_1.conda#63186ac7a8a24b3528b4b14f21c03f54 https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.2.0-h8616949_1.conda#34803b20dfec7af32ba675c5ccdbedbf https://conda.anaconda.org/conda-forge/osx-64/brotli-1.2.0-hf139dec_1.conda#149d8ee7d6541a02a6117d8814fd9413 -https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.61.0-py312hacf3034_0.conda#c0ef09bd6313da425e3b7700ce9858bc +https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.61.1-py312hacf3034_0.conda#277eb1146255b637cac845cc6bc8fb6b https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda#4c2a8fef270f6c69591889b93f9f55c1 https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py312hd099df3_3.conda#83036bb23aad87b7256d7ae13d1fdb89 https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py312h7894933_0.conda#853618b60fdd11a6c3dbaadaa413407c @@ -223,62 +225,32 @@ https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_ https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda#46830ee16925d5ed250850503b5dc3a8 https://conda.anaconda.org/conda-forge/osx-64/numexpr-2.14.1-py312hd12f69b_1.conda#42ca06bfb47a5aa48940404b96082f31 https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.4-ha6bc127_0.conda#1a768b826dfc68e07786788d98babfc3 -https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc8237f9_103.conda#3f1df98f96e0c369d94232712c9b87d0 +https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda#bb19aadbe30c465c18c77678ac2eae09 https://conda.anaconda.org/conda-forge/osx-64/c-blosc2-2.22.0-hedb7e5f_1.conda#13038523111830630683530ea54eb503 https://conda.anaconda.org/conda-forge/osx-64/pytables-3.10.2-py312he4c742b_10.conda#6698fa5a79d807f18c68a9423ed62960 -https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda#dc257b7e7cad9b79c1dfba194e92297b -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda#dbf8b81974504fa51d34e436ca7ef389 -https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 -https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c -https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 -https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc -https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 -https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 -https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda#7d9daffbb8d8e0af0f769dbbcd173a54 -https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda#d0d408b1f18883a944376da5cf8101ea -https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 -https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 -https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 -https://conda.anaconda.org/conda-forge/noarch/ipython-9.7.0-pyh53cf698_0.conda#2d6b86a2e11b8cb2f20a432158ef10b9 -https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda#d68e3f70d1f068f1b66d94822fdc644e -https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.2-py312h80b0991_2.conda#c1e601f785ca8aedc3af1ed562e03dd9 -https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.20-hfdf4475_0.conda#6af4b059e26492da6013e79cbcb4d069 -https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-h6c33b1e_9.conda#d940d809c42fbf85b05814c3290660f5 -https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 -https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 -https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f -https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.1.0-py312hb7d603e_0.conda#81511d0be03be793c622c408c909d6f9 -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda#4ebae00eae9705b0c3d6d1018a81d047 -https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.17-py312hbfd3414_0.conda#5ceb0529cfdf7a2226e21923a43e51e0 -https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda#54898d0f524c9dee622d44bbb081a8ab -https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda#1849eec35b60082d2bd66b4e36dec2b6 -https://conda.anaconda.org/conda-forge/noarch/pydeck-0.8.0-pyhd8ed1ab_0.tar.bz2#176b16002a5423169bf0f4b4c0ebecaf -https://conda.anaconda.org/conda-forge/noarch/narwhals-2.12.0-pyhcf101f3_0.conda#02cab382663872083b7e8675f09d9c21 -https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.0-pyhd8ed1ab_0.conda#6d4c79b604d50c1140c32164f7eca72a +https://conda.anaconda.org/conda-forge/noarch/pydeck-0.9.1-pyhd8ed1ab_0.conda#4b13d1d2d5cba37be9fa3c0922bbf995 +https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda#37926bb0db8b04b8b99945076e1442d0 +https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda#7702bcd70891dd0154d765a69e1afa94 https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda#3cf12c97a18312c9243a895580bf5be6 https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda#7ce543bf38dbfae0de9af112ee178af2 https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.3-nompi_habf9e57_103.conda#0c48ab0a8d7c3af9f592d33c3d99f7d6 -https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.4-py312h587b97d_2.conda#4da3d493adb979c3339c1fb76f2ad8b2 -https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py312hab8b850_100.conda#4849016a03b3be1eecb407197b063723 +https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_1.conda#54ba6dea57839640386fddb0349a272b +https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py312h6ec3a75_102.conda#155692cb0f353637a9be03e3d185bfa5 https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda#c07a6153f8306e45794774cf9b13bd32 -https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.35.2-py310hfb6bc98_0.conda#35b2fb72e624b6455cc4b10df4a60c33 -https://conda.anaconda.org/conda-forge/noarch/polars-1.35.2-pyh6a1acc5_0.conda#24e8f78d79881b3c035f89f4b83c565c +https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 +https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 +https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f +https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.37.1-py310had17480_0.conda#75e808381cab0c33008317fd25ba8157 +https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda#1894d4373da653406c91e20ef89f05c8 https://conda.anaconda.org/conda-forge/osx-64/libabseil-20250512.1-cxx17_hfc00f1c_0.conda#ddf1acaed2276c7eb9d3c76b49699a11 https://conda.anaconda.org/conda-forge/osx-64/protobuf-6.31.1-py312h457ac99_2.conda#4283909633ec7d07839e150f7a52c01b https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda#b22fe9a3d53bc833659823e48f879db9 https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2#23d6d5a69918a438355d7cbc4c3d54c9 -https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.7.1-py312h0d55a24_1.conda#feaf00447484382bb529b562a2bc3f39 +https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312hb9001e9_1.conda#558f8364bc7ccb5be86f035dadab7981 https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda#ba7f04ba62be69f9c9fef0c4487c210b https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h554ac88_0.conda#a0237623ed85308cb816c3dcced23db2 https://conda.anaconda.org/conda-forge/osx-64/re2-2025.11.05-h7df6414_0.conda#13dc8eedbaa30b753546e3d716f51816 -https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-6.31.1-h03562ea_2.conda#39b7711c03a0d0533e832e734641e56e +https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-6.31.1-hcc66ac3_4.conda#f22705f9ebb3f79832d635c4c2919b15 https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.73.1-h451496d_1.conda#d6ea2acfae86b523b54938c6bc30e378 https://conda.anaconda.org/conda-forge/osx-64/grpcio-1.73.1-py312h53eab48_1.conda#94f0b7eefe8e878d70560f54a38b539c https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda#003094932fb90de018f77a273b8a509b @@ -288,52 +260,53 @@ https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda#58958 https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_1.conda#644bd4ca9f68ef536b902685d773d697 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda#ddf01a1d87103a152f725c7aeabffa29 https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda#c689b62552f6b63f32f3322e463f3805 -https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.2-pyhd8ed1ab_0.conda#9c265afcec13eb6e844ae51b4a4b52ad https://conda.anaconda.org/conda-forge/osx-64/propcache-0.3.1-py312h3520af0_0.conda#9e58210edacc700e43c515206904f0ca -https://conda.anaconda.org/conda-forge/osx-64/multidict-6.6.3-py312h6f3313d_0.conda#e495a8697e472a5ecd766c0ddcbeacd6 +https://conda.anaconda.org/conda-forge/osx-64/multidict-6.7.0-py312h2352a57_0.conda#bf8bb4d92f3d07f998bd4fae10f46d14 https://conda.anaconda.org/conda-forge/osx-64/yarl-1.22.0-py312hacf3034_0.conda#e441d2fc9a075115c08ec037d78d94d9 https://conda.anaconda.org/conda-forge/osx-64/frozenlist-1.7.0-py312h18bfd43_0.conda#d1e9b9b950051516742a6719489e98c6 https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda#421a865222cd0c9d83ff08bc78bf3a61 https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda#18fd895e0e775622906cdabfc3cf0fb4 -https://conda.anaconda.org/conda-forge/osx-64/aiohttp-3.13.2-py312h352d07c_0.conda#f2ab5e6e6ffde3580460181bf094749b -https://conda.anaconda.org/conda-forge/noarch/google-auth-2.43.0-pyhd8ed1ab_0.conda#5b33d9974cab063dcf39e8671ddee1c1 -https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.26.1-pyhd8ed1ab_0.conda#6fcfcf4432cd80d05ee9c6e20830bd36 -https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda#4f543962961d34db6b5c72ebe827caf7 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda#862b63f7548be0c97e9c6f4f85959189 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.6.0-pyhcf101f3_0.conda#d079010d36f98b32766aa3a4aed57306 +https://conda.anaconda.org/conda-forge/osx-64/aiohttp-3.13.3-py312h80cd6c1_0.conda#1d67d1baba2a1917f1cd6519029a3fbf +https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda#fa0d1dbb4ae73ca3636fe64ed0632a42 +https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.27.0-pyhd8ed1ab_0.conda#1099a038989e7f4037d3ce21e8ee9f2c +https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda#7fd8158ff94ccf28a2ac1f534989d698 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda#48fcccc0b579087018df0afc332b8bd6 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda#d05f7e8724ceb2a77edf3e39cc7760bb https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2#7b6747d7cc2076341029cff659669e8b https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 -https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.10.0-pyhd8ed1ab_0.conda#d18004c37182f83b9818b714825a7627 -https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhd8ed1ab_0.conda#fcac5929097ba1f2a0e5b6ecaa13b253 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.11.0-pyhcf101f3_0.conda#91549f296c15ef7b49ee6600e7c934c1 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 +https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda#1daaf94a304a27ba3446a306235a37ea +https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda#61b8078a0905b12529abc622406cb62c +https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda#91e3b2a0d014ac032c066a2e18051686 https://conda.anaconda.org/conda-forge/osx-64/bottleneck-1.6.0-np2py312he8eb05d_3.conda#0e9639e5608a478cc91d4600f5e256e6 -https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_0.conda#2b6cde24a62b353a81664bb219674183 +https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda#8f46def45efc90f7462e476e3fdb3de0 https://conda.anaconda.org/conda-forge/osx-64/rapidfuzz-3.14.3-py312h69bf00f_1.conda#66acbd3f35eb401287ae76ed120afd30 https://conda.anaconda.org/conda-forge/osx-64/levenshtein-0.27.3-py312h69bf00f_0.conda#5e6b9430bbfec8a68a37351274134e5b https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda#16933322051fa260285f1a44aae91dd6 -https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.11.0-py312h4bcfd6b_0.conda#9c4e1cab59f2b45a86e354bc25eeb0ac +https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.12.1-py312h17ccd7d_0.conda#e6452e30b697d485a9929bd1eebcd7a2 https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda#cc293b4cad9909bf66ca117ea90d4631 -https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.1-pyha770c72_1.conda#23e25e079cd0108ec9cbae779ef4b685 +https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.2-pyha770c72_0.conda#ca79e96c1fd39ab6d12c8f99968111b1 https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda#1fcdf88e7a8c296d3df8409bf0690db4 https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda#a6997a7dcd6673c0692c61dfeaea14ab -https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.1-pyhd8ed1ab_1.conda#99baf7d3c98e77f22972757af7e774f8 -https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.4-pyhd8ed1ab_0.conda#67586682c0e1c17a2fb59386746c2a14 -https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda#146402bf0f11cbeb8f781fa4309a95d3 -https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda#d2732eb636c264dc9aa4cbee404b1a53 +https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda#3b9d40bef27d094e48bb1a821e86a252 +https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda#1cfa64a0a8211bafbb05e9b8f7e472c8 +https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda#385dca77a8b0ec6fa9b92cb62d09b43b +https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda#72e780e9aa2d0a3295f59b1874e3768b https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda#827064ddfe0de2917fb29f1da4f8f533 https://conda.anaconda.org/conda-forge/noarch/isort-7.0.0-pyhd8ed1ab_0.conda#55a61979242077b2cc377c74326ea9f0 -https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda#eec5b361dbbaa69dba05050977a414b0 -https://conda.anaconda.org/conda-forge/osx-64/astroid-4.0.2-py312hb401068_0.conda#e308f588a2018574d680dd737f373ed5 +https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda#080a808fce955026bf82107d955d32da +https://conda.anaconda.org/conda-forge/osx-64/astroid-4.0.3-py312hb401068_0.conda#a28cb0771b25bc091ec00e7847f825d7 https://conda.anaconda.org/conda-forge/noarch/pylint-4.0.4-pyhcf101f3_0.conda#3a830511a81b99b67a1206a9d29b44b3 -https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda#66b8b26023b8efdf8fcb23bac4b6325d +https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda#2cfaaccf085c133a477f0a7a8657afe9 https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda#003b8ba0a94e2f1e117d0bd46aebc901 -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda#cfccfd4e8d9de82ed75c8e2c91cab375 -https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda#7ba3f09fceae6a120d664217e58fe686 +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda#6b0259cea8ffa6b66b35bae0ca01c447 +https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda#eb52d14a901e23c39e9e7b4a1a5c015f https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hedd4973_6.conda#60234a8062a92843ecf383a4c18b8037 -https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda#25f954b7dae6dd7b0dc004dab74f1ce9 +https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda#8bc5851c415865334882157127e75799 https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda#381bd45fb7aa032691f3063aff47e3a1 -https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda#af8d4882203bccefec6f1aeed70030c6 +https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda#7f3ac694319c7eaf81a0325d6405e974 https://conda.anaconda.org/conda-forge/noarch/xlrd-2.0.2-pyhd8ed1ab_0.conda#91f5637b706492b9e418da1872fd61ce https://conda.anaconda.org/conda-forge/noarch/unidecode-1.4.0-pyhcf101f3_1.conda#53cb4b14ab0841e104e2bd11ee64b840 https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda#62ed8c560f1b5b8d74ed11e68e9ae223 @@ -341,37 +314,44 @@ https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.cond https://conda.anaconda.org/conda-forge/osx-64/openpyxl-3.1.5-py312hc14bf67_2.conda#05835b2dc6f44ee0ac4ef22a1bd18c88 https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda#43dd16b113cc7b244d923b630026ff4f https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda#40182a8d62a61d147ec7d3e4c5c36ac2 -https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda#18c019ccf43769d211f2cf78e9ad46c2 +https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda#fcbe3971b6017792e9b24ff451daa7f5 https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda#5267bef8efea4127aacd1f4e1f149b6e https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda#3181cf53cd50513a1a7c00aae2f08e7a https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda#193a9e54636d8d70781a3e56370f5502 -https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda#153f1b172beb7f5df84a78b2bde02f24 -https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhd8ed1ab_1.conda#71abbefb6f3b95e1668cd5e0af3affb9 +https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda#3c806a133fb9e59dca249c5a00c2ab3e +https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhcf101f3_1.conda#e1bccffd88819e75729412799824e270 +https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py312h404bc50_0.conda#fc935f8c37abef2b3cc3b9f15b951c6d https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.10.8-py312hb401068_0.conda#c2a15b38125fe68d31901e7fa63ca049 https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h486b42e_1.conda#367b8029352f3899fb76cc20f4d144b9 https://conda.anaconda.org/conda-forge/osx-64/lxml-6.0.2-py312hd94307c_2.conda#bdf10a0a5e85a612315784af5f4bd460 -https://conda.anaconda.org/conda-forge/osx-64/libgdal-hdf5-3.10.3-ha7247fd_27.conda#99942026e2013891bea83b43940c3c94 -https://conda.anaconda.org/conda-forge/osx-64/libgdal-hdf4-3.10.3-h0c59102_27.conda#8d0a9c32f7f10a58cdd862d2d0f96630 -https://conda.anaconda.org/conda-forge/osx-64/libgdal-netcdf-3.10.3-hee41eee_27.conda#800554ab958e64fbc4658470e0021bd0 +https://conda.anaconda.org/conda-forge/osx-64/libgdal-hdf5-3.12.1-ha756dc0_0.conda#e9dcff4b3ae49b64325fcadd39d0d9fb +https://conda.anaconda.org/conda-forge/osx-64/libgdal-hdf4-3.12.1-h303b8bb_0.conda#4ad7576c163cafe85f1444c7f42668de +https://conda.anaconda.org/conda-forge/osx-64/libgdal-netcdf-3.12.1-h73de3a7_0.conda#d65b4b768eb89c3d5f97027a8723f237 https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-pyhd8ed1ab_0.conda#2f1ed718fcd829c184a6d4f0f2e07409 -https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda#00b54981b923f5aefcd5e8547de056d5 +https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda#7d9daffbb8d8e0af0f769dbbcd173a54 +https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda#17b43cee5cc84969529d5d0b0309b2cb https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-12.1-py312h4a480f0_0.conda#18a20cb8c3e19f0b3799a48eba5b44aa https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-12.1-py312h1993040_0.conda#b6881a919e1bfd66349e2260b163dc7c -https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda#e67b1b1fa7a79ff9e8e326d0caf55854 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda#a1e91db2d17fd258c64921cb38e6745a +https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda#297e2901b530c5d321c563e66a65db99 +https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.20-hfdf4475_0.conda#6af4b059e26492da6013e79cbcb4d069 +https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-h6c33b1e_9.conda#d940d809c42fbf85b05814c3290660f5 +https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.1.0-py312hb7d603e_0.conda#81511d0be03be793c622c408c909d6f9 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda#7526d20621b53440b0aae45d4797847e https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda#f6d7aa696c67756a650e91e15e88223c https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda#e51f1e4089cad105b6cac64bd8166587 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda#6bb0d77277061742744176ab555b723c -https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda#f5a4d548d1d3bdd517260409fc21e205 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda#8a3d6d0523f66cf004e563a50d9392b3 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda#00f5b8dafa842e0c27c1cd7296aa4875 +https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda#b11e360fc4de2b0035fc8aaa74f17fd6 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda#fd312693df06da3578383232528c468d https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda#2841eb5bfc75ce15e9a0054b98dcd64d -https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.0-pyhcf101f3_0.conda#2caf483992d5d92b232451f843bdc8af +https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda#c0d0b883e97906f7524e2aac94be0e0d https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda#b1a27250d70881943cca0dd6b4ba0956 https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda#08a03378bc5293c6f97637323802f480 https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda#cfc86ccc3b1de35d36ccaae4c50391f5 -https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda#2d983ff1b82a1ccb6f2e9d8784bdd6bd +https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda#7b8bace4943e0dc345fc45938826f2b8 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda#36de09a8d3e5d5e6f4ee63af49e59706 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda#a61bf9ec79426938ff785eb69dbb1960 @@ -379,33 +359,55 @@ https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda#e7cb0f5745e4c5035a460248334af7eb https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda#9b965c999135d43a3d0f7bd7d024e26a https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda#7234f99325263a5af6d4cd195035e8f2 -https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_2.conda#7632694baab67c90efad51eb38e53fbd +https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda#cd2214824e36b0180141d422aba01938 https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda#85c4f19f377424eafc4ed7911b291642 https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda#0b0154421989637d424ccf0f104be51a https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2#576d629e47797577ab0f1b351297ef4a https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2#9b347a7ec10940d3f7941ff6c460b551 https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda#d3549fd50d450b6d9e7dddff25dd2110 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda#13e31c573c884962318a738405ca3487 +https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda#8368d58342d0825f0843dc6acdd0c483 https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda#f56000b36f09ab7533877e695e4e8cb0 https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-25.1.0-py312h80b0991_2.conda#66f6b81d4bf42e3da028763e9d873bff https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda#8ac12aff0860280ee0cff7fa2cf63f3b https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda#d79a87dcfa726bcea8e61275feed6f83 https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda#e7f89ea5f7ea9401642758ff50a2d9c1 -https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda#0fc93f473c31a2f85c0bde213e7c63ca +https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda#8d5f66ebf832c4ce28d5c37a0e76605c https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda#0a01c169f0ab0f91b26e77a3301fbfe4 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda#a63877cb23de826b1620d3adfccc4014 https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda#62b7c96c6cd77f8173cc5cada6a9acaa -https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda#d9d0f99095a9bb7e3641bca8c6ad2ac7 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda#e6dc3d6bf1591f0ebe8e77959e950660 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 +https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 +https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 +https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c +https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 +https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc +https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda#d0d408b1f18883a944376da5cf8101ea +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 +https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 +https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 +https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 +https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda#8481978caa2f108e6ddbf8008a345546 +https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.19-py312h6c02384_0.conda#d977af0b04dcbb6bf264a54a8c8bcea1 +https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 +https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda#54898d0f524c9dee622d44bbb081a8ab +https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda#1849eec35b60082d2bd66b4e36dec2b6 +https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda#04d2e5fba67e5a1ecec8e25d6c769004 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda#513e7fcc06c82b24c84ff88ece13ac9f https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda#c85c76dc67d75619a92f51dfbce06992 -https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.0-pyhcf101f3_0.conda#3cf7402eb77b6434e830b6863a0e6118 +https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda#47b58fa741a608dac785b71b8083bdb7 https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda#6d034d3a6093adbba7b24cb69c8c621e https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda#801dbf535ec26508fac6d4b24adfb76e +https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-3.6.10-pyhd8ed1ab_0.conda#4d52bbdb661dc1b5a1c2aeb1afcd9a67 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda#05a08b368343304618b6a88425aa851a +https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-pyhd8ed1ab_2.conda#2f0ba4bc12af346bc6c99bdc377e8944 +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.8.5-pyhd8ed1ab_0.conda#47672c493015ab57d5fcde9531ab18ef https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda#9453512288d20847de4356327d0e1282 https://conda.anaconda.org/conda-forge/osx-64/jpype1-1.6.0-py312hedd4973_1.conda#34aa3b95f46cc440fd9567090bef0a93 -https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.0-py312_0.conda#1685723870a342300f4d9ee1d55e7de6 +https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.1-py312_0.conda#87623ec0e5a5b15e08bd2b794d444298 https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda#a8e54eefc65645193c46e8b180f62d22 -https://conda.anaconda.org/conda-forge/osx-64/libglib-2.86.2-hf241ffe_1.conda#368c2b6486c19534b56ab1244b0f2c23 +https://conda.anaconda.org/conda-forge/osx-64/libglib-2.86.3-hf241ffe_0.conda#584ce14b08050d3f1a25ab429b9360bc https://conda.anaconda.org/conda-forge/osx-64/graphite2-1.3.14-h21dd04a_2.conda#ba63822087afc37e01bf44edcc2479f3 https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda#742a8552e51029585a32b6024e9f57b4 https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda#49023d73832ef61042f6a237cb2687e7 @@ -415,45 +417,45 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda#a7970cd949a077b7cb9696379d338681 https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda#84ccec5ee37eb03dd352db0a3f89ada3 -https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h950ec3b_0.conda#32403b4ef529a2018e4d8c4f2a719f16 -https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.2.0-hc5d3ef4_0.conda#05a72f9d35dddd5bf534d7da4929297c +https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h7656bdc_1.conda#9917add2ab43df894b9bb6f5bf485975 +https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda#a1abc59ee893b609e7df4e6df29a6743 https://conda.anaconda.org/conda-forge/osx-64/fribidi-1.0.16-h8616949_0.conda#4422491d30462506b9f2d554ab55e33d https://conda.anaconda.org/conda-forge/osx-64/pango-1.56.4-h6ef8af8_0.conda#8c6316c058884ffda0af1f1272910f94 https://conda.anaconda.org/conda-forge/osx-64/gdk-pixbuf-2.44.4-h07555a4_0.conda#bb9e17e69566ded88342156e58de3f87 https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.60.0-h2da6fc3_0.conda#0e5609c0f8e5421e43301bcc3c5e1985 -https://conda.anaconda.org/conda-forge/osx-64/libgd-2.3.3-h8555400_11.conda#0eea404372aa41cf95e71c604534b2a2 +https://conda.anaconda.org/conda-forge/osx-64/libgd-2.3.3-hb2c11ec_12.conda#e12673b408d1eb708adb3ecc2f621d78 https://conda.anaconda.org/conda-forge/osx-64/gts-0.7.6-h53e17e3_4.conda#848cc963fcfbd063c7a023024aa3bec0 https://conda.anaconda.org/conda-forge/osx-64/hicolor-icon-theme-0.17-h694c41f_2.tar.bz2#f64218f19d9a441e80343cea13be1afb -https://conda.anaconda.org/conda-forge/osx-64/glib-tools-2.86.2-h8650975_1.conda#89ac01f8d1b9b9d03c0356a76b330352 +https://conda.anaconda.org/conda-forge/osx-64/glib-tools-2.86.3-h8650975_0.conda#16ce4f8eddf8ad9233631f79404a4267 https://conda.anaconda.org/conda-forge/osx-64/epoxy-1.5.10-h8616949_2.conda#efe7fa6c60b20cb0a3a22e8c3e7b721e https://conda.anaconda.org/conda-forge/osx-64/atk-1.0-2.38.0-h4bec284_2.conda#d9684247c943d492d9aac8687bc5db77 https://conda.anaconda.org/conda-forge/osx-64/gtk3-3.24.43-h5e629aa_6.conda#dbd0346e44fcbda7fe4f6eaf42597ef9 https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda#b3f0179590f3c0637b7eb5309898f79e -https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.0.5-had0cc5b_0.conda#bd964a7fd22fb681fff9258f905347de +https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.1-h44fc223_0.conda#907885685648c2acd96751c9f3800bc8 https://conda.anaconda.org/conda-forge/osx-64/glpk-5.0-h3cb5acd_0.tar.bz2#323537f09c8044f0352a8af30a6fc650 https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda#9f9840fb1c2e009fb0009a2f9461e64a -https://conda.anaconda.org/conda-forge/osx-64/fiona-1.10.1-py312h4bcfd6b_3.conda#a6ddd5bc30b2fe60772dd06d5cbd3d05 +https://conda.anaconda.org/conda-forge/osx-64/fiona-1.10.1-py312hb20e208_6.conda#e82a20a3c91736e615f87c5564f0753b https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda#4a25cae637029c5589135903aa15b3b6 https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.1.2-py312hd099df3_1.conda#00597ae4dd073faaa9e6d2ca478f21c6 -https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda#bf74a83f7a0f2a21b5d709997402cac4 -https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.16.1-py312h86abcb1_2.conda#763bb432ed94e8c59b99516d60eba584 +https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda#5498feb783ab29db6ca8845f68fa0f03 +https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.16.5-py312h86abcb1_0.conda#cb2f65f89f8194ff35e16cfe87dd1d62 https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda#c56a7fa5597ad78b62e1f5d21f7f8b8f https://conda.anaconda.org/conda-forge/noarch/zarr-3.1.5-pyhcf101f3_0.conda#c1844a94b2be61bb03bbb71574a0abfc -https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhd8ed1ab_0.conda#982aa48accc06494cbd2b51af69e17c7 -https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.1-pyhd8ed1ab_0.conda#434061aaa26dafd0e21a6184f6fb52bf +https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda#8e7be844ccb9706a999a337e056606ab +https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda#77ae41598d63b453bb3c9052f4a14c4b https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda#a0a4a3035667fc34f29bfbd5c190baa6 https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py312h8a6388b_1.conda#8ab9943e70b341775f266f8fd1e2911b https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda#2934f256a8acfe48f6ebb4fce6cde29c https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda#c3946ed24acdb28db1b5d63321dbca7d https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py312hcf08926_101.conda#8754d1f93fa0936d304d2ad2de09f7ba -https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda#4ce3dfa4440b4aa5364f4a6fcc3d7cb3 +https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda#5f394d6ab27b83833789bbe6bcf87518 https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_1.conda#972bdca8f30147135f951847b30399ea -https://conda.anaconda.org/conda-forge/noarch/botocore-1.41.5-pyhd8ed1ab_0.conda#14350e9c15a4f69bf9ca92db6cea7e36 -https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.15.0-pyhd8ed1ab_0.conda#fc70a7ca6da2b4f8ede5409b673a8b72 -https://conda.anaconda.org/conda-forge/noarch/boto3-1.41.5-pyhd8ed1ab_0.conda#6d4bd063f1efa1241b3de028dba873ea -https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.2-h7983711_0.conda#e630b1baa02a5eeb0ef351c6125865c4 +https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda#82b5c1f7d596ddd3bf5c096c1204a553 +https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda#061b5affcffeef245d60ec3007d1effd +https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda#524a4e4a5961300edb23f363225f617a +https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda#2c49b6f6ec9a510bbb75ecbd2a572697 https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda#f36107fa2557e63421a46676371c4226 -https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h53ec75d_1.conda#5e9bee5fa11d91e1621e477c3cb9b9ba +https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda#97d7a1cda5546cb0bbdefa3777cb9897 https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.21.0-h694c41f_1.conda#62636543478d53b28c1fc5efce346622 https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7d3f41d_1.conda#952dd64cff4a72cadf5e81572a7a81c8 https://conda.anaconda.org/conda-forge/osx-64/orc-2.2.1-hd1b02dc_0.conda#b4646b6ddcbcb3b10e9879900c66ed48 @@ -466,50 +468,50 @@ https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.11.0-h https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.15.0-h388f2e7_1.conda#6b5f36e610295f4f859dd9cf680bbf7d https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.13.0-h1984e67_1.conda#ef5701f2da108d432e7872d58e8ac64e https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.13.2-h0e8e1c8_1.conda#32eb613f88ae1530ca78481bdce41cdd -https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.12.5-h8616949_1.conda#305811c179c589d43cd2cfc9c79e5614 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.2.4-h7df70e9_3.conda#542b06622aa7982c2109b175bd97c20a -https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.2.7-h7df70e9_4.conda#def63445d08ca87ffd5640123b1251a9 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.9.10-h6b06ba2_1.conda#dde787691f56ea7f38ef7a8320dbe443 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.23.3-h37ca1a1_3.conda#306fbfbaccbcc783414b021605c8d44b -https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.3.1-h7df70e9_8.conda#e80fc40b09b24a964df1a27d76162a4f -https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.10.7-hae1f1d1_4.conda#244da078812a3c36052903b54765ada5 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.9.1-hc522490_7.conda#107b6aa58d0e1ec75dc2928766d40e10 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.10.1-h302669f_2.conda#ef205910128590c1376eba06e30fb319 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.13.3-h8520d3f_10.conda#9ff1c2a0c57938d1e9d3d6638654a260 -https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.5.6-he1d6026_6.conda#e2d5374184db6eaf7a8674c9a752683b -https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.35.2-h8562d08_4.conda#b9385591455648399945db84870b89eb -https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.606-hb13558a_7.conda#db747b33e5da0e875a5e78201c94e1e7 -https://conda.anaconda.org/conda-forge/osx-64/libarrow-22.0.0-hd1700fa_4_cpu.conda#9c95de09ac58d37d8cfbaa54b7174ee5 -https://conda.anaconda.org/conda-forge/osx-64/libarrow-compute-22.0.0-h7751554_4_cpu.conda#673d1c37cbbf9a99235337cbb6969dff -https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312hefc66a4_0_cpu.conda#8f850be5abc40c5d57562024b140db43 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.12.6-h8616949_0.conda#c7f2d588a6d50d170b343f3ae0b72e62 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.2.4-h901532c_4.conda#b384fb05730f549a55cdb13c484861eb +https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.2.7-h901532c_5.conda#cccf553ce36da9ae739206b69c1a4d28 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.9.13-hea39f9f_1.conda#cbf7be9e03e8b5e38ec60b6dbdf3a649 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.23.3-hf559bb5_5.conda#d9cc056da3a1ee0a2da750d10a5496f3 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.3.1-h901532c_9.conda#abb79371a321d47da8f7ddca128533de +https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.10.7-h924c446_5.conda#acff093ebb711857fb78fae3b656631c +https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.9.3-hdff831d_0.conda#a04fb222805ce5697065036ae1676436 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.11.3-he30762a_1.conda#33c653401dc7b016b0011cb4d16de458 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.13.3-ha72ff4e_11.conda#96f22c912f1cf3493d9113b9fd04c912 +https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.5.7-ha05da6a_1.conda#e0d71662f35b21fb993484238b4861d9 +https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.35.4-h7484968_0.conda#31db311b3005b16ff340796e424a6b3c +https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.606-h386ebac_10.conda#768c6b78e331a2938af208e062fd6702 +https://conda.anaconda.org/conda-forge/osx-64/libarrow-22.0.0-h563529e_6_cpu.conda#9cdb6f5779fb935d84e7cdaa00d5c26d +https://conda.anaconda.org/conda-forge/osx-64/libarrow-compute-22.0.0-h7751554_6_cpu.conda#1feda49b7df6cf16240c90b06e4220ec +https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312h46fdf74_1_cpu.conda#b4d567854dafe5320194c1abc36b1829 https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-ha90c15b_1.conda#e38e467e577bd193a7d5de7c2c540b04 https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.22.0-h687e942_1.conda#69251ed374b31a5664bf5ba58626f3b7 -https://conda.anaconda.org/conda-forge/osx-64/libparquet-22.0.0-habb56ca_4_cpu.conda#67ff6ca0e1fdec92bdc20fa593390ba1 -https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-22.0.0-h2db2d7d_4_cpu.conda#f9e754e716ed279c88f25d17fc6b5764 -https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-22.0.0-h2db2d7d_4_cpu.conda#64d5722c982b89dabf848feb7edf97f9 -https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-22.0.0-h4653b8a_4_cpu.conda#c2f7a8fec7db2ce12d5aaabeed2cedea -https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_0.conda#4f99ad72cb5935960c38b11f6c923446 +https://conda.anaconda.org/conda-forge/osx-64/libparquet-22.0.0-habb56ca_6_cpu.conda#886dc122316a8511edba3a3c53588916 +https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-22.0.0-h2db2d7d_6_cpu.conda#6167eebc2d1a893b5c9da5b28803c9b1 +https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-22.0.0-h2db2d7d_6_cpu.conda#d5a2c15f5cb9928b4d5847b2ca13af5f +https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-22.0.0-h4653b8a_6_cpu.conda#0420b6cb0c11dfaf0dbd607cd808cf9c +https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_1.conda#e7fd976112d137d386d0a06041a5c88b https://conda.anaconda.org/conda-forge/noarch/arcosparse-0.4.2-pyhd8ed1ab_0.conda#9a005ba5f540619a1343587b4ee3d95e -https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda#e6f85f3cd0c5aff4ef0e07e80f49fa39 +https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda#9e18b048c69d2d72bc69d120a435d731 https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda#c138c7aaa6a10b5762dcd92247864aff https://conda.anaconda.org/conda-forge/osx-64/cartopy-0.25.0-py312h86abcb1_1.conda#63eee5b20461ca89c738160bd502363e -https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda#7da7ccd349dbf6487a7778579d2bb971 +https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda#d7585b6550ad04c8c5e21097ada2888e https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda#9614359868482abba1bd15ce465e3c42 -https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda#fa7f71faa234947d9c520f89b4bda1a2 +https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda#2b694bad8a50dc2f712f5368de866480 https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda#24ed1dc544b101075fa7462be5c3a5c5 https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda#e557abf678a0bf100fe7cf9d2b4f4a72 -https://conda.anaconda.org/conda-forge/osx-64/lz4-4.4.5-py312ha706d14_0.conda#1034bca291bc0dded1bb476cfd0da406 +https://conda.anaconda.org/conda-forge/osx-64/lz4-4.4.5-py312ha706d14_1.conda#157f8c5e9e63b3a4ceab8e73386f1629 https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_1.conda#e52c2ef711ccf31bb7f70ca87d144b9e https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda#f88bb644823094f436792f80fba3207e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda#0401a17ae845fa72c7210e206ec5647d https://conda.anaconda.org/conda-forge/osx-64/cytoolz-1.1.0-py312h80b0991_1.conda#d8c2036f98a0f89e52cdeeda6e4d9e77 -https://conda.anaconda.org/conda-forge/noarch/distributed-2025.11.0-pyhcf101f3_0.conda#a072de34cd7024a54f1b309bc9e36a3b +https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda#c15e359a982395be86a7576a91f9c5f5 https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda#f301f72474b91f1f83d42bcc7d81ce09 -https://conda.anaconda.org/conda-forge/noarch/dask-2025.11.0-pyhcf101f3_0.conda#1f97a470dbcf4a633e8da14e08428d42 +https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda#a86541105aa7920d2147d48bf370dc08 https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda#fa9e9ec7bf26619a8edd3e11155f15d6 https://conda.anaconda.org/conda-forge/osx-64/jasper-4.2.8-h9ce442b_0.conda#155c61380cc98685f4d6237cb19c5f97 -https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.44.0-h163e534_0.conda#297d010f244b28d465a538b4f5044057 -https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py312h391ab28_1.conda#e77e671dc2e1e14204e333e8aacca0e8 +https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.45.0-hef68630_0.conda#c2d8f6d37131139dbaeba869b036b9cb +https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py312hdc59d4f_1.conda#bd1f02e8177a93d84ec4379ca487bde8 https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda#0f12f8436a2a238e255d49ea3f8aefe2 https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda#e585c71c2ed48e4eee1663d627ddcd47 https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda#ea90ece1da754ca0c5d6766eb59908c2 diff --git a/envs/default_osx-arm64.pin.txt b/envs/default_osx-arm64.pin.txt index 2a9f4746d4..7364f4e54a 100644 --- a/envs/default_osx-arm64.pin.txt +++ b/envs/default_osx-arm64.pin.txt @@ -1,15 +1,16 @@ # Generated by `pixi workspace export` # platform: osx-arm64 @EXPLICIT -https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda#4222072737ccff51314b5ece9c7d6f5a +https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda#ad659d0a2b3e47e38d829aa8cad2d610 https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda#369964e85dc26bfe78f41399b366c435 https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda#a73d54a5abba6543cb2f0af1bfbd6851 https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda#068d497125e4bf8a66bf707254fff5ae -https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda#63ef3f6e6d6d5c589e64f11263dc5676 -https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda#f0991f0f84902f6b6009b4d2350a83aa +https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda#f8381319127120ce51e081dce4865cf4 +https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda#bddacf101bb4dd0e51811cb69c7790e2 https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.0-h5503f6c_0.conda#b34dc4172653c13dcf453862f251af2b -https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h9a5124b_0.conda#67e50e5bd4e5e2310d66b88c4da50096 -https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda#d6df911d4564d77c4374b02552cb17d1 +https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda#1e93aca311da0210e660d2247812fa02 +https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda#4b0bf313c53c3e89692f020fb55d5f2c +https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda#009f0d956d7bfb00de86901d16e486c7 https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-he5f378a_0.conda#411ff7cd5d1472bba0f55c0faf04453b https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.3-haf25636_0.conda#b79875dbb5b1db9a4a22a4520f918e1a https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda#58fd217444c2a5701a44244faf518206 @@ -18,29 +19,29 @@ https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda# https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda#9efbfdc37242619130ea42b1cc4ed861 https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda#9d64911b31d57ca443e9f1e36b04385f https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda#c3efd25ac4d74b1584d2f7a57195ddf1 -https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.6-h4a912ad_0.conda#4a274d80967416bce3c7d89bf43923ec +https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda#206ad2df1b5550526e386087bef543c7 https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda#a44032f282e7d2acdeb1c240308052dd -https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_14.conda#1b3fb17dd26afdafe0bf30fafcb900a2 -https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_14.conda#4fa9de90ec33234997aed5871d20f14e -https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_14.conda#3187356c87594c3ebc3b8c0bd72a7e9f -https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda#a18a7f471c517062ee71b843ef95eb8a -https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-2_h51639a9_openblas.conda#811e17323f5afeeb5eb6cc83d90c4292 -https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-2_hd9741b5_openblas.conda#f63fdb2504b1fc4527314641fa34efb4 -https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.6-hf598326_0.conda#3ea79e55a64bff6c3cbd4588c89a527a -https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-2_hb0561ab_openblas.conda#f0d6abadf8be9bf4271123eb37ac4f4e +https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_16.conda#8b216bac0de7a9d60f3ddeba2515545c +https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_16.conda#265a9d03461da24884ecc8eb58396d57 +https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_16.conda#11e09edf0dde4c288508501fe621bab4 +https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda#a6f6d3a31bb29e48d37ce65de54e2df0 +https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda#bcc025e2bbaf8a92982d20863fe1fb69 +https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda#ca9d752201b7fa1225bca036ee300f2b +https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.8-hf598326_0.conda#780f0251b757564e062187044232c2b7 +https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda#efd8bd15ca56e9d01748a3beab8404eb https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda#d83fc83d589e2625a3451c9a7e21047c -https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312ha6bbf71_1.conda#d196eb3cfffef4a8ea51fbb55dbe8188 -https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda#4de79c071274a53dcaf2a8c749d1499e -https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.2-pyhd8ed1ab_0.conda#4e717929cfa0d49cef92d911e31d0e90 -https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.7.2-py312h79e0ffc_0.conda#c3b31a2189b2a54272ab6831fe16106d +https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda#1f5a9253e1c3484a5c1df0b8145a9ce3 +https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda#cb72cedd94dd923c6a9405a3d3b1c018 +https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.3-pyhd8ed1ab_0.conda#615de2a4d97af50c350e5cf160149e77 +https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.8.0-np2py312he5ca3e3_1.conda#ed7887c51edfa304c69a424279cec675 https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda#fd5062942bfa1b0bd5e0d2a4397b099e https://conda.anaconda.org/conda-forge/osx-arm64/pyomo-6.9.5-py312h455b684_0.conda#e3f09b2883d61971b847d314f0085d55 https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda#bc8e3267d44011051f2eb14d22fb0960 -https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda#88476ae6ebd24f39261e0854ac244f33 +https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda#7ead57407430ba33f681738905278d03 https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda#3339e3b65d58accf4ca4fb8748ab16b3 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda#5b8d21249ff20967101ffa321cab24e8 -https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.3.3-py312h5978115_1.conda#964f71d4c42a4ef3b1e77da7b51c0f1b -https://conda.anaconda.org/conda-forge/noarch/networkx-3.6-pyhcf101f3_0.conda#6725bfdf8ea7a8bf6415f096f3f1ffa5 +https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.3.3-py312h5978115_2.conda#fcbba82205afa4956c39136c68929385 +https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda#a2c1eeadae7a309daed9d62c96012a2b https://conda.anaconda.org/conda-forge/osx-arm64/highspy-1.12.0-np2py312h5a6ab93_0.conda#1776611c8a9375154d061a82306d4fa3 https://conda.anaconda.org/conda-forge/noarch/tsam-2.3.9-pyhd8ed1ab_0.conda#2b661fd7a718757b2e91bbcac81deb48 https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda#5d99943f2ae3cc69e1ada12ce9d4d701 @@ -53,32 +54,32 @@ https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0. https://conda.anaconda.org/conda-forge/noarch/argparse-dataclass-2.0.0-pyhd8ed1ab_1.conda#3c0e753fd317fa10d34020a2bc8add8e https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda#e9bb00d8c7d26a5cd220d3d73bee45fb https://conda.anaconda.org/conda-forge/noarch/reretry-0.11.8-pyhd8ed1ab_1.conda#b965b0dfdb3c89966a6a25060f73aa67 -https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.2.3-pyhd4c3c12_0.conda#0de5b58d7772fb879c4117fb37121e0b -https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hd0aec43_5.conda#6adec79779c11d1e938196c6eaf95921 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef -https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda#503ac138ad3cfc09459738c0f5750705 -https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.25.0-py312h37e1c23_1.conda#9300889791d4decceea3728ad3b423ec +https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda#b894c6a2d0612da952c9989ac7a22d16 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda#461219d1a5bd61342293efa2c0c90eac https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda#8e6923fc12f1fe8f8c4e5c9f343256ac https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda#0a802cb9888dd14eeefc611f05c40b6e https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda#164fc43f0b53b6e3a7bc7dce5e4f1dc9 https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda#311fcf3f6a8c4eb70f912798035edd35 -https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda#436c165519e140cb08d246a4472a9d6a +https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda#ab136e4c34e97f34fb621d2592a393d8 +https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.3.0-py312h44dc372_0.conda#c2d5961bfd98504b930e704426d16572 +https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda#9272daa869e03efe68833e3dc7a02130 https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda#53abe63df7e10a6ba605dc5f9f961d36 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda#a22d1fd9bf98827e280a02875d9a007a -https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda#96a02a5c1a65470a7e4eedb644c872fd -https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda#db0c6b99149880c8ba515cf4abe93ee4 +https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda#eacc711330cd46939f66cd401ff9c44b +https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda#c65df89a0b2e321045a9e01d1337b182 https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda#84c5c40ea7c5bbc6243556e5daed20e7 -https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312h05a80bc_0.conda#c53c9d2886e552bcdcaf6f5c1abd86f7 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef +https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda#503ac138ad3cfc09459738c0f5750705 +https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312hd13a024_1.conda#afc792a91a796ebe05f883534ff0d437 https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda#42834439227a4551b939beeeb8a4b085 https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.3.1-pyhd8ed1ab_0.conda#d4f3f31ee39db3efecb96c0728d4bdbf https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.4.0-pyhd8ed1ab_0.conda#a55b220de8970208f583e38639cfbecc https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2#269943ac6637718947763b4f989710fc -https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda#5c7a868f8241e64e1cf5fdf4962f23e2 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda#1bd2e65c8c7ef24f4639ae6e850dacc2 https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda#03fe290994c5e4ec17293cfb6bdce520 -https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda#4b69232755285701bc86a5afe4d9933a +https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda#b8993c19b0c32a2f7b66cbb58ca27069 https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda#8e662bd460bda79b1ea39194e3c4c9ab -https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda#9958d4a1ee7e9c768fe8f4fb51bd07ea +https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.1-pyhcf101f3_0.conda#11a2b8c732d215d977998ccd69a9d5e8 https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda#4f14640d58e2cc0aa0819d9d8ba125bb https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda#d6989ead454181f4f9bc987d3dc4e285 https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda#17232431f65ce347f972f0fd95d2e97a @@ -86,31 +87,31 @@ https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda#78a https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h5748b74_0.conda#6a2d7f8a026223c2fa1027c96c615752 https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda#7b2af124684a994217e62c641bca2e48 https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda#89d5edf5d52d3bc1ed4d7d3feef508ba -https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda#959484a66b4b76befcddc4fa97c95567 +https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda#de98449f11d48d4b52eefb354e2bfe35 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda#1500fccf5e46c7f91d14925449ff3632 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda#e6fd8cfb23b294da699e395dbc968d11 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda#98f75f2ca3a222992e2230d7afc54bb8 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2#e75b9c422bcc3c9b52679dedb84f3b71 https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda#9d1659c8332e9822e347e115e6bb4d0c -https://conda.anaconda.org/conda-forge/osx-arm64/liblapacke-3.11.0-2_h1b118fd_openblas.conda#dbc9ede051bbb1057f5554d31afba596 +https://conda.anaconda.org/conda-forge/osx-arm64/liblapacke-3.11.0-5_h1b118fd_openblas.conda#f77f540d134d9edec0dbf69dba56a4ad https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-utils-2.11.12-hbea9910_7.conda#734bf2626447a4dfc6c5ded5279758fc https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-osi-0.108.11-ha2b0f8f_8.conda#57ecf4592cfcb8fc5806f3ddd241f5fe -https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-clp-1.17.10-ha5fe85a_3.conda#f1c94cb2a0b489a8561e92969c08d57f -https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-cgl-0.60.9-h24d7dbf_6.conda#6471c23e2a4d037d30eddbdbcb31fe11 -https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-cbc-2.10.12-h0c75da4_4.conda#3795d77c93c3b02009f6bbc4b2c8e1aa -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda#6c8979be6d7a17692793114fa26916e8 -https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.3-pyhd8ed1ab_0.conda#abbe8c85619c87c4f4f61b44173434af +https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-clp-1.17.10-he934a02_4.conda#7ee39de6862705eb7bcad3bd95ecba34 +https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-cgl-0.60.9-h034796e_7.conda#7662f50cfe60644ba76c7b3a69db64cb +https://conda.anaconda.org/conda-forge/osx-arm64/coin-or-cbc-2.10.12-h2032c40_5.conda#bd1ca992b0a0241fdfb49447d5b674aa +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda#3687cc0b82a8b4c17e1f0eb7e47163d5 +https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda#d6bd3cd217e62bbd7efe67ff224cd667 https://conda.anaconda.org/conda-forge/noarch/amply-0.1.6-pyhd8ed1ab_1.conda#5a81866192811f3a0827f5f93e589f02 https://conda.anaconda.org/conda-forge/osx-arm64/pulp-2.8.0-py312h38bd297_3.conda#c04e802b868f8d004e42d4a35f6a30f0 -https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.1.3-py312h37e1c23_0.conda#d0b2f83de57eafaa6d7700b589c66096 +https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.1-py312hb3ab3e3_0.conda#3cc4a5c8e49c40441f03dab773f2bc28 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda#019a7385be9af33791c989871317e1ed https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda#23029aae904a2ba587daba708208012f https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda#b38fe4e78ee75def7e599843ef4c1ab0 https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.30.0-py312h6ef9ec0_0.conda#a7cfbbdeb93bb9a3f249bc4c3569cd4c -https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda#c7944d55af26b6d2d7629e27e9a972c1 +https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda#537296d57ea995666c68c821b00e360b https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda#870293df500ca7e18bedefa5838a22ab https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda#439cd0f567d697b20a8f45cb70a1005a -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda#341fd940c242cf33e832c0402face56f +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda#ada41c863af263cc4c5fcbaff7c3e4dc https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda#bbe1963f1e47f594070ffe87cdf612ea https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.3-py312h5748b74_0.conda#82221456841d3014a175199e4792465b https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda#04558c96691bed63104678757beb4f8d @@ -118,18 +119,18 @@ https://conda.anaconda.org/conda-forge/osx-arm64/immutables-0.21-py312h163523d_2 https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda#7fe569c10905402ed47024fc481bb371 https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda#87f47a78808baf2fa1ea9c315a1e48f1 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda#7c14f3706e099f8fcd47af2d494616cc -https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.45-pyhff2d567_0.conda#b91d463ea8be13bcbe644ae8bc99c39f +https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda#74c0cfdd5359cd2a1f178a4c3d0bd3a5 https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2#e270fff08907db8691c02a0eda8d38ae https://conda.anaconda.org/conda-forge/noarch/conda-inject-1.3.2-pyhd8ed1ab_0.conda#e52c2a160d6bd0649c9fafdf0c813357 https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda#f4e90937bbfc3a4a92539545a37bb448 -https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.0-pyhdfd78af_0.conda#e28575d609ea3f36ff6b75dc1fb08396 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2#1e3d84ab0cd46fbf1dd4e5b290f7c7a5 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.0-pyhdfd78af_0.conda#6f481701e5b4494d77b37527f153a52c +https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda#71856e8d31fc4396cb4b3b57c9e7fb83 +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda#7d4f2bf739967798eb4d8c02d59cf36c +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda#01e79189d86f278322d0807f7d1dbada https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2#9b1db7127119f513696d620eefe7bf67 -https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.7-h382de68_0.conda#2eb2200b2b7bbb9fb8870a2f56394384 +https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda#b9b8e12ab933388f7a48d37cb8448a49 https://conda.anaconda.org/conda-forge/noarch/xarray-2025.6.1-pyhd8ed1ab_1.conda#145c6f2ac90174d9ad1a2a51b9d7c1dd https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda#9aa358575bbd4be126eaa5e0039f835c -https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.1-he8f07e4_0.conda#8b3eb23ba0e58ecddf576b618561ba58 +https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.2-h77b7338_0.conda#93796186d49d0b09243fb5a8f83e53b6 https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.6.0-h07db88b_0.conda#e5e7d467f80da752be17796b87fe6385 https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.1.2-hc919400_0.conda#f0695fbecf1006f27f4395d64bd0c4b8 https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.25-hc11a715_0.conda#a6130c709305cd9828b4e1bd9ba0000c @@ -137,47 +138,51 @@ https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda#a74 https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.1-h4030677_1.conda#e2a72ab2fa54ecb6abab2b26cde93500 https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda#b68e8f66b94b44aaa8de4583d3d4cc40 https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda#36d33e440c31857372a72137f78bacf5 -https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.5-h5505292_0.conda#f8cd1beb98240c7edb1a95883360ccfa +https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.6-hc919400_0.conda#bcb3cba70cf1eec964a03b4ba7775f01 https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda#a4b4dd73c67df470d091312ab87bf6ae https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda#44083d2d2c2025afca315c7a172eab2b https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda#c6dc8a0fdec13a0565936655c33069a1 -https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.17.0-hdece5d2_0.conda#791003efe92c17ed5949b309c61a5ab1 -https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.7.0-hf83150c_0.conda#2022111c3d1d4ce1aaedb5fff3a247cf -https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda#5eb22c1d7b3fc4abb50d92d621583137 -https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.3.0-hd62221f_0.conda#619c817c693a09599ecb7e864d538f63 +https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.18.0-he38603e_0.conda#36190179a799f3aee3c2d20a8a2b970d +https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.7.1-h46dec42_0.conda#428720dc6e9451b0ec8a60f66ba8f04f +https://conda.anaconda.org/conda-forge/osx-arm64/xerces-c-3.3.0-h25f632f_1.conda#0b886d06130b774f086d3b2ce0b7277a https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda#9b4190c4055435ca3502070186eba53a +https://conda.anaconda.org/conda-forge/osx-arm64/muparser-2.3.5-h11e0b38_0.conda#1cdbe54881794ee356d3cba7e3ed6668 https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-h286801f_1.conda#01511afc6cc1909c5303cf31be17b44f https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda#4d5a7445f0b25b6a3ddbb56e790f5251 -https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h0ff4647_0.conda#438c97d1e9648dd7342f86049dd44638 -https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h9329255_0.conda#fb5ce61da27ee937751162f86beba6d1 +https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda#7eed1026708e26ee512f43a04d9d0027 +https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda#fd804ee851e20faca4fecc7df0901d07 https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda#e3170d898ca6cb48f1bb567afb92f775 -https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-devel-2.15.1-h9329255_0.conda#7d270ae441104772ef25a7adfb8f4e6e +https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-devel-2.15.1-h8d039ee_1.conda#8975a4d0277920627000f0126c3c2b48 https://conda.anaconda.org/conda-forge/osx-arm64/geos-3.14.1-h5afe852_0.conda#4238412c29eff0bb2bb5c60a720c035a https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha909e78_20.conda#d07359797436cfc891b38e203cf0caac https://conda.anaconda.org/conda-forge/osx-arm64/minizip-4.0.10-hff1a8ea_0.conda#93def148863d840e500490d6d78722f9 https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-h3ab3353_2.conda#dd655a29b40fe0d1bf95c64cf3cb348d https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-gpl_ha239c29_119.conda#babf54eb886241155434878f728ea099 -https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.51-hfab5511_0.conda#06efb9eace7676738ced2f9661c59fb8 +https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda#1b80fd1eecb98f1cb7de4239f5d7dc15 https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda#e8ff9e11babbc8cd77af5a4258dc2802 https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-hc33e383_1022.conda#a91a7afac6eec20a07d9435bf1372bc1 +https://conda.anaconda.org/conda-forge/osx-arm64/libhwy-1.3.0-h48b13b8_1.conda#6375717f5fcd756de929a06d0e40fab0 +https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.2.0-hc919400_1.conda#006e7ddd8a110771134fcc4e1e3a6ffa +https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.2.0-hc919400_1.conda#b2b7c8288ca1a2d71ff97a8e6a1e8883 +https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.2.0-hc919400_1.conda#079e88933963f3f149054eec2c487bc2 +https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h913acd8_8.conda#c41ad4bd5cb936fd7662426753ff1784 https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h925e9cb_1002.conda#e56eaa1beab0e7fed559ae9c0264dd88 -https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.8.2-gpl_h46575ef_100.conda#5ab60a0e4c99d6fa08605e0ea91e4fda +https://conda.anaconda.org/conda-forge/osx-arm64/libarchive-3.8.5-gpl_h6fbacd7_100.conda#cea06a42883e807bcca32abdd122d1e7 https://conda.anaconda.org/conda-forge/osx-arm64/json-c-0.18-he4178ee_0.conda#94f14ef6157687c30feb44e1abecd577 https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda#95fa1486c77505330c20f7202492b913 -https://conda.anaconda.org/conda-forge/osx-arm64/geotiff-1.7.4-hf862be1_4.conda#111fe25c7b56f8e8f10322b4d99abe69 https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-hada39a4_1.conda#fca4a2222994acd7f691e57f94b750c5 https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h7dd00d9_1.conda#925acfb50a750aa178f7a0aced77f351 -https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.10.3-h9991b8b_27.conda#9cb16f1ba60a8a573a9c9f7c3c25e073 +https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-core-3.12.1-ha937536_0.conda#46f2059e34c6a6142ecbe2c5e4c8cf5c https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda#f22f4d4970e09d68a10b922cbb0408d3 https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda#55c7804f428719241a90b152016085a1 https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda#e9b05deb91c013e5224672a4ba9cf8d1 https://conda.anaconda.org/conda-forge/noarch/affine-2.4.0-pyhd8ed1ab_1.conda#8c4061f499edec6b8ac7000f6d586829 -https://conda.anaconda.org/conda-forge/osx-arm64/rasterio-1.4.3-py312h129b95a_3.conda#44beea59851913b722a97c5934fb212b +https://conda.anaconda.org/conda-forge/osx-arm64/rasterio-1.5.0-py312h8fc80b0_0.conda#bfdb10beb992ce47e89062dcedcb22b9 https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.2-py312h66ed876_2.conda#50b984d0f68135ac194928765013f89e https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda#27583d44e139c520d9fdc1fd7aedd58d https://conda.anaconda.org/conda-forge/noarch/pyxlsb-1.0.10-pyhd8ed1ab_0.tar.bz2#0c14e44bc93a99cdc11398311c3c0dcf -https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.1-default_h48b22c3_1002.conda#39a1c6805c7a3d2d5ad304ac015d5124 -https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h66ce52b_1.conda#6f026b94077bed22c27ad8365e024e18 +https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.2-default_ha3cc4f2_1000.conda#38b8aa4ea25d313ad951bcb7d3cd0ad3 +https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h4ddebb9_2.conda#82395152e3ba2dea9ea6a3dc17553136 https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda#eed7278dfbab727b56f2c0b64330814b https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.1-hb693164_3.conda#4e4ea852d54cc2b869842de5044662fb https://conda.anaconda.org/conda-forge/osx-arm64/mumps-include-5.8.1-h2ca763e_4.conda#8db931c3eac5b951783b1e69dd2f4736 @@ -192,9 +197,9 @@ https://conda.anaconda.org/conda-forge/osx-arm64/pyscipopt-5.6.0-py312h6b01ec3_1 https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda#3449ef730c7d483adde81993994092b9 https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.1.2-py312h35cd81b_2.conda#624173184d65db80f267b6191c1ad26d https://conda.anaconda.org/conda-forge/noarch/patsy-1.0.2-pyhcf101f3_0.conda#8678577a52161cc4e1c93fcc18e8a646 -https://conda.anaconda.org/conda-forge/osx-arm64/statsmodels-0.14.5-py312ha11c99a_1.conda#022490fa1d2b8095d91a5ea9f7e2f772 +https://conda.anaconda.org/conda-forge/osx-arm64/statsmodels-0.14.6-py312ha11c99a_0.conda#31f49265d8de9776cd15b421f24b23e0 https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda#6483b1f59526e05d7d894e466b5b6924 -https://conda.anaconda.org/conda-forge/osx-arm64/zlib-ng-2.3.1-h3470cca_0.conda#30c613d957b652b9604c5eaf8532562d +https://conda.anaconda.org/conda-forge/osx-arm64/zlib-ng-2.3.2-hed4e4f5_1.conda#75f39a44c08cb5dc4ea847698de34ba3 https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.4-hbfb3c88_0.conda#6bf3d24692c157a41c01ce0bd17daeea https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hc919400_1.conda#9d1299ace1924aa8f4e0bc8e71dd0cf7 https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.12-hc919400_1.conda#78b548eed8227a689f93775d5d23ae09 @@ -202,18 +207,15 @@ https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002 https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda#af523aae2eca6dfa1c8eec693f5b9a79 https://conda.anaconda.org/conda-forge/osx-arm64/libfreetype6-2.14.1-h6da58f4_0.conda#6d4ede03e2a8e20eb51f7f681d2a2550 https://conda.anaconda.org/conda-forge/osx-arm64/libfreetype-2.14.1-hce30654_0.conda#f35fb38e89e2776994131fbf961fa44b -https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda#92a61fd30b19ebd5c1621a5bfe6d8b5f -https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.0.0-py312h95c711c_2.conda#817cd66153338f403cf05d8a09d93fad +https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda#6631a7bd2335bb9699b1dbc234b19784 +https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.1.0-py312h4e908a4_0.conda#d831c4844e7a04eab4aa91a2c26dbbdd https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py312hd8c8125_2.conda#ddf4775023a2466ee308792ed80ca408 https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.14.1-hce30654_0.conda#1ec9a1ee7a2c9339774ad9bb6fe6caec https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-17.0.0-py312h4409184_1.conda#b0b0c7ea4888b6f4009afa7001e6adaa https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda#37293a85a0f4f77bbd9cf7aaefc62609 -https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.2.0-hc919400_1.conda#006e7ddd8a110771134fcc4e1e3a6ffa -https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.2.0-hc919400_1.conda#b2b7c8288ca1a2d71ff97a8e6a1e8883 -https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.2.0-hc919400_1.conda#079e88933963f3f149054eec2c487bc2 https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.2.0-hc919400_1.conda#377d015c103ad7f3371be1777f8b584c https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.2.0-h7d5ae5b_1.conda#48ece20aa479be6ac9a284772827d00c -https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.61.0-py312h5748b74_0.conda#581124b2a1391b41f7c9ea9cae1b699d +https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.61.1-py312h5748b74_0.conda#c14625bf00c41c00cea174f459287fc4 https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda#4c2a8fef270f6c69591889b93f9f55c1 https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h84eede6_3.conda#e3fbe173dea7137a6d766cbacf697df2 https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.10.8-py312h605b88b_0.conda#fbc4f90b3d63ea4e6c30f7733a0b5bfd @@ -223,62 +225,32 @@ https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_ https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda#46830ee16925d5ed250850503b5dc3a8 https://conda.anaconda.org/conda-forge/osx-arm64/numexpr-2.14.1-py312h3de7d89_1.conda#0d4d77d16b5032ab0b4ca3f66f14672d https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.4-h51d1e36_0.conda#8ed0f86b7a5529b98ec73b43a53ce800 -https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_he65715a_103.conda#fcc9aca330f13d071bfc4de3d0942d78 +https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda#5630e3f53d61d87caff83e0e1c6eaf33 https://conda.anaconda.org/conda-forge/osx-arm64/c-blosc2-2.22.0-hb83781b_1.conda#5e4bdded23f6d61d8351223db98bc8f3 https://conda.anaconda.org/conda-forge/osx-arm64/pytables-3.10.2-py312hc3f5fac_10.conda#744477c442aa4a1cbc442edf440f68cd -https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda#dc257b7e7cad9b79c1dfba194e92297b -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda#dbf8b81974504fa51d34e436ca7ef389 -https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 -https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c -https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 -https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc -https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 -https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 -https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda#7d9daffbb8d8e0af0f769dbbcd173a54 -https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda#d0d408b1f18883a944376da5cf8101ea -https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 -https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 -https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 -https://conda.anaconda.org/conda-forge/noarch/ipython-9.7.0-pyh53cf698_0.conda#2d6b86a2e11b8cb2f20a432158ef10b9 -https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda#d68e3f70d1f068f1b66d94822fdc644e -https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.2-py312h4409184_2.conda#fb37abf9d8222ece113ffa6128bd5357 -https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda#a7ce36e284c5faaf93c220dfc39e3abd -https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h888dc83_9.conda#26f39dfe38a2a65437c29d69906a0f68 -https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 -https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 -https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f -https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-27.1.0-py312hd65ceae_0.conda#bbd22b0f0454a5972f68a5f200643050 -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda#4ebae00eae9705b0c3d6d1018a81d047 -https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.17-py312h56d30c9_0.conda#474409589d1e7dc64692837012d752a9 -https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda#54898d0f524c9dee622d44bbb081a8ab -https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda#1849eec35b60082d2bd66b4e36dec2b6 -https://conda.anaconda.org/conda-forge/noarch/pydeck-0.8.0-pyhd8ed1ab_0.tar.bz2#176b16002a5423169bf0f4b4c0ebecaf -https://conda.anaconda.org/conda-forge/noarch/narwhals-2.12.0-pyhcf101f3_0.conda#02cab382663872083b7e8675f09d9c21 -https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.0-pyhd8ed1ab_0.conda#6d4c79b604d50c1140c32164f7eca72a +https://conda.anaconda.org/conda-forge/noarch/pydeck-0.9.1-pyhd8ed1ab_0.conda#4b13d1d2d5cba37be9fa3c0922bbf995 +https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda#37926bb0db8b04b8b99945076e1442d0 +https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda#7702bcd70891dd0154d765a69e1afa94 https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda#7177414f275db66735a17d316b0a81d6 https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda#ff5d749fd711dc7759e127db38005924 https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.3-nompi_h80c4520_103.conda#926f5ea75a8e4ad5e8c026c07eab75ba -https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.4-py312hc7121bb_2.conda#a2ed43e189d6f163a5b15ceebec4c09b -https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py312h947358d_100.conda#4d0a4809609db6402315d591d0fdc90a +https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_1.conda#bd54402123a03de02e03c509597c635b +https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py312h5d59a02_102.conda#d5d848de57b716a036e71ab3fcca7b32 https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda#c07a6153f8306e45794774cf9b13bd32 -https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.35.2-py310h34bb384_0.conda#a5f4a3ca01f292a6b21aa42bb1c5a9aa -https://conda.anaconda.org/conda-forge/noarch/polars-1.35.2-pyh6a1acc5_0.conda#24e8f78d79881b3c035f89f4b83c565c +https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 +https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 +https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f +https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.37.1-py310haaaf75b_0.conda#bb3c5484e1c5376846e1b406fd63a3c4 +https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda#1894d4373da653406c91e20ef89f05c8 https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20250512.1-cxx17_hd41c47c_0.conda#360dbb413ee2c170a0a684a33c4fc6b8 https://conda.anaconda.org/conda-forge/osx-arm64/protobuf-6.31.1-py312h2c926ec_2.conda#a772c3d86f4e74dabcae0817d2af73c5 https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda#b22fe9a3d53bc833659823e48f879db9 https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2#32bd82a6a625ea6ce090a81c3d34edeb -https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.7.1-py312h859a1db_1.conda#2203124f5a2807a20972b7dd1c18146b +https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h090f823_1.conda#0c8ad601cdbec3be85d1c62080b388d7 https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda#ba7f04ba62be69f9c9fef0c4487c210b https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-h91c62da_0.conda#060f099756e6baf2ed51b9065e44eda8 https://conda.anaconda.org/conda-forge/osx-arm64/re2-2025.11.05-h64b956e_0.conda#1b35e663ed321840af65e7c5cde419f2 -https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-6.31.1-h658db43_2.conda#155d3d17eaaf49ddddfe6c73842bc671 +https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-6.31.1-h98f38fd_4.conda#8a6b4281c176f1695ae0015f420e6aa9 https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.73.1-h3063b79_1.conda#f5856b3b9dae4463348a7ec23c1301f2 https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.73.1-py312h9bc1d27_1.conda#40ee987933a16b51f5f917187ab724f7 https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda#003094932fb90de018f77a273b8a509b @@ -288,52 +260,53 @@ https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda#58958 https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_1.conda#644bd4ca9f68ef536b902685d773d697 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda#ddf01a1d87103a152f725c7aeabffa29 https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda#c689b62552f6b63f32f3322e463f3805 -https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.2-pyhd8ed1ab_0.conda#9c265afcec13eb6e844ae51b4a4b52ad https://conda.anaconda.org/conda-forge/osx-arm64/propcache-0.3.1-py312h998013c_0.conda#d8280c97e09e85c72916a3d98a4076d7 -https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.6.3-py312hdb8e49c_0.conda#f6a2a3d93dec1aa42159639bb727c320 +https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.7.0-py312hf0dca4a_0.conda#5049f778ef3b3df42d30ffa8be4c1746 https://conda.anaconda.org/conda-forge/osx-arm64/yarl-1.22.0-py312h5748b74_0.conda#0a28337559bbd97ff6d99598c7a3ffb4 https://conda.anaconda.org/conda-forge/osx-arm64/frozenlist-1.7.0-py312h512c567_0.conda#9f016ae66f8ef7195561dbf7ce0e5944 https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda#421a865222cd0c9d83ff08bc78bf3a61 https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda#18fd895e0e775622906cdabfc3cf0fb4 -https://conda.anaconda.org/conda-forge/osx-arm64/aiohttp-3.13.2-py312he52fbff_0.conda#b4abb46248fa5cf1bc71c1b837c648a8 -https://conda.anaconda.org/conda-forge/noarch/google-auth-2.43.0-pyhd8ed1ab_0.conda#5b33d9974cab063dcf39e8671ddee1c1 -https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.26.1-pyhd8ed1ab_0.conda#6fcfcf4432cd80d05ee9c6e20830bd36 -https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda#4f543962961d34db6b5c72ebe827caf7 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda#862b63f7548be0c97e9c6f4f85959189 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.6.0-pyhcf101f3_0.conda#d079010d36f98b32766aa3a4aed57306 +https://conda.anaconda.org/conda-forge/osx-arm64/aiohttp-3.13.3-py312h9f8c436_0.conda#18c1c68638daa92ca6a8fb36f6d92691 +https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda#fa0d1dbb4ae73ca3636fe64ed0632a42 +https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.27.0-pyhd8ed1ab_0.conda#1099a038989e7f4037d3ce21e8ee9f2c +https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda#7fd8158ff94ccf28a2ac1f534989d698 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda#48fcccc0b579087018df0afc332b8bd6 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda#d05f7e8724ceb2a77edf3e39cc7760bb https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2#7b6747d7cc2076341029cff659669e8b https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 -https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.10.0-pyhd8ed1ab_0.conda#d18004c37182f83b9818b714825a7627 -https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhd8ed1ab_0.conda#fcac5929097ba1f2a0e5b6ecaa13b253 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.11.0-pyhcf101f3_0.conda#91549f296c15ef7b49ee6600e7c934c1 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 +https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda#1daaf94a304a27ba3446a306235a37ea +https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda#61b8078a0905b12529abc622406cb62c +https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda#91e3b2a0d014ac032c066a2e18051686 https://conda.anaconda.org/conda-forge/osx-arm64/bottleneck-1.6.0-np2py312h931d34d_3.conda#c0801688b09699777011e72c800eead0 -https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_0.conda#2b6cde24a62b353a81664bb219674183 +https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda#8f46def45efc90f7462e476e3fdb3de0 https://conda.anaconda.org/conda-forge/osx-arm64/rapidfuzz-3.14.3-py312h455b684_1.conda#8fa32dfbc67bfdf4fd2916d3a03ddb10 https://conda.anaconda.org/conda-forge/osx-arm64/levenshtein-0.27.3-py312h455b684_0.conda#8989afb06de47502b2f4d2be15478180 https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda#16933322051fa260285f1a44aae91dd6 -https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.11.0-py312hfd5e53c_0.conda#e1b8ae9311eadbefed27cb87ff752596 +https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.12.1-py312h07dd7c3_0.conda#41000dd333aabfc38a70ff8635cf1d6e https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda#cc293b4cad9909bf66ca117ea90d4631 -https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.1-pyha770c72_1.conda#23e25e079cd0108ec9cbae779ef4b685 +https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.2-pyha770c72_0.conda#ca79e96c1fd39ab6d12c8f99968111b1 https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda#1fcdf88e7a8c296d3df8409bf0690db4 https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda#a6997a7dcd6673c0692c61dfeaea14ab -https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.1-pyhd8ed1ab_1.conda#99baf7d3c98e77f22972757af7e774f8 -https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.4-pyhd8ed1ab_0.conda#67586682c0e1c17a2fb59386746c2a14 -https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda#146402bf0f11cbeb8f781fa4309a95d3 -https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda#d2732eb636c264dc9aa4cbee404b1a53 +https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda#3b9d40bef27d094e48bb1a821e86a252 +https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda#1cfa64a0a8211bafbb05e9b8f7e472c8 +https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda#385dca77a8b0ec6fa9b92cb62d09b43b +https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda#72e780e9aa2d0a3295f59b1874e3768b https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda#827064ddfe0de2917fb29f1da4f8f533 https://conda.anaconda.org/conda-forge/noarch/isort-7.0.0-pyhd8ed1ab_0.conda#55a61979242077b2cc377c74326ea9f0 -https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda#eec5b361dbbaa69dba05050977a414b0 -https://conda.anaconda.org/conda-forge/osx-arm64/astroid-4.0.2-py312h81bd7bf_0.conda#ad0ba493bf5f9799c1875d511fcfab7e +https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda#080a808fce955026bf82107d955d32da +https://conda.anaconda.org/conda-forge/osx-arm64/astroid-4.0.3-py312h81bd7bf_0.conda#878e9704f32987e2d770e6915ac16120 https://conda.anaconda.org/conda-forge/noarch/pylint-4.0.4-pyhcf101f3_0.conda#3a830511a81b99b67a1206a9d29b44b3 -https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda#66b8b26023b8efdf8fcb23bac4b6325d +https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda#2cfaaccf085c133a477f0a7a8657afe9 https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda#003b8ba0a94e2f1e117d0bd46aebc901 -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda#cfccfd4e8d9de82ed75c8e2c91cab375 -https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda#7ba3f09fceae6a120d664217e58fe686 +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda#6b0259cea8ffa6b66b35bae0ca01c447 +https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda#eb52d14a901e23c39e9e7b4a1a5c015f https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312ha0dd364_6.conda#678a837ca1469257c13895124d4055b8 -https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda#25f954b7dae6dd7b0dc004dab74f1ce9 +https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda#8bc5851c415865334882157127e75799 https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda#381bd45fb7aa032691f3063aff47e3a1 -https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda#af8d4882203bccefec6f1aeed70030c6 +https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda#7f3ac694319c7eaf81a0325d6405e974 https://conda.anaconda.org/conda-forge/noarch/xlrd-2.0.2-pyhd8ed1ab_0.conda#91f5637b706492b9e418da1872fd61ce https://conda.anaconda.org/conda-forge/noarch/unidecode-1.4.0-pyhcf101f3_1.conda#53cb4b14ab0841e104e2bd11ee64b840 https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda#62ed8c560f1b5b8d74ed11e68e9ae223 @@ -341,37 +314,44 @@ https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.cond https://conda.anaconda.org/conda-forge/osx-arm64/openpyxl-3.1.5-py312h4fb2c50_2.conda#18d76107ec470834b95f4b264b085161 https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda#43dd16b113cc7b244d923b630026ff4f https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda#40182a8d62a61d147ec7d3e4c5c36ac2 -https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda#18c019ccf43769d211f2cf78e9ad46c2 +https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda#fcbe3971b6017792e9b24ff451daa7f5 https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda#5267bef8efea4127aacd1f4e1f149b6e https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda#3181cf53cd50513a1a7c00aae2f08e7a https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda#193a9e54636d8d70781a3e56370f5502 -https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda#153f1b172beb7f5df84a78b2bde02f24 -https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhd8ed1ab_1.conda#71abbefb6f3b95e1668cd5e0af3affb9 +https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda#3c806a133fb9e59dca249c5a00c2ab3e +https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhcf101f3_1.conda#e1bccffd88819e75729412799824e270 +https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py312h4409184_0.conda#fde4548a1e99c14eea9752f270ab68aa https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.10.8-py312h1f38498_0.conda#534ed7eb4471c088285fdb382805e6ef https://conda.anaconda.org/conda-forge/osx-arm64/libxslt-1.1.43-hb2570ba_1.conda#90f7ed12bb3c164c758131b3d3c2ab0c https://conda.anaconda.org/conda-forge/osx-arm64/lxml-6.0.2-py312h447b5cf_2.conda#faeb7cb860a377db03cb0f074f26a5dc -https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf5-3.10.3-hdacffec_27.conda#8fb9ba30faa0ab2994a4694db0373439 -https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf4-3.10.3-he522aa2_27.conda#caf5587c96270e59396ab8695bb2d06a -https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-netcdf-3.10.3-h1c3283e_27.conda#5fc8c32f887fe53ffdcd5d4e23bf639b +https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf5-3.12.1-h2d8dc51_0.conda#b356e3d1c3ef181ae558c9615114113c +https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-hdf4-3.12.1-hc515886_0.conda#ae3152198164cce944fb4f4698c9d633 +https://conda.anaconda.org/conda-forge/osx-arm64/libgdal-netcdf-3.12.1-hd244936_0.conda#3285d660e4bbb867ea8083566c3ce080 https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-pyhd8ed1ab_0.conda#2f1ed718fcd829c184a6d4f0f2e07409 -https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda#00b54981b923f5aefcd5e8547de056d5 +https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda#7d9daffbb8d8e0af0f769dbbcd173a54 +https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda#17b43cee5cc84969529d5d0b0309b2cb https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-12.1-py312h19bbe71_0.conda#c65d7abdc9e60fd3af0ed852591adf1b https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-12.1-py312h1de3e18_0.conda#f0bae1b67ece138378923e340b940051 -https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda#e67b1b1fa7a79ff9e8e326d0caf55854 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda#a1e91db2d17fd258c64921cb38e6745a +https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda#297e2901b530c5d321c563e66a65db99 +https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda#a7ce36e284c5faaf93c220dfc39e3abd +https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h888dc83_9.conda#26f39dfe38a2a65437c29d69906a0f68 +https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-27.1.0-py312hd65ceae_0.conda#bbd22b0f0454a5972f68a5f200643050 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda#7526d20621b53440b0aae45d4797847e https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda#f6d7aa696c67756a650e91e15e88223c https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda#e51f1e4089cad105b6cac64bd8166587 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda#6bb0d77277061742744176ab555b723c -https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda#f5a4d548d1d3bdd517260409fc21e205 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda#8a3d6d0523f66cf004e563a50d9392b3 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda#00f5b8dafa842e0c27c1cd7296aa4875 +https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda#b11e360fc4de2b0035fc8aaa74f17fd6 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda#fd312693df06da3578383232528c468d https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda#2841eb5bfc75ce15e9a0054b98dcd64d -https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.0-pyhcf101f3_0.conda#2caf483992d5d92b232451f843bdc8af +https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda#c0d0b883e97906f7524e2aac94be0e0d https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda#b1a27250d70881943cca0dd6b4ba0956 https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda#08a03378bc5293c6f97637323802f480 https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda#cfc86ccc3b1de35d36ccaae4c50391f5 -https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda#2d983ff1b82a1ccb6f2e9d8784bdd6bd +https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda#7b8bace4943e0dc345fc45938826f2b8 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda#36de09a8d3e5d5e6f4ee63af49e59706 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda#a61bf9ec79426938ff785eb69dbb1960 @@ -379,33 +359,55 @@ https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda#e7cb0f5745e4c5035a460248334af7eb https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda#9b965c999135d43a3d0f7bd7d024e26a https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda#7234f99325263a5af6d4cd195035e8f2 -https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_2.conda#bfd72094f8390de02e426ac61fb7b8ee +https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda#cd2214824e36b0180141d422aba01938 https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda#85c4f19f377424eafc4ed7911b291642 https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda#0b0154421989637d424ccf0f104be51a https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2#576d629e47797577ab0f1b351297ef4a https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2#9b347a7ec10940d3f7941ff6c460b551 https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda#d3549fd50d450b6d9e7dddff25dd2110 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda#13e31c573c884962318a738405ca3487 +https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda#8368d58342d0825f0843dc6acdd0c483 https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda#f56000b36f09ab7533877e695e4e8cb0 https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-25.1.0-py312h4409184_2.conda#0a2a07b42db3f92b8dccf0f60b5ebee8 https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda#8ac12aff0860280ee0cff7fa2cf63f3b https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda#d79a87dcfa726bcea8e61275feed6f83 https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda#e7f89ea5f7ea9401642758ff50a2d9c1 -https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda#0fc93f473c31a2f85c0bde213e7c63ca +https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda#8d5f66ebf832c4ce28d5c37a0e76605c https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda#0a01c169f0ab0f91b26e77a3301fbfe4 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda#a63877cb23de826b1620d3adfccc4014 https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda#62b7c96c6cd77f8173cc5cada6a9acaa -https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda#d9d0f99095a9bb7e3641bca8c6ad2ac7 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda#e6dc3d6bf1591f0ebe8e77959e950660 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 +https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 +https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 +https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c +https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 +https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc +https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 +https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda#d0d408b1f18883a944376da5cf8101ea +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 +https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 +https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 +https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 +https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda#8481978caa2f108e6ddbf8008a345546 +https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.19-py312h56d30c9_0.conda#2542eb8df5bf05555b0c9abe65926ba3 +https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 +https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda#54898d0f524c9dee622d44bbb081a8ab +https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda#1849eec35b60082d2bd66b4e36dec2b6 +https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda#04d2e5fba67e5a1ecec8e25d6c769004 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda#513e7fcc06c82b24c84ff88ece13ac9f https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda#c85c76dc67d75619a92f51dfbce06992 -https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.0-pyhcf101f3_0.conda#3cf7402eb77b6434e830b6863a0e6118 +https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda#47b58fa741a608dac785b71b8083bdb7 https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda#6d034d3a6093adbba7b24cb69c8c621e https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda#801dbf535ec26508fac6d4b24adfb76e +https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-3.6.10-pyhd8ed1ab_0.conda#4d52bbdb661dc1b5a1c2aeb1afcd9a67 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda#05a08b368343304618b6a88425aa851a +https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-pyhd8ed1ab_2.conda#2f0ba4bc12af346bc6c99bdc377e8944 +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.8.5-pyhd8ed1ab_0.conda#47672c493015ab57d5fcde9531ab18ef https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda#9453512288d20847de4356327d0e1282 https://conda.anaconda.org/conda-forge/osx-arm64/jpype1-1.6.0-py312ha0dd364_1.conda#1b59d7c37a34e7d74fb89d245cbebd23 -https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.0-py312_0.conda#55126f693602482dc8a8677fe9bfc68f +https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.1-py312_0.conda#537aec789300ac8c576a975a9331b9ea https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda#5103f6a6b210a3912faf8d7db516918c -https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.2-hfe11c1f_1.conda#7fa063abcfb79e122989f95a42de0b2c +https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.3-hfe11c1f_0.conda#057c7247514048ebdaf89373b263ebee https://conda.anaconda.org/conda-forge/osx-arm64/graphite2-1.3.14-hec049ff_2.conda#0fc46fee39e88bbcf5835f71a9d9a209 https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda#17c3d745db6ea72ae2fce17e7338547f https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda#49023d73832ef61042f6a237cb2687e7 @@ -415,45 +417,45 @@ https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda#a7970cd949a077b7cb9696379d338681 https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.15.0-h1383a14_1.conda#7b29f48742cea5d1ccb5edd839cb5621 -https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.4-h6a3b0d2_0.conda#38f6df8bc8c668417b904369a01ba2e2 -https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.2.0-haf38c7b_0.conda#1c7ff9d458dd8220ac2ee71dd4af1be5 +https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.4-he0f2337_1.conda#36200ecfbbfbcb82063c87725434161f +https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda#37697784e23febce8eecb9c8e2554079 https://conda.anaconda.org/conda-forge/osx-arm64/fribidi-1.0.16-hc919400_0.conda#04bdce8d93a4ed181d1d726163c2d447 https://conda.anaconda.org/conda-forge/osx-arm64/pango-1.56.4-h875632e_0.conda#7d57f8b4b7acfc75c777bc231f0d31be https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.44.4-h7542897_0.conda#0b349c0400357e701cf2fa69371e5d39 https://conda.anaconda.org/conda-forge/osx-arm64/librsvg-2.60.0-h5c55ec3_0.conda#05ad1d6b6fb3b384f7a07128025725cb -https://conda.anaconda.org/conda-forge/osx-arm64/libgd-2.3.3-hb2c3a21_11.conda#4581aa3cfcd1a90967ed02d4a9f3db4b +https://conda.anaconda.org/conda-forge/osx-arm64/libgd-2.3.3-h05bcc79_12.conda#fa4a92cfaae9570d89700a292a9ca714 https://conda.anaconda.org/conda-forge/osx-arm64/gts-0.7.6-he42f4ea_4.conda#21b4dd3098f63a74cf2aa9159cbef57d https://conda.anaconda.org/conda-forge/osx-arm64/hicolor-icon-theme-0.17-hce30654_2.tar.bz2#237b05b7eb284d7eebc3c5d93f5e4bca -https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.86.2-hb9d6e3a_1.conda#5b1375a03914e5c9b895f1b7d231ae25 +https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.86.3-hb9d6e3a_0.conda#07cf8a6e2d3f9c25ee3f123bf955b34b https://conda.anaconda.org/conda-forge/osx-arm64/epoxy-1.5.10-hc919400_2.conda#3b87dabebe54c6d66a07b97b53ac5874 https://conda.anaconda.org/conda-forge/osx-arm64/atk-1.0-2.38.0-hd03087b_2.conda#57301986d02d30d6805fdce6c99074ee https://conda.anaconda.org/conda-forge/osx-arm64/gtk3-3.24.43-h5febe37_6.conda#a99f96906158ebae5e3c0904bcd45145 https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda#b3f0179590f3c0637b7eb5309898f79e -https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.0.5-ha8f0fc4_0.conda#d4e07aebff35d7ef45b3f28029ff6a4d +https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.1-hec8c438_0.conda#5b04666bf9b038e045ab9d638ebd5237 https://conda.anaconda.org/conda-forge/osx-arm64/glpk-5.0-h6d7a090_0.tar.bz2#02b868940101a06a6365c109ab1a94fe https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda#9f9840fb1c2e009fb0009a2f9461e64a -https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.10.1-py312hfd5e53c_3.conda#74c05572e1ceeca8e9b933013af8ef8e +https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.10.1-py312h515fe7d_6.conda#ac14e26b9c555ef3aee80db8fcfce7e6 https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda#4a25cae637029c5589135903aa15b3b6 https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.2-py312h84eede6_1.conda#e3973f0ac5ac854bf86f0d5674a1a289 -https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda#bf74a83f7a0f2a21b5d709997402cac4 -https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.16.1-py312h5978115_2.conda#b991f8eda74386df54753df10ded55e3 +https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda#5498feb783ab29db6ca8845f68fa0f03 +https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.16.5-py312h5978115_0.conda#1de2e6a0fda23e8fb7e31c87b3a422a8 https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda#c56a7fa5597ad78b62e1f5d21f7f8b8f https://conda.anaconda.org/conda-forge/noarch/zarr-3.1.5-pyhcf101f3_0.conda#c1844a94b2be61bb03bbb71574a0abfc -https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhd8ed1ab_0.conda#982aa48accc06494cbd2b51af69e17c7 -https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.1-pyhd8ed1ab_0.conda#434061aaa26dafd0e21a6184f6fb52bf +https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda#8e7be844ccb9706a999a337e056606ab +https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda#77ae41598d63b453bb3c9052f4a14c4b https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda#a0a4a3035667fc34f29bfbd5c190baa6 https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda#88a76b4c912b6127d64298e3d8db980c https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda#2934f256a8acfe48f6ebb4fce6cde29c https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda#c3946ed24acdb28db1b5d63321dbca7d https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py312h4eecd6b_101.conda#1f19a033f9c3f388c8f3d3c1643d6611 -https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda#4ce3dfa4440b4aa5364f4a6fcc3d7cb3 +https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda#5f394d6ab27b83833789bbe6bcf87518 https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_1.conda#972bdca8f30147135f951847b30399ea -https://conda.anaconda.org/conda-forge/noarch/botocore-1.41.5-pyhd8ed1ab_0.conda#14350e9c15a4f69bf9ca92db6cea7e36 -https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.15.0-pyhd8ed1ab_0.conda#fc70a7ca6da2b4f8ede5409b673a8b72 -https://conda.anaconda.org/conda-forge/noarch/boto3-1.41.5-pyhd8ed1ab_0.conda#6d4bd063f1efa1241b3de028dba873ea -https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.2-hd2415e0_0.conda#1ae98806b064c48f184d7c6e0ac506b6 +https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda#82b5c1f7d596ddd3bf5c096c1204a553 +https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda#061b5affcffeef245d60ec3007d1effd +https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda#524a4e4a5961300edb23f363225f617a +https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda#2255add2f6ae77d0a96624a5cbde6d45 https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda#7172339b49c94275ba42fec3eaeda34f -https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h248ca61_1.conda#3ba9d0c21af2150cb92b2ab8bdad3090 +https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda#755cfa6c08ed7b7acbee20ccbf15a47c https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-headers-1.21.0-hce30654_1.conda#c7df4b2d612208f3a27486c113b6aefc https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.21.0-he15edb5_1.conda#cbcea547d6d831863ab0a4e164099062 https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.2.1-h4fd0076_0.conda#b5dea50c77ab3cc18df48bdc9994ac44 @@ -466,50 +468,50 @@ https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.11. https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.15.0-h10d327b_1.conda#443b74cf38c6b0f4b675c0517879ce69 https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.13.0-hb288d13_1.conda#595091ae43974e5059d6eabf0a6a7aa5 https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.13.2-h853621b_1.conda#fac63edc393d7035ab23fbccdeda34f4 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.12.5-hc919400_1.conda#7338b3d3f6308f375c94370728df10fc -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.2.4-h61d5560_3.conda#2781d442c010c31abcad68703ebbc205 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.2.7-h61d5560_4.conda#4fca5f39d47042f0cb0542e0c1420875 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.9.10-hca30140_1.conda#4fc87188540710b79f4e4837968aff6c -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.23.3-h9710c81_3.conda#7082548c604681cc9bafafab7fb5d3c1 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.3.1-h61d5560_8.conda#ea7a505949c1bf4a51b2cccc89f8120d -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.10.7-hcd69b29_4.conda#9f62f3d038641e5aaebe15e3aa0a81d2 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.9.1-h8818502_7.conda#5911d3f258ad38448633e3cae7974dce -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.10.1-hd860258_2.conda#aedf566be89662b89085bede11c0731a -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.13.3-ha255ef3_10.conda#9cd47db715a96fdfb8b4a73f1a5de587 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.6-h18584fc_6.conda#217309e051c2e6cbf035b5d203154d61 -https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.35.2-h5596a46_4.conda#cbecfd2ff3b568b8b206eec25e977aba -https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.606-h95becb6_7.conda#d761024d957bd11454accf9a181f1890 -https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-22.0.0-h4a3aeba_4_cpu.conda#91aa4b66daf8ac61548cd27c5112655e -https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-compute-22.0.0-h75845d1_4_cpu.conda#461c83e1825eb0584578e7d6445ab85f -https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hea229ce_0_cpu.conda#9b8e724a37788b846f67a93d1d2c9fa7 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.12.6-hc919400_0.conda#b759f02a7fa946ea9fd9fb035422c848 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.2.4-h16f91aa_4.conda#658a8236f3f1ebecaaa937b5ccd5d730 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.2.7-h16f91aa_5.conda#ee9ebfd7b6fdf61dd632e4fea6287c47 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.9.13-h6ee9776_1.conda#8baab664c541d6f059e83423d9fc5e30 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.23.3-hbe03c90_5.conda#c249aa1a151e319d7acd05a2e1f165d2 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.3.1-h16f91aa_9.conda#8dc111381c4c73deb8b9a529b3abee4a +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.10.7-h5928ca5_5.conda#f12bd6066c693efba2e5886e2c70d7ba +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.9.3-h1ddaa69_0.conda#f0cc47ecd2058f2dd65fde1a5f6528ec +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.11.3-h8da9771_1.conda#06417cb45f131cf503d3483446cedbc3 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.13.3-haf5c5c8_11.conda#3fcd02361ce1427ae5968fcd532a85b4 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.7-h9ae9c55_1.conda#53c59e7f68bbd3754de6c8dcd4c27f86 +https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.35.4-h74951b9_0.conda#87351fb3a08425237b701c582773be1a +https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.606-h4e1b0f7_10.conda#a392fe9e9a3c6e0b65161533aca39be9 +https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-22.0.0-he6e817a_6_cpu.conda#b972d880c503c30ee178489ec76bbd6d +https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-compute-22.0.0-h75845d1_6_cpu.conda#51b139c330f194379c4271c91c9cd1c7 +https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hae6ed00_1_cpu.conda#143363499f83257747c281a7c1d77ecb https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda#1a109764bff3bdc7bdd84088347d71dc https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.22.0-h14a376c_1.conda#3161023bb2f8c152e4c9aa59bdd40975 -https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-22.0.0-h0ac143b_4_cpu.conda#028c54faa0fdd72dea6d4dd18b8c8210 -https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-22.0.0-hc317990_4_cpu.conda#e8b3dc59675ac45f8d10d31f1fd59a87 -https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-22.0.0-hc317990_4_cpu.conda#de0eff5023e9ef88889f3dd9c1834207 -https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-22.0.0-h144af7f_4_cpu.conda#ec4ab23fb266c9921dfd7c724181ebc3 -https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_0.conda#e9f07253879e83716fc0aca0ca21648a +https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-22.0.0-h0ac143b_6_cpu.conda#4939c8e3ca5f98f229be9f318df740e2 +https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-22.0.0-hc317990_6_cpu.conda#f17f28aba732a290919eecdec17677d9 +https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-22.0.0-hc317990_6_cpu.conda#cf0d62de81a3a2b7afb723b4b629879a +https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-22.0.0-h144af7f_6_cpu.conda#58a5b39bc7d23fa938affe1bfc43c241 +https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_1.conda#e6780a017f59154b1d604db0e4e84e7d https://conda.anaconda.org/conda-forge/noarch/arcosparse-0.4.2-pyhd8ed1ab_0.conda#9a005ba5f540619a1343587b4ee3d95e -https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda#e6f85f3cd0c5aff4ef0e07e80f49fa39 +https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda#9e18b048c69d2d72bc69d120a435d731 https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda#c138c7aaa6a10b5762dcd92247864aff https://conda.anaconda.org/conda-forge/osx-arm64/cartopy-0.25.0-py312h5978115_1.conda#cd69cf54cee41b81bbed095a5e2a61d7 -https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda#7da7ccd349dbf6487a7778579d2bb971 +https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda#d7585b6550ad04c8c5e21097ada2888e https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda#9614359868482abba1bd15ce465e3c42 -https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda#fa7f71faa234947d9c520f89b4bda1a2 +https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda#2b694bad8a50dc2f712f5368de866480 https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda#24ed1dc544b101075fa7462be5c3a5c5 https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda#e557abf678a0bf100fe7cf9d2b4f4a72 -https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.4.5-py312h2b25a0d_0.conda#74ad7d97fcc7d3bd5796889fe7deef94 +https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.4.5-py312h2b25a0d_1.conda#43132aaf61e6d8a59624b2da26aec518 https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_1.conda#e52c2ef711ccf31bb7f70ca87d144b9e https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda#f88bb644823094f436792f80fba3207e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda#0401a17ae845fa72c7210e206ec5647d https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.1.0-py312h4409184_1.conda#dd1322978a646bde52ea5df207d889c1 -https://conda.anaconda.org/conda-forge/noarch/distributed-2025.11.0-pyhcf101f3_0.conda#a072de34cd7024a54f1b309bc9e36a3b +https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda#c15e359a982395be86a7576a91f9c5f5 https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda#f301f72474b91f1f83d42bcc7d81ce09 -https://conda.anaconda.org/conda-forge/noarch/dask-2025.11.0-pyhcf101f3_0.conda#1f97a470dbcf4a633e8da14e08428d42 +https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda#a86541105aa7920d2147d48bf370dc08 https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda#fa9e9ec7bf26619a8edd3e11155f15d6 https://conda.anaconda.org/conda-forge/osx-arm64/jasper-4.2.8-hc0e5025_0.conda#54d2328b8db98729ab21f60a4aba9f7c -https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.44.0-h6f4dcf9_0.conda#ed0d5a772f60e3c18f35125d1e23e7e5 -https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py312ha11c99a_1.conda#c9d9d5e292a04188f6dc7eda3b67a6da +https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.45.0-h768f3a7_0.conda#73c9f89679eb90386f2787e7681e95b7 +https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py312h877c910_1.conda#b762c662b7124f206ccb1269992a6df2 https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda#0f12f8436a2a238e255d49ea3f8aefe2 https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda#e585c71c2ed48e4eee1663d627ddcd47 https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda#ea90ece1da754ca0c5d6766eb59908c2 diff --git a/envs/default_win-64.pin.txt b/envs/default_win-64.pin.txt index 4ec6080fcb..53fc97fd73 100644 --- a/envs/default_win-64.pin.txt +++ b/envs/default_win-64.pin.txt @@ -2,16 +2,16 @@ # platform: win-64 @EXPLICIT https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda#71b24316859acd00bdb8b38f5e2ce328 -https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_32.conda#58f67b437acbf2764317ba273d731f1d -https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_32.conda#378d5dcec45eaea8d303da6f00447ac0 -https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h2b53caa_32.conda#ef02bbe151253a72b8eda264a935db66 -https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda#4222072737ccff51314b5ece9c7d6f5a +https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda#242d9f25d2ae60c76b38a5e42858e51d +https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda#37eb311485d2d8b2c419449582046a42 +https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda#1e610f2416b6acdd231c5f573d754a0f +https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda#ad659d0a2b3e47e38d829aa8cad2d610 https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda#7cb36e506a7dba4817970f8adb6396f9 -https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-h4c7d964_0.conda#f98fb7db808b94bc1ec5b0e62f9f1069 +https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda#84d389c9eee640dda3d26fc5335c67d8 https://conda.anaconda.org/conda-forge/win-64/openssl-3.6.0-h725018a_0.conda#84f8fb4afd1157f59098f618cd2437e4 https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda#41fbfac52c601159df6c01f875de31b9 -https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_0.conda#f92bef2f8e523bb0eabe60099683617a -https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda#c15148b2e18da456f5108ccb5e411446 +https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda#903979414b47d777d548e5f0165e6cd8 +https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda#ba0bfd4c3cf73f299ffe46ff0eaeb8e3 https://conda.anaconda.org/conda-forge/win-64/libffi-3.5.2-h52bdfb6_0.conda#ba4ad812d2afc22b9a34ce8327a0930f https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.3-hac47afa_0.conda#8c9e4f1a0e688eef2e95711178061a0f https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda#1077e9333c41ff0be8edd1a5ec0ddace @@ -24,18 +24,18 @@ https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-7_h6c93730_netlib.c https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-7_h018ca30_netlib.conda#2e2b680a6d0b0b58b94b4ffdf8a76b5b https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-7_hc41557d_netlib.conda#a3201147bbcbbed12d51bacad285e8c4 https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda#f9ac74c3b07c396014434aca1e58d362 -https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py312hd0164fe_1.conda#a586f151952f8157e00365a564d08914 -https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda#4de79c071274a53dcaf2a8c749d1499e -https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.2-pyhd8ed1ab_0.conda#4e717929cfa0d49cef92d911e31d0e90 -https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.7.2-py312h91ac024_0.conda#640f74b19cfe413de754391df630a15a +https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py312h9b3c559_1.conda#da72702707bdb757ad57637815f165b1 +https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda#cb72cedd94dd923c6a9405a3d3b1c018 +https://conda.anaconda.org/conda-forge/noarch/joblib-1.5.3-pyhd8ed1ab_0.conda#615de2a4d97af50c350e5cf160149e77 +https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.8.0-np2py312hea30aaf_1.conda#e5cd920b237e02178573ce47ffa87e8c https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda#fd5062942bfa1b0bd5e0d2a4397b099e https://conda.anaconda.org/conda-forge/win-64/pyomo-6.9.5-py312hbb81ca0_0.conda#496b58adc1e6675dbaf649c432353e68 https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda#bc8e3267d44011051f2eb14d22fb0960 -https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda#88476ae6ebd24f39261e0854ac244f33 +https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda#7ead57407430ba33f681738905278d03 https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda#3339e3b65d58accf4ca4fb8748ab16b3 https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda#5b8d21249ff20967101ffa321cab24e8 -https://conda.anaconda.org/conda-forge/win-64/pandas-2.3.3-py312hc128f0a_1.conda#834e92822c8057d3fd682aaf762ea1fa -https://conda.anaconda.org/conda-forge/noarch/networkx-3.6-pyhcf101f3_0.conda#6725bfdf8ea7a8bf6415f096f3f1ffa5 +https://conda.anaconda.org/conda-forge/win-64/pandas-2.3.3-py312hc128f0a_2.conda#57d80e87a8b3161bcf26472deceaa556 +https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda#a2c1eeadae7a309daed9d62c96012a2b https://conda.anaconda.org/conda-forge/win-64/highspy-1.12.0-np2py312ha76dc74_0.conda#e5dd31058a613880438cdc7d379efbad https://conda.anaconda.org/conda-forge/noarch/tsam-2.3.9-pyhd8ed1ab_0.conda#2b661fd7a718757b2e91bbcac81deb48 https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda#5d99943f2ae3cc69e1ada12ce9d4d701 @@ -48,33 +48,33 @@ https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0. https://conda.anaconda.org/conda-forge/noarch/argparse-dataclass-2.0.0-pyhd8ed1ab_1.conda#3c0e753fd317fa10d34020a2bc8add8e https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda#e9bb00d8c7d26a5cd220d3d73bee45fb https://conda.anaconda.org/conda-forge/noarch/reretry-0.11.8-pyhd8ed1ab_1.conda#b965b0dfdb3c89966a6a25060f73aa67 -https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.2.3-pyhd4c3c12_0.conda#0de5b58d7772fb879c4117fb37121e0b -https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h1b5488d_5.conda#41f557b6596aa2d7bc53c48430c8ab1e -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef -https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py312he06e257_1.conda#46f7dccfee37a52a97c0ed6f33fcf0a3 -https://conda.anaconda.org/conda-forge/win-64/zstandard-0.25.0-py312he5662c2_1.conda#e9e25949b682e95535068bae33153ba6 +https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda#b894c6a2d0612da952c9989ac7a22d16 https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda#46e441ba871f524e2b067929da3051c2 https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda#e2fd202833c4a981ce8a65974fe4abd1 https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda#8e6923fc12f1fe8f8c4e5c9f343256ac https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda#0a802cb9888dd14eeefc611f05c40b6e https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda#164fc43f0b53b6e3a7bc7dce5e4f1dc9 https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.2.0-py312hc6d9e41_1.conda#e8e7a6346a9e50d19b4daf41f367366f -https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda#436c165519e140cb08d246a4472a9d6a +https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h534d264_6.conda#053b84beec00b71ea8ff7a4f84b55207 +https://conda.anaconda.org/conda-forge/win-64/backports.zstd-1.3.0-py312h06d0912_0.conda#2db2b356f08f19ce4309a79a9ee6b9d8 +https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda#9272daa869e03efe68833e3dc7a02130 https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda#53abe63df7e10a6ba605dc5f9f961d36 https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda#a22d1fd9bf98827e280a02875d9a007a -https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda#96a02a5c1a65470a7e4eedb644c872fd -https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda#db0c6b99149880c8ba515cf4abe93ee4 +https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda#eacc711330cd46939f66cd401ff9c44b +https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda#c65df89a0b2e321045a9e01d1337b182 https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda#84c5c40ea7c5bbc6243556e5daed20e7 -https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py312h84d000f_0.conda#6c687d12bb89ff376129f524fafe00a8 +https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda#12c566707c80111f9799308d9e265aef +https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py312he06e257_1.conda#46f7dccfee37a52a97c0ed6f33fcf0a3 +https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py312h232196e_1.conda#62803136695cd61ff5f980840919c15c https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda#42834439227a4551b939beeeb8a4b085 https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.3.1-pyhd8ed1ab_0.conda#d4f3f31ee39db3efecb96c0728d4bdbf https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.4.0-pyhd8ed1ab_0.conda#a55b220de8970208f583e38639cfbecc https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2#269943ac6637718947763b4f989710fc -https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda#5c7a868f8241e64e1cf5fdf4962f23e2 +https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda#1bd2e65c8c7ef24f4639ae6e850dacc2 https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda#03fe290994c5e4ec17293cfb6bdce520 -https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda#4b69232755285701bc86a5afe4d9933a +https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda#b8993c19b0c32a2f7b66cbb58ca27069 https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda#8e662bd460bda79b1ea39194e3c4c9ab -https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda#9958d4a1ee7e9c768fe8f4fb51bd07ea +https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.1-pyhcf101f3_0.conda#11a2b8c732d215d977998ccd69a9d5e8 https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda#4f14640d58e2cc0aa0819d9d8ba125bb https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda#d6989ead454181f4f9bc987d3dc4e285 https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda#17232431f65ce347f972f0fd95d2e97a @@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h6a83c73_3.conda#433699 https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.3-py312h05f76fc_0.conda#4a68f80fbf85499f093101cc17ffbab7 https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda#7b2af124684a994217e62c641bca2e48 https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda#89d5edf5d52d3bc1ed4d7d3feef508ba -https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda#959484a66b4b76befcddc4fa97c95567 +https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda#de98449f11d48d4b52eefb354e2bfe35 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda#1500fccf5e46c7f91d14925449ff3632 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda#e6fd8cfb23b294da699e395dbc968d11 https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda#98f75f2ca3a222992e2230d7afc54bb8 @@ -93,29 +93,29 @@ https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda#8579b6bb https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.1-h06f855e_0.conda#4a5ea6ec2055ab0dfd09fd0c498f834a https://conda.anaconda.org/conda-forge/win-64/libxml2-2.15.1-ha29bfb0_0.conda#87116b9de9c1825c3fd4ef92c984877b https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_10.conda#8a86073cf3b343b87d03f41790d8b4e5 -https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h64bd3f2_1002.conda#b0cac6e5b06ca5eeb14b4f7cf908619f -https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda#17c38aaf14c640b85c4617ccb59c1146 -https://conda.anaconda.org/conda-forge/win-64/mkl-include-2025.3.0-h57928b3_454.conda#763d029dbaa14187a29ca55433221003 -https://conda.anaconda.org/conda-forge/win-64/mkl-static-2025.3.0-hbcdf7a0_454.conda#7f8252abee6a24c11b08e86bf51d7d77 +https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda#3b576f6860f838f950c570f4433b086e +https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda#0f9817ffbe25f9e69ceba5ea70c52606 +https://conda.anaconda.org/conda-forge/win-64/mkl-include-2025.3.0-h57928b3_455.conda#60a88e17a01bb4afbaa103e7cf0b7f72 +https://conda.anaconda.org/conda-forge/win-64/mkl-static-2025.3.0-hbcdf7a0_455.conda#f5b1efa8e479a5457cd9b4b05c112c0a https://conda.anaconda.org/conda-forge/win-64/coin-or-utils-2.11.12-h7214e40_4.conda#3ebcb4d90b869ac257cc40b134ed4b87 https://conda.anaconda.org/conda-forge/win-64/coin-or-osi-0.108.11-hd615c49_6.conda#cc4d1ff10fcd007cdce8eeeeb5d2a47c https://conda.anaconda.org/conda-forge/win-64/coin-or-clp-1.17.10-h626fd10_2.conda#4fb1c61625995e7d0f14371bc0ba2852 https://conda.anaconda.org/conda-forge/win-64/coin-or-cgl-0.60.9-hacf86d0_5.conda#f6c0a31bbd15559ae27c11385ff1c360 https://conda.anaconda.org/conda-forge/win-64/coin-or-cbc-2.10.12-hd3ed8bd_3.conda#1a4baa2f67377e0c55199c0f6fb243c4 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda#6c8979be6d7a17692793114fa26916e8 -https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.3-pyhd8ed1ab_0.conda#abbe8c85619c87c4f4f61b44173434af +https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda#3687cc0b82a8b4c17e1f0eb7e47163d5 +https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda#d6bd3cd217e62bbd7efe67ff224cd667 https://conda.anaconda.org/conda-forge/noarch/amply-0.1.6-pyhd8ed1ab_1.conda#5a81866192811f3a0827f5f93e589f02 https://conda.anaconda.org/conda-forge/win-64/pulp-2.8.0-py312he39998a_3.conda#24137cbf886d65446010a6db084bfcef -https://conda.anaconda.org/conda-forge/win-64/psutil-7.1.3-py312he5662c2_0.conda#f6d128e33550e9e8e3864a48c8f24230 +https://conda.anaconda.org/conda-forge/win-64/psutil-7.2.1-py312he5662c2_0.conda#42ac55610af0bf0ae2a55c0f019c9e84 https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda#019a7385be9af33791c989871317e1ed https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda#23029aae904a2ba587daba708208012f https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py312h829343e_1.conda#64cbe4ecbebe185a2261d3f298a60cde https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda#a8db462b01221e9f5135be466faeb3e0 https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py312hdabe01f_0.conda#2c51baeda0a355b0a5e7b6acb28cf02d -https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda#c7944d55af26b6d2d7629e27e9a972c1 +https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda#537296d57ea995666c68c821b00e360b https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda#870293df500ca7e18bedefa5838a22ab https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda#439cd0f567d697b20a8f45cb70a1005a -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda#341fd940c242cf33e832c0402face56f +https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda#ada41c863af263cc4c5fcbaff7c3e4dc https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda#bbe1963f1e47f594070ffe87cdf612ea https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.3-py312h05f76fc_0.conda#9a50d5e7b4f2bf5db9790bbe9421cdf8 https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda#04558c96691bed63104678757beb4f8d @@ -124,28 +124,29 @@ https://conda.anaconda.org/conda-forge/win-64/pyreadline3-3.5.4-py312h2e8e312_2. https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh7428d3b_8.conda#d243aef76c0a30e4c89cd39e496ea1be https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda#87f47a78808baf2fa1ea9c315a1e48f1 https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.12-pyhd8ed1ab_0.conda#7c14f3706e099f8fcd47af2d494616cc -https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.45-pyhff2d567_0.conda#b91d463ea8be13bcbe644ae8bc99c39f +https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda#74c0cfdd5359cd2a1f178a4c3d0bd3a5 https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2#e270fff08907db8691c02a0eda8d38ae https://conda.anaconda.org/conda-forge/noarch/conda-inject-1.3.2-pyhd8ed1ab_0.conda#e52c2a160d6bd0649c9fafdf0c813357 https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyhd8ed1ab_1.conda#f4e90937bbfc3a4a92539545a37bb448 -https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.0-pyhdfd78af_0.conda#e28575d609ea3f36ff6b75dc1fb08396 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2#1e3d84ab0cd46fbf1dd4e5b290f7c7a5 -https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.0-pyhdfd78af_0.conda#6f481701e5b4494d77b37527f153a52c +https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda#71856e8d31fc4396cb4b3b57c9e7fb83 +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda#7d4f2bf739967798eb4d8c02d59cf36c +https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda#01e79189d86f278322d0807f7d1dbada https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2#9b1db7127119f513696d620eefe7bf67 -https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.7-h15e3a1f_0.conda#ae6cc1eca11c2382264ae41b883fefb5 +https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda#60eb6366deb0898dab59b993b55466af https://conda.anaconda.org/conda-forge/noarch/xarray-2025.6.1-pyhd8ed1ab_1.conda#145c6f2ac90174d9ad1a2a51b9d7c1dd https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda#9aa358575bbd4be126eaa5e0039f835c -https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.1-hdb435a2_0.conda#2a4cacda574f3377fb7e14630c9c0c73 +https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.2-hdb435a2_0.conda#bc9265bd9f30f9ded263cb762a4fc847 https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.2-hfd05255_0.conda#56a686f92ac0273c0f6af58858a3f013 https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.25-h51727cc_0.conda#e77030e67343e28b084fabd7db0ce43e https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda#c1b81da6d29a14b542da14a36c9fbf3f https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.1-h8f73337_1.conda#549845d5133100142452812feb9ba2e8 https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda#9dce2f112bfd3400f4f432b3d0ac07b2 https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda#31aec030344e962fbd7dbbbbd68e60a9 -https://conda.anaconda.org/conda-forge/win-64/libcurl-8.17.0-h43ecb02_0.conda#cfade9be135edb796837e7d4c288c0fb -https://conda.anaconda.org/conda-forge/win-64/proj-9.7.0-h9080b7b_0.conda#0e7974e38102314107afaec3c37183a0 -https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.3.0-he0c23c2_0.conda#9c600d9aaba64595d0c3561f1b9d700b +https://conda.anaconda.org/conda-forge/win-64/libcurl-8.18.0-h43ecb02_0.conda#2688214a9bee5d5650cd4f5f6af5c8f2 +https://conda.anaconda.org/conda-forge/win-64/proj-9.7.1-h7b1ce8f_0.conda#9839364b9ca98be1917a72046e5880fd +https://conda.anaconda.org/conda-forge/win-64/xerces-c-3.3.0-hac47afa_1.conda#d1097e01041cfed41c81f1e3d1f52572 https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda#889053e920d15353c2665fa6310d7a7a +https://conda.anaconda.org/conda-forge/win-64/muparser-2.3.5-he0c23c2_0.conda#013aabb169d59009bdf7d70319360e9b https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.10.0-h2466b09_1.conda#0b69331897a92fac3d8923549d48d092 https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda#f9bbae5e2537e3b06e0f7310ba76c893 https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda#be60c4e8efa55fddc17b4131aa47acbd @@ -155,30 +156,34 @@ https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-haa95264_20.conda# https://conda.anaconda.org/conda-forge/win-64/minizip-4.0.10-h9fa1bad_0.conda#2ffdc180adc65f509e996d63513c04b7 https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-hf297d47_2.conda#d6a8059de245e53478b581742b53f71d https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-gpl_h0cd62ae_119.conda#c0eeff876d19f52efddccbd4887bb66f -https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.51-h7351971_0.conda#5b98079b7e86c25c7e70ed7fd7da7da5 +https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda#638ecb69e44b6a588afd5633e81f9e61 https://conda.anaconda.org/conda-forge/win-64/uriparser-0.9.8-h5a68840_0.conda#28b4cf9065681f43cc567410edf8243d https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h68a222c_1022.conda#6800434a33b644e46c28ffa3ec18afb1 +https://conda.anaconda.org/conda-forge/win-64/libhwy-1.3.0-ha71e874_1.conda#f4649d4b6bf40d616eda57d6255d2333 +https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.2.0-hfd05255_1.conda#444b0a45bbd1cb24f82eedb56721b9c4 +https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.2.0-hfd05255_1.conda#ccd93cfa8e54fd9df4e83dbe55ff6e8c +https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.2.0-hfd05255_1.conda#450e3ae947fc46b60f1d8f8f318b40d4 +https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hf3f85d1_8.conda#60ca4943052b9634a92d841e1860b8d6 https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-h6a83c73_1002.conda#c5cb4159f0eea65663b31dd1e49bbb71 -https://conda.anaconda.org/conda-forge/win-64/libarchive-3.8.2-gpl_h26aea39_100.conda#ce09b133aaadd32f18a809260ac5c2c8 -https://conda.anaconda.org/conda-forge/win-64/geotiff-1.7.4-h73469f5_4.conda#2a62961eeffe28d84c166600e4bf6e25 +https://conda.anaconda.org/conda-forge/win-64/libarchive-3.8.5-gpl_he24518a_100.conda#8bb7102705dba973b3930c4b6094b257 https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_1.conda#3075846de68f942150069d4289aaad63 https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-hfd34d9b_1.conda#357d7be4146d5fec543bfaa96a8a40de -https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.10.3-h1a28ea4_26.conda#afd9fa059bb24e51455be49b65f76fe3 +https://conda.anaconda.org/conda-forge/win-64/libgdal-core-3.11.5-h9732b15_0.conda#be76c1e1814d584fab99d4828cd25da6 https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda#90e5571556f7a45db92ee51cb8f97af6 https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_2.conda#55c7804f428719241a90b152016085a1 https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda#e9b05deb91c013e5224672a4ba9cf8d1 https://conda.anaconda.org/conda-forge/noarch/affine-2.4.0-pyhd8ed1ab_1.conda#8c4061f499edec6b8ac7000f6d586829 -https://conda.anaconda.org/conda-forge/win-64/rasterio-1.4.3-py312h11f88aa_3.conda#9326d9bb7714077b8cba516ddf91e3a0 +https://conda.anaconda.org/conda-forge/win-64/rasterio-1.4.4-py312h6570f3b_1.conda#2a6842e0340da5357cca32c50fbceb51 https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.2-py312habbd053_2.conda#fcfcaa37b6c4efdff5279e4d8ce4ee5b https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda#27583d44e139c520d9fdc1fd7aedd58d https://conda.anaconda.org/conda-forge/noarch/pyxlsb-1.0.10-pyhd8ed1ab_0.tar.bz2#0c14e44bc93a99cdc11398311c3c0dcf -https://conda.anaconda.org/conda-forge/win-64/libgomp-15.2.0-h8ee18e1_14.conda#c21643058895b399fd413e6ba17f587f +https://conda.anaconda.org/conda-forge/win-64/libgomp-15.2.0-h8ee18e1_16.conda#ab8189163748f95d4cb18ea1952943c3 https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda#37e16618af5c4851a3f3d66dd0e11141 -https://conda.anaconda.org/conda-forge/win-64/libgcc-15.2.0-h8ee18e1_14.conda#b39b17a9f5ec5f3a395dbf0f5ee13b66 +https://conda.anaconda.org/conda-forge/win-64/libgcc-15.2.0-h8ee18e1_16.conda#1edb8bd8e093ebd31558008e9cb23b47 https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda#74558de25a206a7dff062fd4f5ff2d8b https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.1-hbc20e70_3.conda#9714a8ef685435ac5437defa415ffc5c -https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_6.conda#b749addb561373326d03a21f24be1059 -https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.6-h4fa8253_0.conda#92db366ac0d445e2a3f939b50a9437d1 +https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_7.conda#e13bc25d81b0132a0c51eb5cc179b0e9 +https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.8-h4fa8253_0.conda#0d8b425ac862bcf17e4b28802c9351cb https://conda.anaconda.org/conda-forge/win-64/mumps-seq-5.8.1-hd297af6_4.conda#69feddba6b736c7ef62f7384a0aeeadc https://conda.anaconda.org/conda-forge/win-64/ampl-asl-1.0.0-he0c23c2_2.conda#6cd7240c925d0ba5b9aee6ea1b566d87 https://conda.anaconda.org/conda-forge/win-64/ipopt-3.14.19-h75e447d_1.conda#82a54b93381f739b6e0b2c3c4080c11e @@ -188,9 +193,9 @@ https://conda.anaconda.org/conda-forge/win-64/pyscipopt-5.6.0-py312hbb81ca0_1.co https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda#3449ef730c7d483adde81993994092b9 https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.2-py312h37f46ab_2.conda#674ce7b99e43ac450b79d6c9c8a11705 https://conda.anaconda.org/conda-forge/noarch/patsy-1.0.2-pyhcf101f3_0.conda#8678577a52161cc4e1c93fcc18e8a646 -https://conda.anaconda.org/conda-forge/win-64/statsmodels-0.14.5-py312h196c9fc_1.conda#dbc75fe20560c82d95f93f3565655171 +https://conda.anaconda.org/conda-forge/win-64/statsmodels-0.14.6-py312h196c9fc_0.conda#180f6ee9579c0c6111af5a5638686a64 https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda#854fbdff64b572b5c0b470f334d34c11 -https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.3.1-h32d8bfd_0.conda#de8426202e7a7de6cc431835224f7551 +https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.3.2-h0261ad2_1.conda#bc2fba648e1e784c549e20bbe1a8af40 https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.4-h24db6dd_0.conda#5af852046226bb3cb15c7f61c2ac020a https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.5-hba3369d_1.conda#a7c03e38aa9c0e84d41881b9236eacfb https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.12-hba3369d_1.conda#8436cab9a76015dfe7208d3c9f97c156 @@ -198,18 +203,15 @@ https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.co https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda#a69bbf778a462da324489976c84cfc8c https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.14.1-hdbac1cb_0.conda#6e7c5c5ab485057b5d07fd8188ba5c28 https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.14.1-h57928b3_0.conda#3235024fe48d4087721797ebd6c9d28c -https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda#3538827f77b82a837fa681a4579e37a1 -https://conda.anaconda.org/conda-forge/win-64/pillow-12.0.0-py312h31f0997_2.conda#4155ddcc60faad07fb2a5b3b988b3741 +https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda#b6c68d6b829b044cd17a41e0a8a23ca1 +https://conda.anaconda.org/conda-forge/win-64/pillow-12.1.0-py312h31f0997_0.conda#2e481e979b46c223b3be6485113f7ad1 https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py312h78d62e6_2.conda#5dabe50380555cf2e89bd58173e88739 https://conda.anaconda.org/conda-forge/win-64/freetype-2.14.1-h57928b3_0.conda#d69c21967f35eb2ce7f1f85d6b6022d3 https://conda.anaconda.org/conda-forge/win-64/unicodedata2-17.0.0-py312he06e257_1.conda#2e4fbe70f86b42b01228cdbcc4b52351 https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda#37293a85a0f4f77bbd9cf7aaefc62609 -https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.2.0-hfd05255_1.conda#444b0a45bbd1cb24f82eedb56721b9c4 -https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.2.0-hfd05255_1.conda#ccd93cfa8e54fd9df4e83dbe55ff6e8c -https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.2.0-hfd05255_1.conda#450e3ae947fc46b60f1d8f8f318b40d4 https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.2.0-hfd05255_1.conda#6abd7089eb3f0c790235fe469558d190 https://conda.anaconda.org/conda-forge/win-64/brotli-1.2.0-h2d644bc_1.conda#bc58fdbced45bb096364de0fba1637af -https://conda.anaconda.org/conda-forge/win-64/fonttools-4.61.0-py312h05f76fc_0.conda#d21672897a9af7f78475ffe619b7e26e +https://conda.anaconda.org/conda-forge/win-64/fonttools-4.61.1-py312h05f76fc_0.conda#449a1487319070f736382d2b53bb5aec https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda#4c2a8fef270f6c69591889b93f9f55c1 https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312hf90b1b7_3.conda#9dabe26ca46b845b669408109975b922 https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.8-py312h0ebf65c_0.conda#46f73e68304eb61df083379b044e9eb9 @@ -220,61 +222,34 @@ https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.cond https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2#9a66894dfd07c4510beb6b3f9672ccc0 https://conda.anaconda.org/conda-forge/win-64/numexpr-2.14.1-py312h0c4f959_101.conda#6e1f10382b5cc01f2a2d23a7f6681f9f https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.4-h20038f6_0.conda#85a2bed45827d77d5b308cb2b165404f -https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_he30205f_103.conda#f1f7aaf642cefd2190582550eaca4658 +https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda#c1caaf8a28c0eb3be85566e63a5fcb5a https://conda.anaconda.org/conda-forge/win-64/c-blosc2-2.22.0-h2af8807_1.conda#eb7c33dcf2ff0cea48cd13f0ebba44f5 https://conda.anaconda.org/conda-forge/win-64/pytables-3.10.2-py312h20cef2e_10.conda#9b6ea0c099abd05ba2e0015a8e80c508 -https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda#dc257b7e7cad9b79c1dfba194e92297b -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda#dbf8b81974504fa51d34e436ca7ef389 -https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 -https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c -https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 -https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc -https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 -https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 -https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 -https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 -https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 -https://conda.anaconda.org/conda-forge/noarch/ipython-9.7.0-pyhe2676ad_0.conda#a1ac3cd378490356e0299d0ca95809d1 -https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda#d68e3f70d1f068f1b66d94822fdc644e -https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.2-py312he06e257_2.conda#32a980640a06fddd72f36851f792f082 -https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda#198bb594f202b205c7d18b936fa4524f -https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-h5bddc39_9.conda#a6c8f8ee856f7c3c1576e14b86cd8038 -https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 -https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 -https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f -https://conda.anaconda.org/conda-forge/win-64/pyzmq-27.1.0-py312hbb5da91_0.conda#808d263ec97bbd93b41ca01552b5fbd4 -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda#4ebae00eae9705b0c3d6d1018a81d047 -https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.17-py312ha1a9051_0.conda#113fc3e464ee11d6d65cd697e1146627 -https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh6dadd2b_0.conda#f22cb16c5ad68fd33d0f65c8739b6a06 -https://conda.anaconda.org/conda-forge/noarch/pydeck-0.8.0-pyhd8ed1ab_0.tar.bz2#176b16002a5423169bf0f4b4c0ebecaf -https://conda.anaconda.org/conda-forge/noarch/narwhals-2.12.0-pyhcf101f3_0.conda#02cab382663872083b7e8675f09d9c21 -https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.0-pyhd8ed1ab_0.conda#6d4c79b604d50c1140c32164f7eca72a +https://conda.anaconda.org/conda-forge/noarch/pydeck-0.9.1-pyhd8ed1ab_0.conda#4b13d1d2d5cba37be9fa3c0922bbf995 +https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda#37926bb0db8b04b8b99945076e1442d0 +https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda#7702bcd70891dd0154d765a69e1afa94 https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda#09066edc7810e4bd1b41ad01a6cc4706 https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda#84344a916a73727c1326841007b52ca8 https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.3-nompi_h7d90bef_103.conda#0c157867805749ddbf608766f1350e11 -https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.4-py312h196c9fc_2.conda#af5b99c9a4e8e5cd85c299b652c077e5 -https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py312h79d12a2_100.conda#b599bb301b740b9bb1089190c1b1a912 +https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_1.conda#050bf7fb12ce89a057121f790d0fc659 +https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.4-nompi_py312h8fa77f8_102.conda#ee21ff61b382ba17e980d83bf2e3d20e https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda#c07a6153f8306e45794774cf9b13bd32 -https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.35.2-py310hca7251b_0.conda#56f24763ee87604f694db3e0c74ae38c -https://conda.anaconda.org/conda-forge/noarch/polars-1.35.2-pyh6a1acc5_0.conda#24e8f78d79881b3c035f89f4b83c565c +https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda#99d689ccc1a360639eec979fd7805be9 +https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda#c20172b4c59fbe288fa50cdc1b693d73 +https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda#aaa2a381ccc56eac91d63b6c1240312f +https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.37.1-py310hca7251b_0.conda#910a4338c2ff9b850374c16fe081b1c3 +https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda#1894d4373da653406c91e20ef89f05c8 https://conda.anaconda.org/conda-forge/win-64/protobuf-6.31.1-py312hcb3287e_2.conda#989246a50fed28bc6743d77805f6cc95 https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda#b22fe9a3d53bc833659823e48f879db9 -https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_32.conda#dfc1e5bbf1ecb0024a78e4e8bd45239d +https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_34.conda#f276d1de4553e8fca1dfb6988551ebb4 https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2#cd4cc2d0c610c8cb5419ccc979f2d6ce -https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.7.1-py312h3d708b0_1.conda#182388b6abd7e6884d487a090972b1ab +https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_1.conda#91f5fad53070eed2524245d9a7902efa https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda#ba7f04ba62be69f9c9fef0c4487c210b https://conda.anaconda.org/conda-forge/win-64/libabseil-20250512.1-cxx17_habfad5f_0.conda#d6a4cd236fc1c69a1cfc9698fb5e391f https://conda.anaconda.org/conda-forge/win-64/libre2-11-2025.11.05-h0eb2380_0.conda#960713477ad3d7f82e5199fa1b940495 https://conda.anaconda.org/conda-forge/win-64/re2-2025.11.05-ha104f34_0.conda#50746f61f199c4c00d42e33f5d6cfd0b -https://conda.anaconda.org/conda-forge/win-64/libprotobuf-6.31.1-hdcda5b4_2.conda#0e44c704760bbe4b696d981c3313f665 -https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.5-h2466b09_0.conda#b1f84168da1f0b76857df7e5817947a9 +https://conda.anaconda.org/conda-forge/win-64/libprotobuf-6.31.1-hdcda5b4_4.conda#2031f591ca8c1289838a4f85ea1c7e74 +https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.6-hfd05255_0.conda#7c6da34e5b6e60b414592c74582e28bf https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.73.1-h317e13b_1.conda#855b10d858d6c078a28d670cf32baa67 https://conda.anaconda.org/conda-forge/win-64/grpcio-1.73.1-py312h9256aa6_1.conda#fec8f13db0fdbeccbc3517dd4804253e https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda#003094932fb90de018f77a273b8a509b @@ -284,52 +259,53 @@ https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda#58958 https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_1.conda#644bd4ca9f68ef536b902685d773d697 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda#ddf01a1d87103a152f725c7aeabffa29 https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda#c689b62552f6b63f32f3322e463f3805 -https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.2-pyhd8ed1ab_0.conda#9c265afcec13eb6e844ae51b4a4b52ad https://conda.anaconda.org/conda-forge/win-64/propcache-0.3.1-py312h31fea79_0.conda#8a1fef8f5796cf8076c7d1897e28ed5a -https://conda.anaconda.org/conda-forge/win-64/multidict-6.6.3-py312h05f76fc_0.conda#09a8b339af890c678ca0e56033482ca1 +https://conda.anaconda.org/conda-forge/win-64/multidict-6.7.0-py312h05f76fc_0.conda#c3ef35651feadbfa926790b0c0343197 https://conda.anaconda.org/conda-forge/win-64/yarl-1.22.0-py312h05f76fc_0.conda#d4975947624e265fa594b86ce148a0c1 https://conda.anaconda.org/conda-forge/win-64/frozenlist-1.7.0-py312hfdf67e6_0.conda#854caa541146c1c42d64c19fd63cbac9 https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda#421a865222cd0c9d83ff08bc78bf3a61 https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda#18fd895e0e775622906cdabfc3cf0fb4 -https://conda.anaconda.org/conda-forge/win-64/aiohttp-3.13.2-py312h927b8db_0.conda#21bb8466e377d3d952a48a95dd52dbad -https://conda.anaconda.org/conda-forge/noarch/google-auth-2.43.0-pyhd8ed1ab_0.conda#5b33d9974cab063dcf39e8671ddee1c1 -https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.26.1-pyhd8ed1ab_0.conda#6fcfcf4432cd80d05ee9c6e20830bd36 -https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda#4f543962961d34db6b5c72ebe827caf7 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda#862b63f7548be0c97e9c6f4f85959189 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.6.0-pyhcf101f3_0.conda#d079010d36f98b32766aa3a4aed57306 +https://conda.anaconda.org/conda-forge/win-64/aiohttp-3.13.3-py312h6b91d65_0.conda#65ebd46fdc1e28a6b035935246bd6531 +https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda#fa0d1dbb4ae73ca3636fe64ed0632a42 +https://conda.anaconda.org/conda-forge/noarch/proto-plus-1.27.0-pyhd8ed1ab_0.conda#1099a038989e7f4037d3ce21e8ee9f2c +https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda#7fd8158ff94ccf28a2ac1f534989d698 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda#48fcccc0b579087018df0afc332b8bd6 +https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda#d05f7e8724ceb2a77edf3e39cc7760bb https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2#7b6747d7cc2076341029cff659669e8b https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 https://conda.anaconda.org/conda-forge/noarch/partd-1.4.2-pyhd8ed1ab_0.conda#0badf9c54e24cecfb0ad2f99d680c163 -https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.10.0-pyhd8ed1ab_0.conda#d18004c37182f83b9818b714825a7627 -https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhd8ed1ab_0.conda#fcac5929097ba1f2a0e5b6ecaa13b253 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.11.0-pyhcf101f3_0.conda#91549f296c15ef7b49ee6600e7c934c1 +https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda#30cd29cb87d819caead4d55184c1d115 +https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda#63ccfdc3a3ce25b027b8767eb722fca8 +https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda#1daaf94a304a27ba3446a306235a37ea +https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda#61b8078a0905b12529abc622406cb62c +https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda#91e3b2a0d014ac032c066a2e18051686 https://conda.anaconda.org/conda-forge/win-64/bottleneck-1.6.0-np2py312h226b611_3.conda#a062b6b39e12d9b4a2fb8c79a0ac4b8f -https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_0.conda#2b6cde24a62b353a81664bb219674183 +https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda#8f46def45efc90f7462e476e3fdb3de0 https://conda.anaconda.org/conda-forge/win-64/rapidfuzz-3.14.3-py312hbb81ca0_1.conda#d11d0f6a81b03a090e2407755b2e4e03 https://conda.anaconda.org/conda-forge/win-64/levenshtein-0.27.3-py312hbb81ca0_0.conda#5b921bf403626767874c3f889dc24ce6 https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda#16933322051fa260285f1a44aae91dd6 -https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.11.0-py312h6e88f47_0.conda#d2d9db06ba554156ba333c450607043c +https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.11.1-py312h2d4285c_1.conda#06d59a6ca99d405ef3922808bc4fbb18 https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda#cc293b4cad9909bf66ca117ea90d4631 -https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.1-pyha770c72_1.conda#23e25e079cd0108ec9cbae779ef4b685 +https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.2-pyha770c72_0.conda#ca79e96c1fd39ab6d12c8f99968111b1 https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda#1fcdf88e7a8c296d3df8409bf0690db4 https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda#a6997a7dcd6673c0692c61dfeaea14ab -https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.1-pyhd8ed1ab_1.conda#99baf7d3c98e77f22972757af7e774f8 -https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.4-pyhd8ed1ab_0.conda#67586682c0e1c17a2fb59386746c2a14 -https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda#146402bf0f11cbeb8f781fa4309a95d3 -https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda#d2732eb636c264dc9aa4cbee404b1a53 +https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda#3b9d40bef27d094e48bb1a821e86a252 +https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda#1cfa64a0a8211bafbb05e9b8f7e472c8 +https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda#385dca77a8b0ec6fa9b92cb62d09b43b +https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda#72e780e9aa2d0a3295f59b1874e3768b https://conda.anaconda.org/conda-forge/noarch/mccabe-0.7.0-pyhd8ed1ab_1.conda#827064ddfe0de2917fb29f1da4f8f533 https://conda.anaconda.org/conda-forge/noarch/isort-7.0.0-pyhd8ed1ab_0.conda#55a61979242077b2cc377c74326ea9f0 -https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda#eec5b361dbbaa69dba05050977a414b0 -https://conda.anaconda.org/conda-forge/win-64/astroid-4.0.2-py312h2e8e312_0.conda#c5301ff9ec4c62757f2655e23eb60329 +https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda#080a808fce955026bf82107d955d32da +https://conda.anaconda.org/conda-forge/win-64/astroid-4.0.3-py312h2e8e312_0.conda#fcc689f69b73f0672547ffdf35358796 https://conda.anaconda.org/conda-forge/noarch/pylint-4.0.4-pyhcf101f3_0.conda#3a830511a81b99b67a1206a9d29b44b3 -https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda#66b8b26023b8efdf8fcb23bac4b6325d +https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda#2cfaaccf085c133a477f0a7a8657afe9 https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda#003b8ba0a94e2f1e117d0bd46aebc901 -https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda#cfccfd4e8d9de82ed75c8e2c91cab375 -https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda#7ba3f09fceae6a120d664217e58fe686 +https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda#6b0259cea8ffa6b66b35bae0ca01c447 +https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda#eb52d14a901e23c39e9e7b4a1a5c015f https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py312hf90b1b7_6.conda#7369aaa9123f029c7aee5f34381f7742 -https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda#25f954b7dae6dd7b0dc004dab74f1ce9 +https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda#8bc5851c415865334882157127e75799 https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda#381bd45fb7aa032691f3063aff47e3a1 -https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda#af8d4882203bccefec6f1aeed70030c6 +https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda#7f3ac694319c7eaf81a0325d6405e974 https://conda.anaconda.org/conda-forge/noarch/xlrd-2.0.2-pyhd8ed1ab_0.conda#91f5637b706492b9e418da1872fd61ce https://conda.anaconda.org/conda-forge/noarch/unidecode-1.4.0-pyhcf101f3_1.conda#53cb4b14ab0841e104e2bd11ee64b840 https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda#62ed8c560f1b5b8d74ed11e68e9ae223 @@ -337,16 +313,17 @@ https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.cond https://conda.anaconda.org/conda-forge/win-64/openpyxl-3.1.5-py312h83acffa_2.conda#25daa3044097c89c15b7ec7ca74434d8 https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda#43dd16b113cc7b244d923b630026ff4f https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda#40182a8d62a61d147ec7d3e4c5c36ac2 -https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda#18c019ccf43769d211f2cf78e9ad46c2 +https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda#fcbe3971b6017792e9b24ff451daa7f5 https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda#5267bef8efea4127aacd1f4e1f149b6e https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda#3181cf53cd50513a1a7c00aae2f08e7a https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda#193a9e54636d8d70781a3e56370f5502 -https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda#153f1b172beb7f5df84a78b2bde02f24 -https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhd8ed1ab_1.conda#71abbefb6f3b95e1668cd5e0af3affb9 +https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda#3c806a133fb9e59dca249c5a00c2ab3e +https://conda.anaconda.org/conda-forge/noarch/memory_profiler-0.61.0-pyhcf101f3_1.conda#e1bccffd88819e75729412799824e270 +https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py312he06e257_0.conda#4109bfc75570fe3fd08e2b879d2f76bc https://conda.anaconda.org/conda-forge/win-64/libvulkan-loader-1.4.328.1-h477610d_0.conda#4403eae6c81f448d63a7f66c0b330536 https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda#2cf0cf76cc15d360dfa2f17fd6cf9772 https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.2-hd9c3897_0.conda#fbd144e60009d93f129f0014a76512d3 -https://conda.anaconda.org/conda-forge/win-64/libclang13-21.1.6-default_ha2db4b5_0.conda#32b0f9f52f859396db50d738d50b4a82 +https://conda.anaconda.org/conda-forge/win-64/libclang13-21.1.8-default_ha2db4b5_1.conda#2dfbc5aaac3424065eb81ec9a9f49761 https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda#b785694dd3ec77a011ccf0c24725382b https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda#08c8fa3b419df480d985e304f7884d35 https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda#49023d73832ef61042f6a237cb2687e7 @@ -359,33 +336,38 @@ https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda#20e32ced54300292aff690a69c5e7b97 https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.2.0-h5f2951f_0.conda#e798ef748fc564e42f381d3d276850f0 https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.1-he0c23c2_0.conda#e9a1402439c18a4e3c7a52e4246e9e1c -https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.9.3-ha0de62e_1.conda#ca2bfad3a24794a0f7cf413b03906ade +https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.10.1-h7502b6c_0.conda#455618c3cf822705d569fe83beafe8da https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h0fbe4c1_1.conda#46034d9d983edc21e84c0b36f1b4ba61 -https://conda.anaconda.org/conda-forge/win-64/pyside6-6.9.3-py312h0c8bdd4_1.conda#6c8fd5667fe7e5717c7acbc6d7417a56 +https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py312h0c8bdd4_0.conda#23882de6dbb761a28bc4dd50c0fc0452 https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.8-py312h2e8e312_0.conda#f0302a2f16e674cf326cca5dc9cc47ee https://conda.anaconda.org/conda-forge/win-64/lxml-6.0.2-py312h2f35c63_2.conda#b1ff5c843c1ffafcb09c5a654c1b11cf -https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf5-3.10.3-h0f01001_26.conda#9e740bd823af2ca105f9ec287294e4f5 -https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf4-3.10.3-ha47b6c4_26.conda#1b25f07ffc9cb213caac2e6c12698830 -https://conda.anaconda.org/conda-forge/win-64/libgdal-netcdf-3.10.3-hbb26ad1_26.conda#d6be3a1f935968bb16930b01cd454e15 +https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf5-3.11.5-h0f01001_0.conda#9991f3ace1325cb675bc6acd36734bc6 +https://conda.anaconda.org/conda-forge/win-64/libgdal-hdf4-3.11.5-ha47b6c4_0.conda#ce8be6b16668ec653b5564c0dcd1a0aa +https://conda.anaconda.org/conda-forge/win-64/libgdal-netcdf-3.11.5-hbb26ad1_0.conda#3103aa7b336025b8d7765543c0b7a0c5 https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-pyhd8ed1ab_0.conda#2f1ed718fcd829c184a6d4f0f2e07409 https://conda.anaconda.org/conda-forge/win-64/winpty-0.4.3-4.tar.bz2#1cee351bf20b830d991dbe0bc8cd7dfe https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.15-py312h275cf98_1.conda#66255d136bd0daa41713a334db41d9f0 -https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh5737063_0.conda#4abd500577430a942a995fd0d09b76a2 -https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh5737063_1.conda#e6a4e906051565caf5fdae5b0415b654 -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda#a1e91db2d17fd258c64921cb38e6745a +https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh6dadd2b_1.conda#e43ca10d61e55d0a8ec5d8c62474ec9e +https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda#69ba308f1356f39901f5654d82405df3 +https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda#198bb594f202b205c7d18b936fa4524f +https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-h5bddc39_9.conda#a6c8f8ee856f7c3c1576e14b86cd8038 +https://conda.anaconda.org/conda-forge/win-64/pyzmq-27.1.0-py312hbb5da91_0.conda#808d263ec97bbd93b41ca01552b5fbd4 +https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda#7526d20621b53440b0aae45d4797847e https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda#f6d7aa696c67756a650e91e15e88223c https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda#e51f1e4089cad105b6cac64bd8166587 +https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda#6b6ece66ebcae2d5f326c77ef2c5a066 https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda#6bb0d77277061742744176ab555b723c -https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda#f5a4d548d1d3bdd517260409fc21e205 +https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda#8a3d6d0523f66cf004e563a50d9392b3 +https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda#00f5b8dafa842e0c27c1cd7296aa4875 +https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda#b11e360fc4de2b0035fc8aaa74f17fd6 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda#fd312693df06da3578383232528c468d https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda#2841eb5bfc75ce15e9a0054b98dcd64d -https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.0-pyhcf101f3_0.conda#2caf483992d5d92b232451f843bdc8af +https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda#c0d0b883e97906f7524e2aac94be0e0d https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda#b1a27250d70881943cca0dd6b4ba0956 https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda#08a03378bc5293c6f97637323802f480 https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda#cfc86ccc3b1de35d36ccaae4c50391f5 -https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda#2d983ff1b82a1ccb6f2e9d8784bdd6bd +https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda#7b8bace4943e0dc345fc45938826f2b8 https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2#912a71cc01012ee38e6b90ddd561e36f https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda#36de09a8d3e5d5e6f4ee63af49e59706 https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda#a61bf9ec79426938ff785eb69dbb1960 @@ -393,31 +375,51 @@ https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.con https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda#e7cb0f5745e4c5035a460248334af7eb https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda#9b965c999135d43a3d0f7bd7d024e26a https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda#7234f99325263a5af6d4cd195035e8f2 -https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py312h2e8e312_2.conda#fc28e1f2ded45c9213cc9470600a1a2b +https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda#cd2214824e36b0180141d422aba01938 https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda#85c4f19f377424eafc4ed7911b291642 https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda#0b0154421989637d424ccf0f104be51a https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2#576d629e47797577ab0f1b351297ef4a https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2#9b347a7ec10940d3f7941ff6c460b551 https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda#d3549fd50d450b6d9e7dddff25dd2110 -https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda#13e31c573c884962318a738405ca3487 +https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda#8368d58342d0825f0843dc6acdd0c483 https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda#f56000b36f09ab7533877e695e4e8cb0 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-25.1.0-py312he06e257_2.conda#5dc3781bbc4ddce0bf250a04c1a192c2 https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda#8ac12aff0860280ee0cff7fa2cf63f3b https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda#d79a87dcfa726bcea8e61275feed6f83 https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda#e7f89ea5f7ea9401642758ff50a2d9c1 -https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda#0fc93f473c31a2f85c0bde213e7c63ca +https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda#8d5f66ebf832c4ce28d5c37a0e76605c https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda#0a01c169f0ab0f91b26e77a3301fbfe4 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda#a63877cb23de826b1620d3adfccc4014 https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda#62b7c96c6cd77f8173cc5cada6a9acaa -https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda#d9d0f99095a9bb7e3641bca8c6ad2ac7 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda#e6dc3d6bf1591f0ebe8e77959e950660 +https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda#598fd7d4d0de2455fb74f56063969a97 +https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda#00e120ce3e40bad7bfc78861ce3c4a25 +https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda#3bfdfb8dbcdc4af1ae3f9a8eb3948f04 +https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda#ff9efb7f7469aed3c4a8106ffa29593c +https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda#9673a61a297b00016442e022d689faa6 +https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda#b1b505328da7a6b246787df4b5a49fbc +https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda#7e1e5ff31239f9cd5855714df8a3783d +https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda#edb16f14d920fb3faf17f5ce582942d6 +https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda#a110716cdb11cf51482ff4000dc253d7 +https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda#a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 +https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda#bd80ba060603cc228d9d81c257093119 +https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda#9ce473d1d1be1cc3810856a48b3fab32 +https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyhe2676ad_0.conda#fe785355648dec69d2f06fa14c9e6e84 +https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.19-py312ha1a9051_0.conda#1f0c0be0cf4893e17e71a023865c7230 +https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda#2da13f2b299d8e1995bafbbe9689a2f7 +https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh6dadd2b_0.conda#f22cb16c5ad68fd33d0f65c8739b6a06 +https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda#04d2e5fba67e5a1ecec8e25d6c769004 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda#513e7fcc06c82b24c84ff88ece13ac9f https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda#c85c76dc67d75619a92f51dfbce06992 -https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.0-pyhcf101f3_0.conda#3cf7402eb77b6434e830b6863a0e6118 +https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda#47b58fa741a608dac785b71b8083bdb7 https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda#6d034d3a6093adbba7b24cb69c8c621e https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda#801dbf535ec26508fac6d4b24adfb76e +https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-3.6.10-pyhd8ed1ab_0.conda#4d52bbdb661dc1b5a1c2aeb1afcd9a67 +https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda#05a08b368343304618b6a88425aa851a +https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-pyhd8ed1ab_2.conda#2f0ba4bc12af346bc6c99bdc377e8944 +https://conda.anaconda.org/conda-forge/noarch/ipywidgets-7.8.5-pyhd8ed1ab_0.conda#47672c493015ab57d5fcde9531ab18ef https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda#9453512288d20847de4356327d0e1282 https://conda.anaconda.org/conda-forge/win-64/jpype1-1.6.0-py312hf90b1b7_1.conda#160918d536368c201ff585c501a26c88 -https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.0-py312_0.conda#4b28ca56726d68ced86307620d1860e3 +https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.1-py312_0.conda#a464a5f0be05649bdbf06ff78793f1dc https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda#c27bd87e70f970010c1c6db104b88b18 https://conda.anaconda.org/conda-forge/win-64/pango-1.56.4-h03d888a_0.conda#452d6d3b409edead3bd90fc6317cd6d4 https://conda.anaconda.org/conda-forge/win-64/xorg-libx11-1.8.12-hf48077a_0.conda#c4f435ac09fd41606bba9f0deb12e412 @@ -429,77 +431,77 @@ https://conda.anaconda.org/conda-forge/win-64/xorg-libxpm-3.5.17-h0e40799_1.cond https://conda.anaconda.org/conda-forge/win-64/libgd-2.3.3-h7208af6_11.conda#2070a706123b2d5e060b226a00e96488 https://conda.anaconda.org/conda-forge/win-64/gts-0.7.6-h6b5321d_4.conda#a41f14768d5e377426ad60c613f2923b https://conda.anaconda.org/conda-forge/win-64/getopt-win32-0.1-h6a83c73_3.conda#49c36fcad2e9af6b91e91f2ce5be8ebd -https://conda.anaconda.org/conda-forge/win-64/graphviz-14.0.5-h4c50273_0.conda#4d6a9c7b6dd35211f03be7f32fc3ea39 +https://conda.anaconda.org/conda-forge/win-64/graphviz-14.1.0-h4c50273_0.conda#c347e0f1819e771361861afc57e2f418 https://conda.anaconda.org/conda-forge/win-64/glpk-5.0-h8ffe710_0.tar.bz2#ff4181250d91940494d3127243a9d858 https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda#9f9840fb1c2e009fb0009a2f9461e64a -https://conda.anaconda.org/conda-forge/win-64/fiona-1.10.1-py312h6e88f47_3.conda#40bc07429479e2b6a56217c1cbdc2606 +https://conda.anaconda.org/conda-forge/win-64/fiona-1.10.1-py312h2d4285c_5.conda#492d039913f9738e7dae424d63d70c32 https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda#4a25cae637029c5589135903aa15b3b6 https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.2-py312hf90b1b7_1.conda#3272249c8d0f9cb7693e189611b9943f -https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda#bf74a83f7a0f2a21b5d709997402cac4 -https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.16.1-py312hc128f0a_2.conda#3cdf5ef515342d7c0ee9beee47ba597b +https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda#5498feb783ab29db6ca8845f68fa0f03 +https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.16.5-py312hc128f0a_0.conda#bfa28c1e6ffe1a740d75966af52be42f https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda#c56a7fa5597ad78b62e1f5d21f7f8b8f https://conda.anaconda.org/conda-forge/noarch/zarr-3.1.5-pyhcf101f3_0.conda#c1844a94b2be61bb03bbb71574a0abfc -https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhd8ed1ab_0.conda#982aa48accc06494cbd2b51af69e17c7 -https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.1-pyhd8ed1ab_0.conda#434061aaa26dafd0e21a6184f6fb52bf +https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda#8e7be844ccb9706a999a337e056606ab +https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda#77ae41598d63b453bb3c9052f4a14c4b https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda#a0a4a3035667fc34f29bfbd5c190baa6 https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.41.5-py312hdabe01f_1.conda#2e338a10e31828590cf031076bb143b6 https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda#2934f256a8acfe48f6ebb4fce6cde29c https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda#c3946ed24acdb28db1b5d63321dbca7d https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py312h03cd2ba_101.conda#555b01f3a74e7ca56445c20555b78cff -https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda#4ce3dfa4440b4aa5364f4a6fcc3d7cb3 +https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda#5f394d6ab27b83833789bbe6bcf87518 https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_1.conda#972bdca8f30147135f951847b30399ea -https://conda.anaconda.org/conda-forge/noarch/botocore-1.41.5-pyhd8ed1ab_0.conda#14350e9c15a4f69bf9ca92db6cea7e36 -https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.15.0-pyhd8ed1ab_0.conda#fc70a7ca6da2b4f8ede5409b673a8b72 -https://conda.anaconda.org/conda-forge/noarch/boto3-1.41.5-pyhd8ed1ab_0.conda#6d4bd063f1efa1241b3de028dba873ea -https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.2-hb980946_0.conda#405c392813b74f3df06276e99c0e2841 +https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda#82b5c1f7d596ddd3bf5c096c1204a553 +https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda#061b5affcffeef245d60ec3007d1effd +https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda#524a4e4a5961300edb23f363225f617a +https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda#5f34fcb6578ea9bdbfd53cc2cfb88200 https://conda.anaconda.org/conda-forge/win-64/orc-2.2.1-h7414dfc_0.conda#a9b6ebf475194b0e5ad43168e9b936a7 https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.39.0-h19ee442_0.conda#c2c512f98c5c666782779439356a1713 https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.39.0-he04ea4c_0.conda#26198e3dc20bbcbea8dd6fa5ab7ea1e0 -https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.12.5-hfd05255_1.conda#47ade93c2f58573ad29519ab7be05321 -https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.2.4-h83e01e5_3.conda#1860dd0926b5eb0fcb19b581b908975b -https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.2.7-h83e01e5_4.conda#789551227529bc1c3ef3cbd1a2a1f5e4 -https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.9.10-ha82e055_1.conda#11394bff1f454f58ee000350ff3c23a6 -https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.23.3-h6f46d10_3.conda#dd719de51293043208c5b5da2db2e803 -https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.3.1-h83e01e5_8.conda#c531103556862e44ba19003638b72fb0 -https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.10.7-h52d8906_4.conda#0a8e38b5b7ef67f38d0159dc2578fcac -https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.9.1-h06c2b12_7.conda#800fe3ae781677fc4b5225f51129e00e -https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.10.1-he380ad5_2.conda#f50a31a10ee0c342ed17750a208285d8 -https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.13.3-h9821516_10.conda#c074aef20987db9d2968a5e1242b2515 -https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.6-h3116ff1_6.conda#3e3384e8f33ac0e7d22942d74c566c3e -https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.35.2-h1a9a3a2_4.conda#832762e4fef8d8719b502a11e7cbb3d8 -https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.606-h6446450_7.conda#d86a310ea5d7f2f6030bd7e15527b670 -https://conda.anaconda.org/conda-forge/win-64/libarrow-22.0.0-h117da51_4_cpu.conda#f84b0ac3486f3949104ac3f343634877 -https://conda.anaconda.org/conda-forge/win-64/libarrow-compute-22.0.0-h2db994a_4_cpu.conda#8b416d4245113c42f37f024d75598efe -https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_0_cpu.conda#18679999d9e40f043228de1e00847136 +https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.12.6-hfd05255_0.conda#b1465f33b05b9af02ad0887c01837831 +https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.2.4-hcb3a2da_4.conda#3c97faee5be6fd0069410cf2bca71c85 +https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.2.7-hcb3a2da_5.conda#38f1501fc55f833a4567c83581a2d2ed +https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.9.13-h46f3b43_1.conda#7cc4953d504d4e8f3d6f4facb8549465 +https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.23.3-h0d5b9f9_5.conda#400792109e426730ac9047fd6c9537ef +https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.3.1-hcb3a2da_9.conda#0888dbe9e883582d138ec6221f5482d6 +https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.10.7-hc678f4a_5.conda#3427460b0654d317e72a0ba959bb3a23 +https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.9.3-h2970c50_0.conda#6f42aac88a3b880dd3a4e0fe61f418bc +https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.11.3-ha659bf3_1.conda#dcfc08ccd8e332411c454e38110ea915 +https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.13.3-hfa314fa_11.conda#6c043365f1d3f89c0b68238c6f5b8cce +https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.5.7-ha388e84_1.conda#34e3b065b76c8a144c92e224cc3f5672 +https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.35.4-hca034e6_0.conda#ce1a20b5c406727e32222ac91e5848c4 +https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.606-hac16450_10.conda#d9b942bede589d0ad1e8e360e970efd0 +https://conda.anaconda.org/conda-forge/win-64/libarrow-22.0.0-h89d7da9_6_cpu.conda#e9fe1ee5e997417347e1ee312af94092 +https://conda.anaconda.org/conda-forge/win-64/libarrow-compute-22.0.0-h2db994a_6_cpu.conda#922c36699625c3f49940337feeba8291 +https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_1_cpu.conda#c7e36470ef8f708a229a7bc13d42b637 https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-h3671451_1.conda#25efbd786caceef438be46da78a7b5ef https://conda.anaconda.org/conda-forge/win-64/libthrift-0.22.0-h23985f6_1.conda#556d49ad5c2ad553c2844cc570bb71c7 -https://conda.anaconda.org/conda-forge/win-64/libparquet-22.0.0-h7051d1f_4_cpu.conda#6fab9241407392bbbab0a2c6dc80e688 -https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-22.0.0-h7d8d6a5_4_cpu.conda#c8ea0681d0dcf1e1a0722ea3c916bca1 -https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-22.0.0-h7d8d6a5_4_cpu.conda#cfec90bf4005cdfa5a47170b15174c25 -https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-22.0.0-hf865cc0_4_cpu.conda#6c44b4c5d10c20d08059350e4be2a2c3 -https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_0.conda#1e2ead2c5717977fb85b9c6809b0896e +https://conda.anaconda.org/conda-forge/win-64/libparquet-22.0.0-h7051d1f_6_cpu.conda#d840a2b45e737bb768ec4e0d5bf36c90 +https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-22.0.0-h7d8d6a5_6_cpu.conda#bbef682dd3d8f686faad9f1a94b3d9ae +https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-22.0.0-h7d8d6a5_6_cpu.conda#974630001cbf61d4d94a7c7c142eade4 +https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-22.0.0-hf865cc0_6_cpu.conda#01d0606bf4202d358a71545759223202 +https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_1.conda#7496da979d1d60ee36588276299ed486 https://conda.anaconda.org/conda-forge/noarch/arcosparse-0.4.2-pyhd8ed1ab_0.conda#9a005ba5f540619a1343587b4ee3d95e -https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda#e6f85f3cd0c5aff4ef0e07e80f49fa39 +https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda#9e18b048c69d2d72bc69d120a435d731 https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda#c138c7aaa6a10b5762dcd92247864aff https://conda.anaconda.org/conda-forge/win-64/cartopy-0.25.0-py312hc128f0a_1.conda#fea4e4b20624096e12ce531ad029ed31 -https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda#7da7ccd349dbf6487a7778579d2bb971 +https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda#d7585b6550ad04c8c5e21097ada2888e https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda#9614359868482abba1bd15ce465e3c42 -https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda#fa7f71faa234947d9c520f89b4bda1a2 +https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda#2b694bad8a50dc2f712f5368de866480 https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda#24ed1dc544b101075fa7462be5c3a5c5 https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda#e557abf678a0bf100fe7cf9d2b4f4a72 -https://conda.anaconda.org/conda-forge/win-64/lz4-4.4.5-py312hc3c93f3_0.conda#3de5cfffbdb173d910899ad9a6b0ad7d +https://conda.anaconda.org/conda-forge/win-64/lz4-4.4.5-py312hc3c93f3_1.conda#835dcb698b526cfeab01e1f5f908ca5c https://conda.anaconda.org/conda-forge/noarch/zict-3.0.0-pyhd8ed1ab_1.conda#e52c2ef711ccf31bb7f70ca87d144b9e https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda#f88bb644823094f436792f80fba3207e https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda#0401a17ae845fa72c7210e206ec5647d https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.1.0-py312he06e257_1.conda#cd9ca1f73cd732a47b6166f6e57b0025 -https://conda.anaconda.org/conda-forge/noarch/distributed-2025.11.0-pyhcf101f3_0.conda#a072de34cd7024a54f1b309bc9e36a3b +https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda#c15e359a982395be86a7576a91f9c5f5 https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda#f301f72474b91f1f83d42bcc7d81ce09 -https://conda.anaconda.org/conda-forge/noarch/dask-2025.11.0-pyhcf101f3_0.conda#1f97a470dbcf4a633e8da14e08428d42 +https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda#a86541105aa7920d2147d48bf370dc08 https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda#fa9e9ec7bf26619a8edd3e11155f15d6 https://conda.anaconda.org/conda-forge/win-64/freeglut-3.2.2-he0c23c2_3.conda#5872031ef7cba8435ff24af056777473 https://conda.anaconda.org/conda-forge/win-64/jasper-4.2.8-h8ad263b_0.conda#f25a27d9c58ef3a63173f372edef0639 -https://conda.anaconda.org/conda-forge/win-64/eccodes-2.44.0-h2bffdaa_0.conda#c0824c1cb3674ad22be82d49c9dc0c59 -https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py312h196c9fc_1.conda#2ecef5e3705cde5eeddfb5ca60775d08 +https://conda.anaconda.org/conda-forge/win-64/eccodes-2.45.0-h2bffdaa_0.conda#d2813976958e0066e083e5e7f8e3480e +https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py312h226b611_1.conda#6c3258d37cafe2e28f1229ca9b9a6182 https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda#0f12f8436a2a238e255d49ea3f8aefe2 https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda#e585c71c2ed48e4eee1663d627ddcd47 https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda#ea90ece1da754ca0c5d6766eb59908c2 diff --git a/envs/environment.yaml b/envs/environment.yaml index 4fbaa7f529..e7491e8e81 100644 --- a/envs/environment.yaml +++ b/envs/environment.yaml @@ -3,6 +3,7 @@ channels: - conda-forge - bioconda - gurobi +- https://repo.prefix.dev/open-tyndp - nodefaults dependencies: - atlite >=0.3 @@ -32,7 +33,7 @@ dependencies: - memory_profiler >=0.61.0 - netcdf4 >=1.7.2 - networkx >=3.5 -- numpy >=1.26.4 +- numpy >=1.26.4,<2 - openpyxl >=3.1.5 - pandas >=2.1 - plotly >=6.4.0 @@ -40,6 +41,7 @@ dependencies: - pre-commit >=4.3.0 - proj >=9.6.2 - pylint >=4.0.2 +- pydeck >0.6 - pypsa >=0.35.2 - pyscipopt >=5.6.0 - pytables >=3.10.2 diff --git a/pixi.lock b/pixi.lock index 457cb79d63..83c716236a 100644 --- a/pixi.lock +++ b/pixi.lock @@ -16,7 +16,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.13.3-py312h5d8c7f2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.1-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ampl-asl-1.0.0-h5888daf_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/amply-0.1.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda @@ -29,7 +29,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/astroid-4.0.3-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda @@ -62,8 +62,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bottleneck-1.6.0-np2py312hfb8c2c5_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-hed03a55_1.conda @@ -82,7 +82,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py312h460c074_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -99,7 +99,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312hd9148b4_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cppad-20250000.2-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda @@ -107,30 +107,30 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.1.0-py312h4c3975b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.18-py312h8285ef7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.44.0-h83bc92c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.45.0-h83bc92c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.10.1-py312h053e1f3_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -148,7 +148,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h9dce30a_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.7.0-py312h447239a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -164,27 +164,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glpk-5.0-h445213a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.0-h8b86629_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.1-h8b86629_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.73.1-py312h6f3464c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - - conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py312ha4f8f14_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_104.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/highspy-1.12.0-np2py312h0f77346_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -192,8 +192,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.1-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/immutables-0.21-py312h4c3975b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -221,13 +221,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda @@ -235,7 +235,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py312h0a2e395_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda @@ -294,13 +294,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwy-1.3.0-h4c17acf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-hf08fa70_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-ha09017c_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-haa4a5bd_1022.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.11.0-5_h6ae95b6_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.3-nompi_h11f7409_103.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda @@ -311,7 +311,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-22.0.0-h7376487_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.53-h421ea60_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h7b12aa8_0.conda @@ -321,13 +321,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-gpl_h2abfd87_119.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspral-2025.05.20-hfabd9d1_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-hf4e2dac_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.2-hfe17d71_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda @@ -340,7 +340,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.2-py312h63ddcf0_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py312h3d67a73_1.conda @@ -370,12 +370,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py312hf6400b3_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py312h25f8dc5_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.5-py312hf79963d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numexpr-2.14.1-py312h88efc94_101.conda @@ -399,17 +399,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.1.0-py312h50c33e8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.36.1-py310hffdcd12_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.37.1-py310hffdcd12_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.1-h99ae125_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/propcache-0.3.1-py312h178313f_0.conda @@ -421,8 +421,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pulp-2.8.0-py312hd0750ca_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -436,19 +436,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.12.1-py312h053e1f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyomo-6.9.5-py312h1289d80_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py312h9b6a7d9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyscipopt-5.6.0-py312h1289d80_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py312h9da60e5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pytables-3.10.2-py312hefc0c3f_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.12-hd63d673_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py312h4f23490_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py312hfb8c2c5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -476,39 +476,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py312h868fb18_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.10-h4196e79_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.8.0-np2py312h3226591_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scip-9.2.4-hd8b5c82_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py312h54fa4ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py312h54fa4ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyha191276_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.2-py312h383787d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.1-h04a0ce9_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.2-h04a0ce9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.6-py312h4f23490_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda @@ -520,8 +520,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -540,7 +540,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-hd6090a7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -576,9 +576,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.6-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.2-ha02ee65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.2-ha02ee65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.22.0-py312h8a5da7c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda @@ -610,7 +610,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/astroid-4.0.3-py312hb401068_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/atk-1.0-2.38.0-h4bec284_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda @@ -640,8 +640,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-hd145fbb_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bottleneck-1.6.0-np2py312he8eb05d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.2.0-hf139dec_1.conda @@ -660,7 +660,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -677,35 +677,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py312hd099df3_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cppad-20250000.2-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py312heb31a8c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-1.1.0-py312h80b0991_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.19-py312h6c02384_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.44.0-h163e534_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.45.0-hef68630_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/epoxy-1.5.10-h8616949_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fiona-1.10.1-py312hb20e208_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -722,7 +722,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3183152_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fribidi-1.0.16-h8616949_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/frozenlist-1.7.0-py312h18bfd43_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gdk-pixbuf-2.44.4-h07555a4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -738,27 +738,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/glpk-5.0-h3cb5acd_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312h5469281_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312hb9001e9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/graphite2-1.3.14-h21dd04a_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.0-had0cc5b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.1-h44fc223_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/grpcio-1.73.1-py312h53eab48_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gtk3-3.24.43-h5e629aa_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gts-0.7.6-h53e17e3_4.conda - - conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py312hcf08926_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hicolor-icon-theme-0.17-h694c41f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/highspy-1.12.0-np2py312h855832a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -766,8 +766,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.1-h14c5de8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/immutables-0.21-py312h2f459f6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -795,20 +795,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py312h90e26e8_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/levenshtein-0.27.3-py312h69bf00f_0.conda @@ -848,23 +848,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.39.0-hed66dea_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.39.0-h8ac052b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.73.1-h451496d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.1-default_h273dbb7_1003.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.2-default_h273dbb7_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwy-1.3.0-hab838a1_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.2-h8616949_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-h4ee1b5b_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-hde0fb83_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-h450b6c2_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapacke-3.11.0-5_h94b3770_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.3-nompi_habf9e57_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7d3f41d_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.21.0-h694c41f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-22.0.0-habb56ca_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.53-h380d223_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-6.31.1-hcc66ac3_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h554ac88_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.60.0-h2da6fc3_0.conda @@ -872,11 +872,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libscotch-7.0.10-int64_h5eb5a6d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.20-hfdf4475_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-gpl_hb921464_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-hd09e2f1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.22.0-h687e942_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.1-ha0a348c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.2-h7983711_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.17.0-hf1f96e2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda @@ -885,7 +885,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h486b42e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/lxml-6.0.2-py312hd94307c_2.conda @@ -916,11 +916,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py312hab8b850_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py312h6ec3a75_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h53ec75d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.16.5-py312h86abcb1_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numexpr-2.14.1-py312hd12f69b_1.conda @@ -943,17 +943,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.1.0-py312h4985050_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.36.1-py310hfb6bc98_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.37.1-py310had17480_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.7.0-h3124640_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/propcache-0.3.1-py312h3520af0_0.conda @@ -965,8 +965,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pulp-2.8.0-py312hda2ad9a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312hefc66a4_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312h46fdf74_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -982,18 +982,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.12.1-py312h17ccd7d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyomo-6.9.5-py312h69bf00f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.7.2-py312hfea2d77_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyscipopt-5.6.0-py312h462f358_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pytables-3.10.2-py312he4c742b_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.12-h74c2667_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py312h391ab28_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py312hdc59d4f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -1020,42 +1020,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py312h8a6388b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.10-hb17bafe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.8.0-np2py312h47bbdc5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scip-9.2.4-h078ad67_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312h79cf0a0_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py312ha20b133_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.2-py312hd8edc82_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h01f5ddf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.1-h4b4dc0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.2-h5af3ad2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/statsmodels-0.14.6-py312h391ab28_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-hf0c99ee_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-h06b67a2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda @@ -1063,8 +1063,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py312h404bc50_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -1083,7 +1083,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -1127,7 +1127,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-4.0.3-py312h81bd7bf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/atk-1.0-2.38.0-hd03087b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda @@ -1157,8 +1157,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h7dd00d9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bottleneck-1.6.0-np2py312h931d34d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.2.0-h7d5ae5b_1.conda @@ -1177,7 +1177,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -1194,35 +1194,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h84eede6_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cppad-20250000.2-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312hd13a024_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.1.0-py312h4409184_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.19-py312h56d30c9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.44.0-h6f4dcf9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.45.0-h768f3a7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/epoxy-1.5.10-hc919400_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.10.1-py312h515fe7d_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -1239,7 +1239,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-h3ab3353_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fribidi-1.0.16-hc919400_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozenlist-1.7.0-py312h512c567_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.44.4-h7542897_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -1255,27 +1255,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glpk-5.0-h6d7a090_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h2476293_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h090f823_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphite2-1.3.14-hec049ff_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.0-ha8f0fc4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.1-hec8c438_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.73.1-py312h9bc1d27_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gtk3-3.24.43-h5febe37_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gts-0.7.6-he42f4ea_4.conda - - conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py312h4eecd6b_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hicolor-icon-theme-0.17-hce30654_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/highspy-1.12.0-np2py312h5a6ab93_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -1283,8 +1283,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.1-h38cb7af_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/immutables-0.21-py312h163523d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -1312,20 +1312,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py312hd8c8125_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/levenshtein-0.27.3-py312h455b684_0.conda @@ -1365,23 +1365,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.39.0-head0a95_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.39.0-hfa3a374_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.73.1-h3063b79_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.1-default_ha3cc4f2_1003.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.2-default_ha3cc4f2_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwy-1.3.0-h48b13b8_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.1.2-hc919400_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h3dcb153_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h913acd8_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-hc33e383_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapacke-3.11.0-5_h1b118fd_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.3-nompi_h80c4520_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.21.0-he15edb5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-headers-1.21.0-hce30654_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-22.0.0-h0ac143b_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.53-hfab5511_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-6.31.1-h98f38fd_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-h91c62da_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librsvg-2.60.0-h5c55ec3_0.conda @@ -1389,11 +1389,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libscotch-7.0.10-int64_ha305a69_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-gpl_ha239c29_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h1b79a29_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.22.0-h14a376c_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.1-h4030677_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.2-hd2415e0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.6.0-h07db88b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda @@ -1402,7 +1402,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxslt-1.1.43-hb2570ba_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-6.0.2-py312h447b5cf_2.conda @@ -1433,11 +1433,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py312h947358d_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py312h5d59a02_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h248ca61_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.16.5-py312h5978115_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numexpr-2.14.1-py312h3de7d89_1.conda @@ -1460,17 +1460,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.1.0-py312h4e908a4_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.36.1-py310h34bb384_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.37.1-py310haaaf75b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.7.1-h46dec42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/propcache-0.3.1-py312h998013c_0.conda @@ -1482,8 +1482,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pulp-2.8.0-py312h38bd297_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hea229ce_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hae6ed00_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -1499,18 +1499,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.12.1-py312h07dd7c3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyomo-6.9.5-py312h455b684_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.2-py312h66ed876_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyscipopt-5.6.0-py312h6b01ec3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytables-3.10.2-py312hc3f5fac_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.12-h18782d2_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py312ha11c99a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py312h877c910_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -1537,42 +1537,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.30.0-py312h6ef9ec0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.10-hb0cad00_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.8.0-np2py312he5ca3e3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scip-9.2.4-ha1e27ce_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312h39258fd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.1.2-py312h35cd81b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-hada39a4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.1-h85ec8f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.2-h77b7338_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/statsmodels-0.14.6-py312ha11c99a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h66ce52b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h4ddebb9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda @@ -1580,8 +1580,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py312h4409184_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -1600,7 +1600,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -1642,7 +1642,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/astroid-4.0.3-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.9.3-h2970c50_0.conda @@ -1666,8 +1666,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-hfd34d9b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bottleneck-1.6.0-np2py312h226b611_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.2.0-h2d644bc_1.conda @@ -1686,7 +1686,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py312he06e257_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -1703,35 +1703,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312hf90b1b7_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cppad-20250000.2-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py312h232196e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.1.0-py312he06e257_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.19-py312ha1a9051_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.44.0-h2bffdaa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.45.0-h2bffdaa_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fiona-1.10.1-py312h2d4285c_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -1749,7 +1749,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-hf297d47_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/frozenlist-1.7.0-py312hfdf67e6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda @@ -1761,11 +1761,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/glpk-5.0-h8ffe710_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda @@ -1773,14 +1773,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/grpcio-1.73.1-py312h9256aa6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/gts-0.7.6-h6b5321d_4.conda - - conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py312h03cd2ba_101.conda - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.2.0-h5f2951f_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda - conda: https://conda.anaconda.org/conda-forge/win-64/highspy-1.12.0-np2py312ha76dc74_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda @@ -1788,7 +1788,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh7428d3b_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/immutables-0.21-py312he06e257_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -1815,20 +1815,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py312h78d62e6_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/levenshtein-0.27.3-py312hbb81ca0_0.conda @@ -1866,28 +1866,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.39.0-h19ee442_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.39.0-he04ea4c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.73.1-h317e13b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h4379cf1_1003.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libhwy-1.3.0-ha71e874_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.2-hfd05255_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hac9b6f3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hf3f85d1_8.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h68a222c_1022.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-7_h018ca30_netlib.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.3-nompi_h7d90bef_103.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-22.0.0-h7051d1f_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.53-h7351971_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-6.31.1-hdcda5b4_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2025.11.05-h0eb2380_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-haa95264_20.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-gpl_h0cd62ae_119.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.22.0-h23985f6_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.1-h8f73337_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.2-hb980946_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libvulkan-loader-1.4.328.1-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_10.conda @@ -1898,7 +1898,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h0fbe4c1_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.8-h4fa8253_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/lxml-6.0.2-py312h2f35c63_2.conda @@ -1928,11 +1928,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py312h79d12a2_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.4-nompi_py312h8fa77f8_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.16.5-py312hc128f0a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numexpr-2.14.1-py312h0c4f959_101.conda @@ -1954,16 +1954,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.1.0-py312h31f0997_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.36.1-py310hca7251b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.37.1-py310hca7251b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.7.1-h7b1ce8f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/propcache-0.3.1-py312h31fea79_0.conda @@ -1974,8 +1974,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pulp-2.8.0-py312he39998a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -1989,7 +1989,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.11.1-py312h2d4285c_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyomo-6.9.5-py312hbb81ca0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.2-py312habbd053_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyreadline3-3.5.4-py312h2e8e312_2.conda @@ -1997,12 +1997,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py312h0c8bdd4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pytables-3.10.2-py312h20cef2e_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.12-h0159041_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py312h196c9fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py312h226b611_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -2031,42 +2031,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py312hdabe01f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.10-h37e10c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.8.0-np2py312hea30aaf_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scip-9.2.4-h4cfe319_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py312h9b3c559_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py312h9b3c559_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh6dadd2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.2-py312h37f46ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.1-hdb435a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.2-hdb435a2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/statsmodels-0.14.6-py312h196c9fc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh6dadd2b_1.conda @@ -2074,8 +2074,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py312he06e257_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -2098,7 +2098,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_34.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -2148,7 +2148,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/aiohttp-3.13.3-pyhf64b827_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.1-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/async-timeout-5.0.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 @@ -2196,7 +2196,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py314hc02f841_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py314hc02f841_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -2210,16 +2210,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.1.0-py314h5bd0f2a_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.44.0-h83bc92c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.45.0-h83bc92c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda @@ -2241,7 +2241,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h9dce30a_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frozenlist-1.7.0-pyhf298e5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda @@ -2252,29 +2252,29 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.86.3-hf516916_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.4.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py314hd6bf2bd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py314hd6bf2bd_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.0-h8b86629_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.1-h8b86629_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.73.1-py314h2d847ca_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py314hc32fe06_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_104.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/highspy-1.12.0-np2py314h6477eea_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.1-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -2287,7 +2287,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py314h97ea11e_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyh742d864_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda @@ -2341,11 +2341,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwy-1.3.0-h4c17acf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-hf08fa70_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-ha09017c_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-haa4a5bd_1022.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.3-nompi_h11f7409_103.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda @@ -2357,20 +2357,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-22.0.0-h7376487_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.53-h421ea60_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h7b12aa8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.60.0-h61e6d4b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-h46dd2a8_20.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-gpl_h2abfd87_119.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-hf4e2dac_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.2-hfe17d71_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda @@ -2383,13 +2383,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py314hd4c109c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h280c20c_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py314hdafbbf9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py314h1194b4b_0.conda @@ -2402,7 +2402,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/muparser-2.3.5-h5888daf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-5.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py314hed328fd_100.conda @@ -2410,7 +2410,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/numexpr-2.14.1-py314heb044ea_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.0-py314h2b28147_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.1-py314h2b28147_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjdk-25.0.1-h5755bd7_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.10-he970967_0.conda @@ -2425,12 +2425,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.1.0-py314h8ec4b1a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.36.1-py310hffdcd12_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.37.1-py310hffdcd12_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.1-h99ae125_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda @@ -2440,8 +2440,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.1-py314h0f05182_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py314hdafbbf9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py314h52d6ec5_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py314hdafbbf9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py314h52d6ec5_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybtex-0.25.1-pyhd8ed1ab_0.conda @@ -2455,9 +2455,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.12.1-py314hbcf5174_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyomo-6.9.5-py314ha160325_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py314h24aeaa0_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py314hf36963e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda @@ -2465,7 +2465,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.2-h32b2ec7_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py314hc02f841_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py314h56abb78_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda @@ -2481,14 +2481,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.8.0-np2py314hf09ca88_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py314hf07bd8e_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py314hf07bd8e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools_scm-9.2.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.2-py314hbe3edd8_2.conda @@ -2497,8 +2496,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-9.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-book-theme-1.1.4-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-bibtex-2.6.5-pyhd8ed1ab_0.conda @@ -2507,14 +2506,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.1-h04a0ce9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.2-h04a0ce9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.6-py314hc02f841_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tabula-py-2.7.0-py314hdafbbf9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -2618,7 +2617,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py314h8ca4d5a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py314h26e5826_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py314h26e5826_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -2631,13 +2630,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py314he083015_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-1.1.0-py314h6482030_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.44.0-h163e534_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.45.0-hef68630_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/epoxy-1.5.10-h8616949_2.conda @@ -2658,7 +2657,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3183152_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fribidi-1.0.16-h8616949_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frozenlist-1.7.0-pyhf298e5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gdk-pixbuf-2.44.4-h07555a4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda @@ -2669,29 +2668,29 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/glib-tools-2.86.3-h8650975_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.4.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py314h89b0429_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py314h19b641f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/graphite2-1.3.14-h21dd04a_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.0-had0cc5b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.1-h44fc223_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/grpcio-1.73.1-py314hde9596f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gtk3-3.24.43-h5e629aa_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gts-0.7.6-h53e17e3_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py314hf613b1f_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hicolor-icon-theme-0.17-h694c41f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/highspy-1.12.0-np2py314h3cd8925_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.1-h14c5de8_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -2703,7 +2702,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py314hf3ac25a_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyh742d864_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/levenshtein-0.27.3-py314h21b9a27_0.conda @@ -2744,10 +2743,10 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.2-h8616949_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-h4ee1b5b_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-hde0fb83_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-h450b6c2_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.3-nompi_habf9e57_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda @@ -2755,17 +2754,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7d3f41d_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.21.0-h694c41f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-22.0.0-habb56ca_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.53-h380d223_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-6.31.1-hcc66ac3_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h554ac88_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.60.0-h2da6fc3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librttopo-1.1.0-h16cd5d8_20.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-gpl_hb921464_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-hd09e2f1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.22.0-h687e942_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.1-ha0a348c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.2-h7983711_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.17.0-hf1f96e2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda @@ -2773,14 +2772,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-devel-2.15.1-h24ca049_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-4.4.5-py314h6bf1ee8_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.10.0-h240833e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-h4132b18_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.10.8-py314hee6578b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py314hd47142c_0.conda @@ -2793,14 +2792,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/muparser-2.3.5-hb996559_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-5.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py314hf60e252_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h53ec75d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numexpr-2.14.1-py314h205861b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.0-py314hfc4c462_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.1-py314hfc4c462_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjdk-25.0.1-h2014cc5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.4-h87e8dc5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openpyxl-3.1.5-py314h6d58237_2.conda @@ -2814,12 +2813,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.47-h13923f0_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.1.0-py314hf9dbaa9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.36.1-py310hfb6bc98_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.37.1-py310had17480_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.7.0-h3124640_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda @@ -2829,8 +2828,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.1-py314hd330473_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-h00291cd_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py314hee6578b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py314h35e0213_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py314hee6578b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py314h7e66853_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybtex-0.25.1-pyhd8ed1ab_0.conda @@ -2844,16 +2843,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.12.1-py314h687fbad_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyomo-6.9.5-py314h21b9a27_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.7.2-py314h56c42be_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pytables-3.10.2-py314hb51f073_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.2-hf88997e_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py314hd1ec8a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py314h95e8cca_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda @@ -2868,13 +2867,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.8.0-np2py314he40e093_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py314hbb40827_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py314h6328ba2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools_scm-9.2.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.2-py314h4eeafd1_2.conda @@ -2883,8 +2881,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-9.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-book-theme-1.1.4-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-bibtex-2.6.5-pyhd8ed1ab_0.conda @@ -2893,14 +2891,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.1-h4b4dc0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.2-h5af3ad2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/statsmodels-0.14.6-py314hd1ec8a2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tabula-py-2.7.0-py314hee6578b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py314h3d180e3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -2980,7 +2978,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py314h44086f9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py314h2115a04_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py314h2115a04_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -2993,13 +2991,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py314ha2381d7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.1.0-py314h0612a62_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.44.0-h6f4dcf9_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.45.0-h768f3a7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/epoxy-1.5.10-hc919400_2.conda @@ -3020,7 +3018,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-h3ab3353_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fribidi-1.0.16-hc919400_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frozenlist-1.7.0-pyhf298e5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.44.4-h7542897_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda @@ -3031,29 +3029,29 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glib-tools-2.86.3-hb9d6e3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.4.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py314h97a5fcc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py314h8744745_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphite2-1.3.14-hec049ff_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.0-ha8f0fc4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.1-hec8c438_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.73.1-py314h7689434_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gtk3-3.24.43-h5febe37_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gts-0.7.6-he42f4ea_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py314h1c8d760_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hicolor-icon-theme-0.17-hce30654_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/highspy-1.12.0-np2py314hb738332_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.1-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -3065,7 +3063,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py314h42813c9_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyh742d864_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/levenshtein-0.27.3-py314h93ecee7_0.conda @@ -3106,28 +3104,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.1.2-hc919400_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h3dcb153_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h913acd8_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-hc33e383_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.3-nompi_h80c4520_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.21.0-he15edb5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-headers-1.21.0-hce30654_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-22.0.0-h0ac143b_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.53-hfab5511_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-6.31.1-h98f38fd_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-h91c62da_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librsvg-2.60.0-h5c55ec3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librttopo-1.1.0-ha909e78_20.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-gpl_ha239c29_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h1b79a29_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.22.0-h14a376c_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.1-h4030677_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.2-hd2415e0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.6.0-h07db88b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda @@ -3135,14 +3133,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-devel-2.15.1-h8d039ee_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-4.4.5-py314h24f3bdd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-h286801f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lzo-2.10-h925e9cb_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.10.8-py314he55896b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.10.8-py314hd63e3f0_0.conda @@ -3155,14 +3153,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/muparser-2.3.5-h11e0b38_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-5.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py314ha229517_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h248ca61_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numexpr-2.14.1-py314hc5bb990_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.0-py314hae46ccb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.1-py314hae46ccb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjdk-25.0.1-hde7fb7b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.4-hbfb3c88_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openpyxl-3.1.5-py314h6dd25ec_2.conda @@ -3176,12 +3174,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.1.0-py314hab283cf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.36.1-py310h34bb384_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.37.1-py310haaaf75b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.7.1-h46dec42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda @@ -3191,8 +3189,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.1-py314ha14b1ff_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py314he55896b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py314hf20a12a_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py314he55896b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py314h1c152f6_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybtex-0.25.1-pyhd8ed1ab_0.conda @@ -3206,16 +3204,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.12.1-py314h3da1bed_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyomo-6.9.5-py314h93ecee7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.2-py314h87291f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytables-3.10.2-py314h8eb144a_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.2-h40d2674_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py314hdcf55e8_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py314h4e57505_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda @@ -3230,13 +3228,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.8.0-np2py314h15f0f0f_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py314h725efaa_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py314hfc1f868_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools_scm-9.2.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.1.2-py314h277790e_2.conda @@ -3245,8 +3242,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-9.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-book-theme-1.1.4-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-bibtex-2.6.5-pyhd8ed1ab_0.conda @@ -3255,14 +3252,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.1-h85ec8f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.2-h77b7338_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/statsmodels-0.14.6-py314hdcf55e8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tabula-py-2.7.0-py314h4dc9dd8_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py314h0612a62_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -3335,7 +3332,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py314h5a2d7ad_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py314h2dcd201_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py314h2dcd201_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyha7b4d00_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -3348,14 +3345,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py314he884d78_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.1.0-py314h5a2d7ad_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.4.0-hac47afa_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.44.0-h2bffdaa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.45.0-h2bffdaa_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda @@ -3376,34 +3373,34 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-hf297d47_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/frozenlist-1.7.0-pyhf298e5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-base-1.1.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopy-2.4.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.14.1-hdade9fe_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/getopt-win32-0.1-h6a83c73_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.4.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py314h720154c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py314h720154c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/graphviz-14.1.0-h4c50273_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/graphviz-14.1.1-h4c50273_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/grpcio-1.73.1-py314he35f362_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/gts-0.7.6-h6b5321d_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py314hc249e69_101.conda - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.3.0-h5a1b470_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda - conda: https://conda.anaconda.org/conda-forge/win-64/highspy-1.12.0-np2py314hb7a55bc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.1-h637d24d_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.2-h637d24d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -3414,7 +3411,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py314hf309875_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/latexcodec-2.0.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyh742d864_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/levenshtein-0.27.3-py314h13fbf68_0.conda @@ -3452,23 +3449,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.2-hfd05255_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hac9b6f3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hf3f85d1_8.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h68a222c_1022.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-7_h018ca30_netlib.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.3-nompi_h7d90bef_103.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-22.0.0-h7051d1f_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.53-h7351971_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-6.31.1-hdcda5b4_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2025.11.05-h0eb2380_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-haa95264_20.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-gpl_h0cd62ae_119.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.22.0-h23985f6_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.1-h8f73337_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.2-hb980946_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libvulkan-loader-1.4.328.1-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_10.conda @@ -3479,13 +3476,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h0fbe4c1_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-4.4.5-py314hfc2a91f_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.10.0-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-h6a83c73_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.10.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.8-py314h86ab7b2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.8-py314hfa45d96_0.conda @@ -3498,13 +3495,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/multiurl-0.3.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/muparser-2.3.5-he0c23c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-5.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py314h640c526_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/numexpr-2.14.1-py314h5a6676c_101.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.4.0-py314h06c3c77_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.4.1-py314h06c3c77_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjdk-25.0.1-hda6743d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.4-h24db6dd_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openpyxl-3.1.5-py314hccc76fc_2.conda @@ -3518,12 +3515,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.47-hd2b5f0e_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.1.0-py314h61b30b5_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.36.1-py310hca7251b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.37.1-py310hca7251b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.7.1-h7b1ce8f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/propcache-0.3.1-pyhe1237c8_0.conda @@ -3532,8 +3529,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.2.1-py314hc5dbbe4_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py314h86ab7b2_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py314hb5be3fa_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py314h86ab7b2_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py314hb5be3fa_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pybtex-0.25.1-pyhd8ed1ab_0.conda @@ -3547,9 +3544,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.12.1-py314h1c1cb05_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyomo-6.9.5-py314h13fbf68_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.2-py314h422fe16_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py314h2c9462b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda @@ -3557,7 +3554,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.14.2-h4b44e0e_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py314h2dcd201_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py314hea88fa1_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-utils-3.9.1-pyhff2d567_1.conda @@ -3572,13 +3569,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2025.11.05-ha104f34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.8.0-np2py314h1b5b07a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py314h221f224_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py314h221f224_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools_scm-9.2.2-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.2-py314h76f3c27_2.conda @@ -3587,8 +3583,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-9.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-book-theme-1.1.4-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-bibtex-2.6.5-pyhd8ed1ab_0.conda @@ -3597,7 +3593,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.1-hdb435a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.2-hdb435a2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/statsmodels-0.14.6-py314h2dcd201_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/symlink-exe-runtime-1.0-hcfcfb64_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/tabula-py-2.7.0-py314h86ab7b2_2.conda @@ -3605,7 +3601,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py314h5a2d7ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -3659,7 +3655,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.13.3-py312h5d8c7f2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.1-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ampl-asl-1.0.0-h5888daf_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.1-pyhcf101f3_0.conda @@ -3671,7 +3667,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/astroid-4.0.3-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda @@ -3704,8 +3700,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bottleneck-1.6.0-np2py312hfb8c2c5_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-hed03a55_1.conda @@ -3724,7 +3720,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py312h460c074_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -3736,7 +3732,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312hd9148b4_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cppad-20250000.2-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda @@ -3744,30 +3740,30 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.1.0-py312h4c3975b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.18-py312h8285ef7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.44.0-h83bc92c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.45.0-h83bc92c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.10.1-py312h053e1f3_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -3785,7 +3781,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h9dce30a_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.7.0-py312h447239a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -3801,27 +3797,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glpk-5.0-h445213a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.0-h8b86629_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.1-h8b86629_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.73.1-py312h6f3464c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - - conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py312ha4f8f14_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_104.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/highspy-1.12.0-np2py312h0f77346_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -3829,8 +3825,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.1-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/immutables-0.21-py312h4c3975b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -3858,13 +3854,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda @@ -3872,7 +3868,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py312h0a2e395_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda @@ -3931,12 +3927,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwy-1.3.0-h4c17acf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-hf08fa70_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-ha09017c_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-haa4a5bd_1022.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.3-nompi_h11f7409_103.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda @@ -3947,7 +3943,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-22.0.0-h7376487_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.53-h421ea60_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h7b12aa8_0.conda @@ -3957,13 +3953,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-gpl_h2abfd87_119.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspral-2025.05.20-hfabd9d1_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-hf4e2dac_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.2-hfe17d71_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda @@ -3976,7 +3972,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.2-py312h63ddcf0_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py312h3d67a73_1.conda @@ -4006,12 +4002,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py312hf6400b3_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py312h25f8dc5_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.5-py312hf79963d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numexpr-2.14.1-py312h88efc94_101.conda @@ -4036,17 +4032,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-pycharm-0.0.10-unix_hf108a03_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.36.1-py310hffdcd12_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.37.1-py310hffdcd12_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.1-h99ae125_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/propcache-0.3.1-py312h178313f_0.conda @@ -4057,8 +4053,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -4072,19 +4068,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.12.1-py312h053e1f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyomo-6.9.5-py312h1289d80_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py312h9b6a7d9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyscipopt-5.6.0-py312h1289d80_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py312h9da60e5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pytables-3.10.2-py312hefc0c3f_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.12-hd63d673_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py312h4f23490_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py312hfb8c2c5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -4112,24 +4108,24 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py312h868fb18_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.10-h4196e79_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.8.0-np2py312h3226591_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scip-9.2.4-hd8b5c82_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py312h54fa4ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py312h54fa4ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyha191276_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.2-py312h383787d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda @@ -4143,8 +4139,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.1-h04a0ce9_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.2-h04a0ce9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.6-py312h4f23490_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda @@ -4156,8 +4152,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -4176,7 +4172,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-hd6090a7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -4212,9 +4208,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.6-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.2-ha02ee65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.2-ha02ee65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.22.0-py312h8a5da7c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda @@ -4245,7 +4241,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/astroid-4.0.3-py312hb401068_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/atk-1.0-2.38.0-h4bec284_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda @@ -4275,8 +4271,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-hd145fbb_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bottleneck-1.6.0-np2py312he8eb05d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.2.0-hf139dec_1.conda @@ -4295,7 +4291,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -4307,35 +4303,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py312hd099df3_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cppad-20250000.2-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py312heb31a8c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-1.1.0-py312h80b0991_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.19-py312h6c02384_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.44.0-h163e534_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.45.0-hef68630_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/epoxy-1.5.10-h8616949_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fiona-1.10.1-py312hb20e208_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -4352,7 +4348,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3183152_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fribidi-1.0.16-h8616949_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/frozenlist-1.7.0-py312h18bfd43_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gdk-pixbuf-2.44.4-h07555a4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -4368,27 +4364,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/glpk-5.0-h3cb5acd_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312h5469281_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312hb9001e9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/graphite2-1.3.14-h21dd04a_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.0-had0cc5b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.1-h44fc223_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/grpcio-1.73.1-py312h53eab48_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gtk3-3.24.43-h5e629aa_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gts-0.7.6-h53e17e3_4.conda - - conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py312hcf08926_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hicolor-icon-theme-0.17-h694c41f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/highspy-1.12.0-np2py312h855832a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -4396,8 +4392,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.1-h14c5de8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/immutables-0.21-py312h2f459f6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -4425,20 +4421,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py312h90e26e8_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/levenshtein-0.27.3-py312h69bf00f_0.conda @@ -4478,22 +4474,22 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.39.0-hed66dea_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.39.0-h8ac052b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.73.1-h451496d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.1-default_h273dbb7_1003.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.2-default_h273dbb7_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwy-1.3.0-hab838a1_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.2-h8616949_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-h4ee1b5b_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-hde0fb83_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-h450b6c2_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.3-nompi_habf9e57_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7d3f41d_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.21.0-h694c41f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-22.0.0-habb56ca_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.53-h380d223_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-6.31.1-hcc66ac3_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h554ac88_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.60.0-h2da6fc3_0.conda @@ -4501,11 +4497,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libscotch-7.0.10-int64_h5eb5a6d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.20-hfdf4475_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-gpl_hb921464_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-hd09e2f1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.22.0-h687e942_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.1-ha0a348c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.2-h7983711_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.17.0-hf1f96e2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda @@ -4514,7 +4510,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h486b42e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/lxml-6.0.2-py312hd94307c_2.conda @@ -4545,11 +4541,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py312hab8b850_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py312h6ec3a75_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h53ec75d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.16.5-py312h86abcb1_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numexpr-2.14.1-py312hd12f69b_1.conda @@ -4573,17 +4569,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-pycharm-0.0.10-unix_hf108a03_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.36.1-py310hfb6bc98_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.37.1-py310had17480_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.7.0-h3124640_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/propcache-0.3.1-py312h3520af0_0.conda @@ -4594,8 +4590,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312hefc66a4_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312h46fdf74_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -4611,18 +4607,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.12.1-py312h17ccd7d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyomo-6.9.5-py312h69bf00f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.7.2-py312hfea2d77_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyscipopt-5.6.0-py312h462f358_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pytables-3.10.2-py312he4c742b_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.12-h74c2667_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py312h391ab28_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py312hdc59d4f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -4649,23 +4645,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py312h8a6388b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.10-hb17bafe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.8.0-np2py312h47bbdc5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scip-9.2.4-h078ad67_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312h79cf0a0_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py312ha20b133_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.2-py312hd8edc82_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda @@ -4679,12 +4675,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.1-h4b4dc0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.2-h5af3ad2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/statsmodels-0.14.6-py312h391ab28_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-hf0c99ee_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-h06b67a2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda @@ -4692,8 +4688,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py312h404bc50_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -4712,7 +4708,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -4755,7 +4751,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-4.0.3-py312h81bd7bf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/atk-1.0-2.38.0-hd03087b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda @@ -4785,8 +4781,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h7dd00d9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bottleneck-1.6.0-np2py312h931d34d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.2.0-h7d5ae5b_1.conda @@ -4805,7 +4801,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -4817,35 +4813,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h84eede6_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cppad-20250000.2-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312hd13a024_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.1.0-py312h4409184_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.19-py312h56d30c9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.44.0-h6f4dcf9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.45.0-h768f3a7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/epoxy-1.5.10-hc919400_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.10.1-py312h515fe7d_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -4862,7 +4858,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-h3ab3353_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fribidi-1.0.16-hc919400_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozenlist-1.7.0-py312h512c567_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.44.4-h7542897_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -4878,27 +4874,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glpk-5.0-h6d7a090_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h2476293_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h090f823_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphite2-1.3.14-hec049ff_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.0-ha8f0fc4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.1-hec8c438_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.73.1-py312h9bc1d27_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gtk3-3.24.43-h5febe37_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gts-0.7.6-he42f4ea_4.conda - - conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py312h4eecd6b_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hicolor-icon-theme-0.17-hce30654_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/highspy-1.12.0-np2py312h5a6ab93_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -4906,8 +4902,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.1-h38cb7af_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/immutables-0.21-py312h163523d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -4935,20 +4931,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py312hd8c8125_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/levenshtein-0.27.3-py312h455b684_0.conda @@ -4988,22 +4984,22 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.39.0-head0a95_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.39.0-hfa3a374_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.73.1-h3063b79_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.1-default_ha3cc4f2_1003.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.2-default_ha3cc4f2_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwy-1.3.0-h48b13b8_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.1.2-hc919400_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h3dcb153_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h913acd8_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-hc33e383_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.3-nompi_h80c4520_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.21.0-he15edb5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-headers-1.21.0-hce30654_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-22.0.0-h0ac143b_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.53-hfab5511_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-6.31.1-h98f38fd_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-h91c62da_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librsvg-2.60.0-h5c55ec3_0.conda @@ -5011,11 +5007,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libscotch-7.0.10-int64_ha305a69_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-gpl_ha239c29_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h1b79a29_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.22.0-h14a376c_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.1-h4030677_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.2-hd2415e0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.6.0-h07db88b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda @@ -5024,7 +5020,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxslt-1.1.43-hb2570ba_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-6.0.2-py312h447b5cf_2.conda @@ -5055,11 +5051,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py312h947358d_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py312h5d59a02_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h248ca61_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.16.5-py312h5978115_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numexpr-2.14.1-py312h3de7d89_1.conda @@ -5083,17 +5079,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-pycharm-0.0.10-unix_hf108a03_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.36.1-py310h34bb384_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.37.1-py310haaaf75b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.7.1-h46dec42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/propcache-0.3.1-py312h998013c_0.conda @@ -5104,8 +5100,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hea229ce_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hae6ed00_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -5121,18 +5117,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.12.1-py312h07dd7c3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyomo-6.9.5-py312h455b684_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.2-py312h66ed876_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyscipopt-5.6.0-py312h6b01ec3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytables-3.10.2-py312hc3f5fac_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.12-h18782d2_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py312ha11c99a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py312h877c910_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -5159,23 +5155,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.30.0-py312h6ef9ec0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.10-hb0cad00_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.8.0-np2py312he5ca3e3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scip-9.2.4-ha1e27ce_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312h39258fd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.1.2-py312h35cd81b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda @@ -5189,12 +5185,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.1-h85ec8f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.2-h77b7338_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/statsmodels-0.14.6-py312ha11c99a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h66ce52b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h4ddebb9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda @@ -5202,8 +5198,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py312h4409184_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -5222,7 +5218,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -5263,7 +5259,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/astroid-4.0.3-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.9.3-h2970c50_0.conda @@ -5287,8 +5283,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-hfd34d9b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bottleneck-1.6.0-np2py312h226b611_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.2.0-h2d644bc_1.conda @@ -5307,7 +5303,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py312he06e257_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -5319,35 +5315,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312hf90b1b7_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cppad-20250000.2-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py312h232196e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.1.0-py312he06e257_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.19-py312ha1a9051_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.44.0-h2bffdaa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.45.0-h2bffdaa_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fiona-1.10.1-py312h2d4285c_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -5365,7 +5361,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-hf297d47_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/frozenlist-1.7.0-py312hfdf67e6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda @@ -5378,11 +5374,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/glpk-5.0-h8ffe710_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda @@ -5390,14 +5386,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/grpcio-1.73.1-py312h9256aa6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/gts-0.7.6-h6b5321d_4.conda - - conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py312h03cd2ba_101.conda - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.2.0-h5f2951f_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda - conda: https://conda.anaconda.org/conda-forge/win-64/highspy-1.12.0-np2py312ha76dc74_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda @@ -5405,7 +5401,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh7428d3b_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/immutables-0.21-py312he06e257_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -5432,20 +5428,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py312h78d62e6_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/levenshtein-0.27.3-py312hbb81ca0_0.conda @@ -5483,28 +5479,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.39.0-h19ee442_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.39.0-he04ea4c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.73.1-h317e13b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h4379cf1_1003.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libhwy-1.3.0-ha71e874_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.2-hfd05255_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hac9b6f3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hf3f85d1_8.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h68a222c_1022.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-7_h018ca30_netlib.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.3-nompi_h7d90bef_103.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-22.0.0-h7051d1f_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.53-h7351971_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-6.31.1-hdcda5b4_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2025.11.05-h0eb2380_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-haa95264_20.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-gpl_h0cd62ae_119.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.22.0-h23985f6_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.1-h8f73337_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.2-hb980946_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libvulkan-loader-1.4.328.1-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_10.conda @@ -5515,7 +5511,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h0fbe4c1_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.8-h4fa8253_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/lxml-6.0.2-py312h2f35c63_2.conda @@ -5543,11 +5539,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py312h79d12a2_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.4-nompi_py312h8fa77f8_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.16.5-py312hc128f0a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numexpr-2.14.1-py312h0c4f959_101.conda @@ -5570,16 +5566,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-pycharm-0.0.10-win_hba80fca_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.36.1-py310hca7251b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.37.1-py310hca7251b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.7.1-h7b1ce8f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/propcache-0.3.1-py312h31fea79_0.conda @@ -5589,8 +5585,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -5604,7 +5600,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.11.1-py312h2d4285c_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyomo-6.9.5-py312hbb81ca0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.2-py312habbd053_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyreadline3-3.5.4-py312h2e8e312_2.conda @@ -5612,12 +5608,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py312h0c8bdd4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pytables-3.10.2-py312h20cef2e_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.12-h0159041_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py312h196c9fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py312h226b611_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -5646,23 +5642,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py312hdabe01f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.10-h37e10c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.8.0-np2py312hea30aaf_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scip-9.2.4-h4cfe319_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py312h9b3c559_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py312h9b3c559_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh6dadd2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.2-py312h37f46ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda @@ -5676,12 +5672,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.1-hdb435a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.2-hdb435a2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/statsmodels-0.14.6-py312h196c9fc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh6dadd2b_1.conda @@ -5689,8 +5685,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py312he06e257_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -5713,7 +5709,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_34.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -5761,7 +5757,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.6.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.13.3-py312h5d8c7f2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.1-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ampl-asl-1.0.0-h5888daf_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/amply-0.1.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda @@ -5774,7 +5770,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/astroid-4.0.3-py312h7900ff3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda @@ -5807,8 +5803,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-he440d0b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bottleneck-1.6.0-np2py312hfb8c2c5_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-hed03a55_1.conda @@ -5827,7 +5823,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py312h460c074_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -5844,7 +5840,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py312hd9148b4_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cppad-20250000.2-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda @@ -5852,30 +5848,30 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cytoolz-1.1.0-py312h4c3975b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.18-py312h8285ef7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.44.0-h83bc92c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.45.0-h83bc92c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fiona-1.10.1-py312h053e1f3_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -5893,7 +5889,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/freexl-2.0.0-h9dce30a_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.7.0-py312h447239a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -5909,27 +5905,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/glpk-5.0-h445213a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.0-h8b86629_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.1-h8b86629_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.73.1-py312h6f3464c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h993cebd_6.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - - conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py312ha4f8f14_101.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h2a13503_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_104.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/highspy-1.12.0-np2py312h0f77346_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -5937,8 +5933,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.1-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/immutables-0.21-py312h4c3975b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -5966,13 +5962,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda @@ -5980,7 +5976,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py312h0a2e395_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda @@ -6039,13 +6035,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwy-1.3.0-h4c17acf_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-hf08fa70_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-ha09017c_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-haa4a5bd_1022.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.11.0-5_h6ae95b6_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.9.3-nompi_h11f7409_103.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda @@ -6056,7 +6052,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-22.0.0-h7376487_6_cpu.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.53-h421ea60_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-h7b12aa8_0.conda @@ -6066,13 +6062,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.1.0-gpl_h2abfd87_119.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libspral-2025.05.20-hfabd9d1_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-hf4e2dac_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h454ac66_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.2-hfe17d71_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda @@ -6085,7 +6081,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzip-1.11.2-h6991a6a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.2-py312h63ddcf0_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-4.4.5-py312h3d67a73_1.conda @@ -6115,12 +6111,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py312hf6400b3_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py312h25f8dc5_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.5-py312hf79963d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numexpr-2.14.1-py312h88efc94_101.conda @@ -6144,17 +6140,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.1.0-py312h50c33e8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.36.1-py310hffdcd12_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.37.1-py310hffdcd12_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/proj-9.7.1-h99ae125_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/propcache-0.3.1-py312h178313f_0.conda @@ -6166,8 +6162,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pulp-2.8.0-py312hd0750ca_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -6181,19 +6177,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/pyogrio-0.12.1-py312h053e1f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyomo-6.9.5-py312h1289d80_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py312h9b6a7d9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyscipopt-5.6.0-py312h1289d80_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py312h9da60e5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pytables-3.10.2-py312hefc0c3f_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.12-hd63d673_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py312h4f23490_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py312hfb8c2c5_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -6221,39 +6217,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py312h868fb18_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.10-h4196e79_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.8.0-np2py312h3226591_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scip-9.2.4-hd8b5c82_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py312h54fa4ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py312h54fa4ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyha191276_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.2-py312h383787d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.1-h04a0ce9_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.2-h04a0ce9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.6-py312h4f23490_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda @@ -6265,8 +6261,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -6285,7 +6281,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/uriparser-0.9.8-hac33072_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-hd6090a7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -6321,9 +6317,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.6-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2025.1-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/xyzservices-2025.11.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.2-ha02ee65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.2-ha02ee65_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.2-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.22.0-py312h8a5da7c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/yte-1.9.4-pyhd8ed1ab_0.conda @@ -6355,7 +6351,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/astroid-4.0.3-py312hb401068_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/atk-1.0-2.38.0-h4bec284_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda @@ -6385,8 +6381,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-hd145fbb_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bottleneck-1.6.0-np2py312he8eb05d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.2.0-hf139dec_1.conda @@ -6405,7 +6401,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -6422,35 +6418,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py312hd099df3_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cppad-20250000.2-h240833e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py312heb31a8c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cytoolz-1.1.0-py312h80b0991_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.19-py312h6c02384_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.44.0-h163e534_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.45.0-hef68630_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/epoxy-1.5.10-h8616949_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fiona-1.10.1-py312hb20e208_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -6467,7 +6463,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/freexl-2.0.0-h3183152_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/fribidi-1.0.16-h8616949_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/frozenlist-1.7.0-py312h18bfd43_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gdk-pixbuf-2.44.4-h07555a4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -6483,27 +6479,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h2790a97_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/glpk-5.0-h3cb5acd_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312h5469281_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312hb9001e9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/graphite2-1.3.14-h21dd04a_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.0-had0cc5b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.1-h44fc223_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/grpcio-1.73.1-py312h53eab48_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gtk3-3.24.43-h5e629aa_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/gts-0.7.6-h53e17e3_4.conda - - conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py312hcf08926_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf4-4.2.15-h8138101_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/hicolor-icon-theme-0.17-h694c41f_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/highspy-1.12.0-np2py312h855832a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -6511,8 +6507,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.1-h14c5de8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/immutables-0.21-py312h2f459f6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -6540,20 +6536,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py312h90e26e8_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/levenshtein-0.27.3-py312h69bf00f_0.conda @@ -6593,23 +6589,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-2.39.0-hed66dea_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-2.39.0-h8ac052b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.73.1-h451496d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.1-default_h273dbb7_1003.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.2-default_h273dbb7_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libhwy-1.3.0-hab838a1_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.2-h8616949_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-h4ee1b5b_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-hde0fb83_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libkml-1.3.0-h450b6c2_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapacke-3.11.0-5_h94b3770_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnetcdf-4.9.3-nompi_habf9e57_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.21.0-h7d3f41d_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.21.0-h694c41f_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-22.0.0-habb56ca_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.53-h380d223_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-6.31.1-hcc66ac3_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h554ac88_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/librsvg-2.60.0-h2da6fc3_0.conda @@ -6617,11 +6613,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libscotch-7.0.10-int64_h5eb5a6d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.20-hfdf4475_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libspatialite-5.1.0-gpl_hb921464_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-hd09e2f1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.22.0-h687e942_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.1-ha0a348c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.2-h7983711_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.17.0-hf1f96e2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda @@ -6630,7 +6626,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h486b42e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzip-1.11.2-h31df5bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/lxml-6.0.2-py312hd94307c_2.conda @@ -6661,11 +6657,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py312hab8b850_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py312h6ec3a75_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h53ec75d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.16.5-py312h86abcb1_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numexpr-2.14.1-py312hd12f69b_1.conda @@ -6688,17 +6684,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.1.0-py312h4985050_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.36.1-py310hfb6bc98_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.37.1-py310had17480_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/proj-9.7.0-h3124640_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/propcache-0.3.1-py312h3520af0_0.conda @@ -6710,8 +6706,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pulp-2.8.0-py312hda2ad9a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312hefc66a4_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312h46fdf74_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -6727,18 +6723,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/pyogrio-0.12.1-py312h17ccd7d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyomo-6.9.5-py312h69bf00f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyproj-3.7.2-py312hfea2d77_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyscipopt-5.6.0-py312h462f358_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pytables-3.10.2-py312he4c742b_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.12-h74c2667_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py312h391ab28_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py312hdc59d4f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -6765,42 +6761,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py312h8a6388b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.10-hb17bafe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.8.0-np2py312h47bbdc5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scip-9.2.4-h078ad67_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312h79cf0a0_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py312ha20b133_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.2-py312hd8edc82_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h01f5ddf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.1-h4b4dc0b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.2-h5af3ad2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/statsmodels-0.14.6-py312h391ab28_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-hf0c99ee_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-h06b67a2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda @@ -6808,8 +6804,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py312h404bc50_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -6828,7 +6824,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/uriparser-0.9.8-h6aefe2f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -6872,7 +6868,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/astroid-4.0.3-py312h81bd7bf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/atk-1.0-2.38.0-hd03087b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda @@ -6902,8 +6898,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h7dd00d9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bottleneck-1.6.0-np2py312h931d34d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-1.2.0-h7d5ae5b_1.conda @@ -6922,7 +6918,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -6939,35 +6935,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h84eede6_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cppad-20250000.2-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312hd13a024_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cytoolz-1.1.0-py312h4409184_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.19-py312h56d30c9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.44.0-h6f4dcf9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.45.0-h768f3a7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/epoxy-1.5.10-hc919400_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fiona-1.10.1-py312h515fe7d_6.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -6984,7 +6980,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freexl-2.0.0-h3ab3353_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fribidi-1.0.16-hc919400_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozenlist-1.7.0-py312h512c567_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gdk-pixbuf-2.44.4-h7542897_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda @@ -7000,27 +6996,27 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glpk-5.0-h6d7a090_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-h7bae524_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h2476293_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h090f823_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphite2-1.3.14-hec049ff_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.0-ha8f0fc4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.1-hec8c438_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/grpcio-1.73.1-py312h9bc1d27_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gtk3-3.24.43-h5febe37_6.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gts-0.7.6-he42f4ea_4.conda - - conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py312h4eecd6b_101.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf4-4.2.15-h2ee6834_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hicolor-icon-theme-0.17-hce30654_2.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/highspy-1.12.0-np2py312h5a6ab93_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda @@ -7028,8 +7024,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh707e725_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.1-h38cb7af_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/immutables-0.21-py312h163523d_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -7057,20 +7053,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py312hd8c8125_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/levenshtein-0.27.3-py312h455b684_0.conda @@ -7110,23 +7106,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.39.0-head0a95_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.39.0-hfa3a374_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.73.1-h3063b79_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.1-default_ha3cc4f2_1003.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.2-default_ha3cc4f2_1000.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwy-1.3.0-h48b13b8_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-h493aca8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.1.2-hc919400_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h3dcb153_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h913acd8_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libkml-1.3.0-hc33e383_1022.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapacke-3.11.0-5_h1b118fd_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnetcdf-4.9.3-nompi_h80c4520_103.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.21.0-he15edb5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-headers-1.21.0-hce30654_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-22.0.0-h0ac143b_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.53-hfab5511_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-6.31.1-h98f38fd_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-h91c62da_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/librsvg-2.60.0-h5c55ec3_0.conda @@ -7134,11 +7130,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libscotch-7.0.10-int64_ha305a69_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libspatialite-5.1.0-gpl_ha239c29_119.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h1b79a29_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.22.0-h14a376c_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.1-h4030677_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.2-hd2415e0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.6.0-h07db88b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda @@ -7147,7 +7143,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxslt-1.1.43-hb2570ba_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzip-1.11.2-h1336266_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lxml-6.0.2-py312h447b5cf_2.conda @@ -7178,11 +7174,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py312h947358d_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py312h5d59a02_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h248ca61_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.16.5-py312h5978115_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numexpr-2.14.1-py312h3de7d89_1.conda @@ -7205,17 +7201,17 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.1.0-py312h4e908a4_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.36.1-py310h34bb384_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.37.1-py310haaaf75b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/proj-9.7.1-h46dec42_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/propcache-0.3.1-py312h998013c_0.conda @@ -7227,8 +7223,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pulp-2.8.0-py312h38bd297_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hea229ce_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hae6ed00_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -7244,18 +7240,18 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyogrio-0.12.1-py312h07dd7c3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyomo-6.9.5-py312h455b684_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyproj-3.7.2-py312h66ed876_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyscipopt-5.6.0-py312h6b01ec3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytables-3.10.2-py312hc3f5fac_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.12-h18782d2_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py312ha11c99a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py312h877c910_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -7282,42 +7278,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.30.0-py312h6ef9ec0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.10-hb0cad00_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.8.0-np2py312he5ca3e3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scip-9.2.4-ha1e27ce_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312h39258fd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/shapely-2.1.2-py312h35cd81b_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-hada39a4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.1-h85ec8f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.2-h77b7338_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/statsmodels-0.14.6-py312ha11c99a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h66ce52b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h4ddebb9_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda @@ -7325,8 +7321,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py312h4409184_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -7345,7 +7341,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uriparser-0.9.8-h00cdb27_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/validators-0.35.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -7387,7 +7383,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/astroid-4.0.3-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/atlite-0.4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.9.3-h2970c50_0.conda @@ -7411,8 +7407,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/blinker-1.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-hfd34d9b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bokeh-3.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bottleneck-1.6.0-np2py312h226b611_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/branca-0.8.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.2.0-h2d644bc_1.conda @@ -7431,7 +7427,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py312he06e257_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1.2-pyhd8ed1ab_0.conda @@ -7448,35 +7444,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/configargparse-1.7.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/connection_pool-0.0.3-pyhd3deb0d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py312hf90b1b7_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cppad-20250000.2-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py312h232196e_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/cytoolz-1.1.0-py312he06e257_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.19-py312ha1a9051_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-pyhd8ed1ab_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/dpath-2.2.0-pyha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.44.0-h2bffdaa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.45.0-h2bffdaa_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/entsoe-py-0.7.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/et_xmlfile-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fiona-1.10.1-py312h2d4285c_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/folium-0.20.0-pyhd8ed1ab_0.conda @@ -7494,7 +7490,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/freexl-2.0.0-hf297d47_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/fribidi-1.0.16-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/frozenlist-1.7.0-py312hfdf67e6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geographiclib-2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geojson-3.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/geopandas-1.1.2-pyhd8ed1ab_0.conda @@ -7506,11 +7502,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.46-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/glpk-5.0-h8ffe710_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.72.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_2.conda @@ -7518,14 +7514,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/grpcio-1.73.1-py312h9256aa6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/grpcio-status-1.73.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/gts-0.7.6-h6b5321d_4.conda - - conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.0-py312_0.conda + - conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.1-py312_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py312h03cd2ba_101.conda - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.2.0-h5f2951f_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/hdf4-4.2.15-h5557f11_7.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda - conda: https://conda.anaconda.org/conda-forge/win-64/highspy-1.12.0-np2py312ha76dc74_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda @@ -7533,7 +7529,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/humanfriendly-10.0-pyh7428d3b_8.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/immutables-0.21-py312he06e257_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda @@ -7560,20 +7556,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-1.1.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py312h78d62e6_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/legacy-cgi-2.6.4-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/levenshtein-0.27.3-py312hbb81ca0_0.conda @@ -7611,28 +7607,28 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-2.39.0-h19ee442_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-2.39.0-he04ea4c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.73.1-h317e13b_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h4379cf1_1003.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libhwy-1.3.0-ha71e874_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.2-hfd05255_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hac9b6f3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hf3f85d1_8.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libkml-1.3.0-h68a222c_1022.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-7_h018ca30_netlib.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libnetcdf-4.9.3-nompi_h7d90bef_103.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-22.0.0-h7051d1f_6_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.53-h7351971_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-6.31.1-hdcda5b4_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2025.11.05-h0eb2380_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/librttopo-1.1.0-haa95264_20.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libspatialite-5.1.0-gpl_h0cd62ae_119.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.22.0-h23985f6_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.1-h8f73337_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.2-hb980946_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libvulkan-loader-1.4.328.1-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_10.conda @@ -7643,7 +7639,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h0fbe4c1_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzip-1.11.2-h3135430_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.8-h4fa8253_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/lxml-6.0.2-py312h2f35c63_2.conda @@ -7673,11 +7669,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py312h79d12a2_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.4-nompi_py312h8fa77f8_102.conda - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.16.5-py312hc128f0a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numexpr-2.14.1-py312h0c4f959_101.conda @@ -7699,16 +7695,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.1.0-py312h31f0997_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.36.1-py310hca7251b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.37.1-py310hca7251b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/progressbar2-4.5.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/proj-9.7.1-h7b1ce8f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.52-hd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/propcache-0.3.1-py312h31fea79_0.conda @@ -7719,8 +7715,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pulp-2.8.0-py312he39998a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_1_cpu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.4.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycountry-24.6.1-pyhd8ed1ab_0.conda @@ -7734,7 +7730,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/pyogrio-0.11.1-py312h2d4285c_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyomo-6.9.5-py312hbb81ca0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-25.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyproj-3.7.2-py312habbd053_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyreadline3-3.5.4-py312h2e8e312_2.conda @@ -7742,12 +7738,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pyshp-3.0.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py312h0c8bdd4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pytables-3.10.2-py312h20cef2e_10.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.12-h0159041_1_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py312h196c9fc_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py312h226b611_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda @@ -7776,42 +7772,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py312hdabe01f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rsa-4.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.10-h37e10c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.16.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.8.0-np2py312hea30aaf_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scip-9.2.4-h4cfe319_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py312h9b3c559_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py312h9b3c559_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh6dadd2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.2-py312h37f46ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smart_open-7.5.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/smmap-5.0.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-cluster-generic-1.0.9-pyhdfd78af_0.tar.bz2 - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-executor-plugins-9.3.9-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-logger-plugins-2.0.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-report-plugins-1.3.0-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-scheduler-plugins-2.0.2-pyhd4c3c12_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-storage-plugins-4.3.2-pyhd4c3c12_0.conda - - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda + - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-cached-http-0.1.0-pyhdfd78af_0.conda - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-storage-plugin-http-0.3.0-pyhdfd78af_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.1-hdb435a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.2-hdb435a2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/statsmodels-0.14.6-py312h196c9fc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tenacity-9.1.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh6dadd2b_1.conda @@ -7819,8 +7815,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/throttler-1.2.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py312he06e257_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda @@ -7843,7 +7839,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_34.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -8093,16 +8089,16 @@ packages: license_family: BSD size: 18684 timestamp: 1733750512696 -- conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.1-hb03c661_0.conda - sha256: 224f1a55a9ba7e877bce980f14fc3e3c0f0fb6d3cbf3c5f1a8f5dd8391ce8bba - md5: bba37fb066adb90e1d876dff0fd5d09d +- conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda + sha256: d88aa7ae766cf584e180996e92fef2aa7d8e0a0a5ab1d4d49c32390c1b5fff31 + md5: dcdc58c15961dbf17a0621312b01f5cb depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 license: LGPL-2.1-or-later license_family: GPL - size: 585491 - timestamp: 1766155792553 + size: 584660 + timestamp: 1768327524772 - conda: https://conda.anaconda.org/conda-forge/linux-64/ampl-asl-1.0.0-h5888daf_2.conda sha256: c5c1057778bec78e07a4a8f122c3659767817fc0a9fa034724ff931ad90af57b md5: ef757816a8f0fee2650b6c7e19980b6b @@ -8355,17 +8351,17 @@ packages: license_family: Apache size: 28797 timestamp: 1763410017955 -- conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda - sha256: 3b7233041e462d9eeb93ea1dfe7b18aca9c358832517072054bb8761df0c324b - md5: d9d0f99095a9bb7e3641bca8c6ad2ac7 +- conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda + sha256: fb09cb9bfe4da1586d0ad3bf80bb65e70acfd5fe0f76df384250a1c0587d6acc + md5: 04d2e5fba67e5a1ecec8e25d6c769004 depends: - - python >=3.9 + - python >=3.10 - typing_extensions >=4.0.0 - python license: MIT license_family: MIT - size: 17335 - timestamp: 1742153708859 + size: 19458 + timestamp: 1768752884184 - conda: https://conda.anaconda.org/conda-forge/noarch/async-timeout-5.0.1-pyhcf101f3_2.conda sha256: 6638b68ab2675d0bed1f73562a4e75a61863b903be1538282cddb56c8e8f75bd md5: 0d0ef7e4a0996b2c4ac2175a12b3bf69 @@ -9555,21 +9551,21 @@ packages: license_family: BSD size: 5027028 timestamp: 1762557204752 -- conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.24-pyhd8ed1ab_0.conda - sha256: 8442b8e826803d4fe2025d5f9a8debbe62131225bb35a76420d455fc1987acb2 - md5: 1703a35c4cb659d4f2559cbd91ca8e06 +- conda: https://conda.anaconda.org/conda-forge/noarch/boto3-1.42.30-pyhd8ed1ab_0.conda + sha256: 402fc44b4721ca94147849241c43c9a84ed3ac42c8b9c0730c428371e3a1223e + md5: 524a4e4a5961300edb23f363225f617a depends: - - botocore >=1.42.24,<1.43.0 + - botocore >=1.42.30,<1.43.0 - jmespath >=0.7.1,<2.0.0 - python >=3.10 - s3transfer >=0.16.0,<0.17.0 license: Apache-2.0 license_family: Apache - size: 84933 - timestamp: 1767861605152 -- conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.24-pyhd8ed1ab_0.conda - sha256: 00041090d840c0043e84319ca0595fbccd0aaa07ea3bdd0cc7de7831317a00f8 - md5: 70964d1dd58f0159320db4486540f405 + size: 84780 + timestamp: 1768742947907 +- conda: https://conda.anaconda.org/conda-forge/noarch/botocore-1.42.30-pyhd8ed1ab_0.conda + sha256: b097212cd66085c206462e25cdc097466f432b32e27ba825ecd93bb5ce3e3a34 + md5: 82b5c1f7d596ddd3bf5c096c1204a553 depends: - jmespath >=0.7.1,<2.0.0 - python >=3.10 @@ -9577,8 +9573,8 @@ packages: - urllib3 >=1.25.4,!=2.2.0,<3 license: Apache-2.0 license_family: Apache - size: 8303126 - timestamp: 1767835056298 + size: 8364209 + timestamp: 1768638439626 - conda: https://conda.anaconda.org/conda-forge/linux-64/bottleneck-1.6.0-np2py312hfb8c2c5_3.conda sha256: 59deb2e5147e1727c67f0409cf40163e32254362ae361b5761fd10bc7c255267 md5: 99981dfd6b851dba87c43b5f895e6d6a @@ -10498,9 +10494,9 @@ packages: license_family: MIT size: 13589 timestamp: 1763607964133 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_0.conda - sha256: dce5bfcc7b7887e2a7765f63515e718a9994bcc154e2b388bea6663d153691c4 - md5: acb46785d4866cec0a88b4d6e991c33f +- conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py312h4f23490_1.conda + sha256: 02c483817cce596ab0fb79f0f64027a166e20db0c84973e61a08285d53ee463d + md5: 84bf349fad55056ed326fc550671b65c depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -10510,11 +10506,11 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 426288 - timestamp: 1767648939478 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py314hc02f841_0.conda - sha256: 3ae6348a17add58ee146367243aa5bfee7297ffc55152f14d36300fa7c4867a3 - md5: 02e3559b6260b408fc1668c1bd26df10 + size: 426552 + timestamp: 1768510920948 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.5-py314hc02f841_1.conda + sha256: 5889371679ebd4cc4d7a1b9a4a6f5ca7146527b9c6da14ba83f2edadbc45ac82 + md5: 552b5d9d8a2a4be882e1c638953e7281 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -10524,11 +10520,11 @@ packages: - python_abi 3.14.* *_cp314 license: MIT license_family: MIT - size: 440059 - timestamp: 1767648783959 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_0.conda - sha256: 967bff5269fe9bf5a8161df0d2caefe523c9289064519c4dc2d00ac441559f4c - md5: f643e713da1e6ad21ac45b4550c9a6ae + size: 438385 + timestamp: 1768510929901 +- conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py312h8ab2c85_1.conda + sha256: 46637d1e733541eedc58496ef4891fcbe4e16738fa2cf0235333868044a3aa9e + md5: 54ba6dea57839640386fddb0349a272b depends: - __osx >=10.13 - numpy >=1.21.2 @@ -10537,11 +10533,11 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 393839 - timestamp: 1767649038817 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py314h26e5826_0.conda - sha256: 31028417c7ad53dac95db5aa9b942818aa5e186d182179d4d43496edc377df82 - md5: 02a5463b1a24124b43ee3f0b32baa39a + size: 395770 + timestamp: 1768511272881 +- conda: https://conda.anaconda.org/conda-forge/osx-64/cftime-1.6.5-py314h26e5826_1.conda + sha256: 0bc975ad7f0d20c1c9a862893ba75bb0f9ac5e09611f9ed85dcafa76c0a7e791 + md5: af457847f475d415e154c06cb30c2e1e depends: - __osx >=10.13 - numpy >=1.21.2 @@ -10550,11 +10546,11 @@ packages: - python_abi 3.14.* *_cp314 license: MIT license_family: MIT - size: 404960 - timestamp: 1767648935492 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_0.conda - sha256: 3b28cb0eacb28f345929cfac0258605b672a9fa1b8557c8548d77c42e89c35c9 - md5: b682104c25ecf02c0bd642b90358ce42 + size: 403475 + timestamp: 1768511087049 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py312hf57c059_1.conda + sha256: 80bb769852c90c763cdb90e55a9f2a392164de907a6df579cc8b94bff85d0158 + md5: bd54402123a03de02e03c509597c635b depends: - __osx >=11.0 - numpy >=1.21.2 @@ -10564,11 +10560,11 @@ packages: - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 386643 - timestamp: 1767649249363 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py314h2115a04_0.conda - sha256: 7a587b2368003bbbc3e70dc7d0e648afda55a15935d0092683869884095d2e26 - md5: 5ade1fa1413dccc0c3bd3b9f1e8a115e + size: 387077 + timestamp: 1768511266483 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cftime-1.6.5-py314h2115a04_1.conda + sha256: 266ee94a54887cbe8c05ae4ea6d5ea575fafb9d7f64c0ce0859af0fc5a416e59 + md5: a03f98abd72452e57a6667a58a5a2fdf depends: - __osx >=11.0 - numpy >=1.21.2 @@ -10578,11 +10574,11 @@ packages: - python_abi 3.14.* *_cp314 license: MIT license_family: MIT - size: 397874 - timestamp: 1767649171598 -- conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_0.conda - sha256: cf9b229dd23ab1ad4c947b0494d0077af650c8ac1b88507506cf90ac724ce58c - md5: 9849dcde5c2e9c20eddc64b4bbb281cb + size: 397425 + timestamp: 1768511349471 +- conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py312h196c9fc_1.conda + sha256: 59f52a05804736e08b2f9d623c46b928392a17fea40993c22902f823fae02de2 + md5: 050bf7fb12ce89a057121f790d0fc659 depends: - numpy >=1.21.2 - numpy >=1.23,<3 @@ -10593,11 +10589,11 @@ packages: - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 369457 - timestamp: 1767649225929 -- conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py314h2dcd201_0.conda - sha256: 778e3757f1ebadc78842468157441aee7e60d8b8be6b1dbe7e71720d9b8b02bd - md5: 948c9413c1ec1078b5006108f3be5884 + size: 371147 + timestamp: 1768511070154 +- conda: https://conda.anaconda.org/conda-forge/win-64/cftime-1.6.5-py314h2dcd201_1.conda + sha256: c3f5b0645a746dc520ceb30171c7e9938f61c57cffb0131085f0b42002d2f62c + md5: ed5f4a7e6c49c680bfe7f2ff0ec583be depends: - numpy >=1.21.2 - numpy >=1.23,<3 @@ -10608,8 +10604,8 @@ packages: - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 378461 - timestamp: 1767649080533 + size: 377553 + timestamp: 1768511112844 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda sha256: b32f8362e885f1b8417bac2b3da4db7323faa12d5db62b7fd6691c02d60d6f59 md5: a22d1fd9bf98827e280a02875d9a007a @@ -11278,9 +11274,9 @@ packages: license_family: BSD size: 227536 timestamp: 1762525688384 -- conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.2.5-pyhd8ed1ab_0.conda - sha256: 874b0a1cef18f5cc8369fb9b82ac5785ffd2b8e78706cfb6f93ff064416c628b - md5: e6f85f3cd0c5aff4ef0e07e80f49fa39 +- conda: https://conda.anaconda.org/conda-forge/noarch/copernicusmarine-2.3.0-pyhd8ed1ab_0.conda + sha256: 88d889261b057b5465d60b778a03795b5db464077c17b3fb0ca090a94429a273 + md5: 9e18b048c69d2d72bc69d120a435d731 depends: - arcosparse >=0.4.0,<0.5.0 - boto3 >=1.26 @@ -11298,8 +11294,8 @@ packages: - xarray >=2023.4.0 - zarr >=2.13.3 license: EUPL-1.2 - size: 82156 - timestamp: 1763035169125 + size: 87946 + timestamp: 1768809714531 - conda: https://conda.anaconda.org/conda-forge/noarch/country_converter-1.3.2-pyhd8ed1ab_0.conda sha256: b161a074b92715b9b6a53c35bb84abc0cecea4299ca76b0aaebab0e35b46f3dc md5: 193a9e54636d8d70781a3e56370f5502 @@ -11621,13 +11617,13 @@ packages: license_family: BSD size: 520577 timestamp: 1760906030865 -- conda: https://conda.anaconda.org/conda-forge/noarch/dask-2025.12.0-pyhcf101f3_0.conda - sha256: 16c6774ca5235e2adb55822f4a27dc7dc0b453f822ef4adcb3637f28680a8eb9 - md5: 94d36804598479f9eafa9c973902280e +- conda: https://conda.anaconda.org/conda-forge/noarch/dask-2026.1.1-pyhcf101f3_0.conda + sha256: cc3a106881051c9a4bdaf05fdf7e175f0d63885b4624728101e7996a0e6e8ae3 + md5: a86541105aa7920d2147d48bf370dc08 depends: - python >=3.10 - - dask-core >=2025.12.0,<2025.12.1.0a0 - - distributed >=2025.12.0,<2025.12.1.0a0 + - dask-core >=2026.1.1,<2026.1.2.0a0 + - distributed >=2026.1.1,<2026.1.2.0a0 - cytoolz >=0.11.0 - lz4 >=4.3.2 - numpy >=1.24 @@ -11640,11 +11636,11 @@ packages: - openssl !=1.1.1e license: BSD-3-Clause license_family: BSD - size: 11329 - timestamp: 1765559052366 -- conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2025.12.0-pyhcf101f3_1.conda - sha256: f02b63259e8f927a7e38e818a8dd251a06bce3f3f853235b8886a3cb89e0dded - md5: cc7b371edd70319942c802c7d828a428 + size: 11445 + timestamp: 1768579256349 +- conda: https://conda.anaconda.org/conda-forge/noarch/dask-core-2026.1.1-pyhcf101f3_1.conda + sha256: f279cecdcc132861e49c8f779ff3bfd42b8de811ca97b82566b6c7b23a136b11 + md5: 91e3b2a0d014ac032c066a2e18051686 depends: - python >=3.10 - click >=8.1 @@ -11658,8 +11654,8 @@ packages: - python license: BSD-3-Clause license_family: BSD - size: 1062442 - timestamp: 1765558272352 + size: 1063503 + timestamp: 1768568095009 - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda sha256: 8bb557af1b2b7983cf56292336a1a1853f26555d9c6cecf1e5b2b96838c9da87 md5: ce96f2f470d39bd96ce03945af92e280 @@ -11742,16 +11738,16 @@ packages: license_family: PSF size: 24062 timestamp: 1615232388757 -- conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_0.conda - sha256: c994a70449d548dd388768090c71c1da81e1e128a281547ab9022908d46878c5 - md5: bf74a83f7a0f2a21b5d709997402cac4 +- conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.3.1-pyhd8ed1ab_1.conda + sha256: 7d57a7b8266043ffb99d092ebc25e89a0a2490bed4146b9432c83c2c476fa94d + md5: 5498feb783ab29db6ca8845f68fa0f03 depends: - python >=3.10 - - wrapt <2,>=1.10 + - wrapt <3,>=1.10 license: MIT license_family: MIT - size: 15815 - timestamp: 1761813872696 + size: 15896 + timestamp: 1768934186726 - conda: https://conda.anaconda.org/conda-forge/noarch/deprecation-2.1.0-pyh9f0ad1d_0.tar.bz2 sha256: 2695a60ff355b114d0c459458461d941d2209ec9aff152853b6a3ca8700c94ec md5: 7b6747d7cc2076341029cff659669e8b @@ -11772,16 +11768,15 @@ packages: license_family: BSD size: 10632 timestamp: 1734602698202 -- conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda - sha256: c0c91bd91e59940091cec1760db51a82a58e9c64edf4b808bd2da94201ccfdb4 - md5: eec5b361dbbaa69dba05050977a414b0 +- conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda + sha256: 1ef84c0cc4efd0c2d58c3cb365945edbd9ee42a1c54514d1ccba4b641005f757 + md5: 080a808fce955026bf82107d955d32da depends: - python >=3.10 - python license: BSD-3-Clause - license_family: BSD - size: 94889 - timestamp: 1764517905571 + size: 95462 + timestamp: 1768863743943 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e md5: 003b8ba0a94e2f1e117d0bd46aebc901 @@ -11791,15 +11786,15 @@ packages: license_family: APACHE size: 275642 timestamp: 1752823081585 -- conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2025.12.0-pyhcf101f3_1.conda - sha256: efaf699a2b8dc4bc23ed517184c7fa3182a9f9072a0e97566ea5a1c532916bee - md5: 613cea9275c4773d0b53c879838ac0ad +- conda: https://conda.anaconda.org/conda-forge/noarch/distributed-2026.1.1-pyhcf101f3_1.conda + sha256: cc3dc8383c6693e387dba37a7feb360df0c7f3d8c5c11c92f4ca173e9a18476f + md5: c15e359a982395be86a7576a91f9c5f5 depends: - python >=3.10 - click >=8.0 - cloudpickle >=3.0.0 - cytoolz >=0.12.0 - - dask-core >=2025.12.0,<2025.12.1.0a0 + - dask-core >=2026.1.1,<2026.1.2.0a0 - jinja2 >=2.10.3 - locket >=1.0.0 - msgpack-python >=1.0.2 @@ -11817,8 +11812,8 @@ packages: - openssl !=1.1.1e license: BSD-3-Clause license_family: BSD - size: 844019 - timestamp: 1765560702026 + size: 844011 + timestamp: 1768575517215 - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_1.conda sha256: 5603c7d0321963bb9b4030eadabc3fd7ca6103a38475b4e0ed13ed6d97c86f4e md5: 0a2014fd9860f8b1eaa0b1f3d3771a08 @@ -11828,14 +11823,6 @@ packages: license_family: APACHE size: 41773 timestamp: 1734729953882 -- conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - sha256: fa5966bb1718bbf6967a85075e30e4547901410cc7cb7b16daf68942e9a94823 - md5: 24c1ca34138ee57de72a943237cde4cc - depends: - - python >=3.9 - license: CC-PDDC AND BSD-3-Clause AND BSD-2-Clause AND ZPL-2.1 - size: 402700 - timestamp: 1733217860944 - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.22.4-pyhd8ed1ab_0.conda sha256: 0d605569a77350fb681f9ed8d357cc71649b59a304099dc9d09fbeec5e84a65e md5: d6bd3cd217e62bbd7efe67ff224cd667 @@ -11896,9 +11883,9 @@ packages: license_family: MIT size: 21853 timestamp: 1762165431693 -- conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.44.0-h83bc92c_0.conda - sha256: 9d88f201263e9742cca41760b1c18f6189355cc695da766568bc4a035abb08a9 - md5: 2d37fd4ccfd98453a02a278e4112da39 +- conda: https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.45.0-h83bc92c_0.conda + sha256: 118573f583a3a9476fad02e66eaec25b9c1114f6d75b98f57b0df8901219fd7e + md5: a981ecc85b1ff6307b8f09cf66b77083 depends: - __glibc >=2.17,<3.0.a0 - hdf5 >=1.14.6,<1.14.7.0a0 @@ -11908,16 +11895,16 @@ packages: - libgfortran - libgfortran5 >=14.3.0 - libnetcdf >=4.9.3,<4.9.4.0a0 - - libpng >=1.6.50,<1.7.0a0 + - libpng >=1.6.54,<1.7.0a0 - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 license: Apache-2.0 license_family: Apache - size: 4666382 - timestamp: 1759850694036 -- conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.44.0-h163e534_0.conda - sha256: f3711696994315feb3f1a530069c13c4dd409959b1db7db14855a8065b580ed0 - md5: 297d010f244b28d465a538b4f5044057 + size: 4778986 + timestamp: 1768991430426 +- conda: https://conda.anaconda.org/conda-forge/osx-64/eccodes-2.45.0-hef68630_0.conda + sha256: e749dd9457e97b9e391461e5706c009102e039c218fc7f8651ca877ea3dd45ac + md5: c2d8f6d37131139dbaeba869b036b9cb depends: - __osx >=10.13 - hdf5 >=1.14.6,<1.14.7.0a0 @@ -11926,17 +11913,16 @@ packages: - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 - - libgfortran5 >=15.2.0 - libnetcdf >=4.9.3,<4.9.4.0a0 - - libpng >=1.6.50,<1.7.0a0 + - libpng >=1.6.54,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 license: Apache-2.0 license_family: Apache - size: 4859452 - timestamp: 1759851141414 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.44.0-h6f4dcf9_0.conda - sha256: b437c1f21fc09bdccfeff14fddc84a84dce8693d6fe9042f736c80786ab11435 - md5: ed0d5a772f60e3c18f35125d1e23e7e5 + size: 5266558 + timestamp: 1768916550349 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/eccodes-2.45.0-h768f3a7_0.conda + sha256: 378ed51575fe268f90704663b7fcb5f80f7c77865d46d0643124546225773d00 + md5: 73c9f89679eb90386f2787e7681e95b7 depends: - __osx >=11.0 - hdf5 >=1.14.6,<1.14.7.0a0 @@ -11945,31 +11931,30 @@ packages: - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 - - libgfortran5 >=15.2.0 - libnetcdf >=4.9.3,<4.9.4.0a0 - - libpng >=1.6.50,<1.7.0a0 + - libpng >=1.6.54,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 license: Apache-2.0 license_family: Apache - size: 5144121 - timestamp: 1759850666153 -- conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.44.0-h2bffdaa_0.conda - sha256: 45a95120e08c09bb5dd40d45cff8d41115922f875639cf32111399064e770f96 - md5: c0824c1cb3674ad22be82d49c9dc0c59 + size: 5142958 + timestamp: 1768915692443 +- conda: https://conda.anaconda.org/conda-forge/win-64/eccodes-2.45.0-h2bffdaa_0.conda + sha256: 4ae454952c781a542e165fd332f0123da775128b3730130a65601daaa6294969 + md5: d2813976958e0066e083e5e7f8e3480e depends: - hdf5 >=1.14.6,<1.14.7.0a0 - jasper >=4.2.8,<5.0a0 - libaec >=1.1.4,<2.0a0 - libnetcdf >=4.9.3,<4.9.4.0a0 - - libpng >=1.6.50,<1.7.0a0 + - libpng >=1.6.54,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: Apache-2.0 license_family: Apache - size: 2256452 - timestamp: 1759850345892 + size: 2325273 + timestamp: 1768914992523 - conda: https://conda.anaconda.org/conda-forge/noarch/ecmwf-datastores-client-0.4.1-pyhd8ed1ab_0.conda sha256: 4a3ab3cdc52b367a44568e474604e724e8ea7ab57a77e88f763357cffa993a23 md5: ea90ece1da754ca0c5d6766eb59908c2 @@ -12063,14 +12048,14 @@ packages: license_family: MIT size: 30753 timestamp: 1756729456476 -- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.2-pyhd8ed1ab_0.conda - sha256: 8c4210ed4dc439e87528635e226042ddab9bf458d4d0a12e7ba48d6c5babd0f8 - md5: 7e7cf4d6c2be6991e6ae2b3f4331701c +- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda + sha256: 8b90dc21f00167a7e58abb5141a140bdb31a7c5734fe1361b5f98f4a4183fd32 + md5: 2cfaaccf085c133a477f0a7a8657afe9 depends: - python >=3.10 license: Unlicense - size: 18646 - timestamp: 1767377337824 + size: 18661 + timestamp: 1768022315929 - conda: https://conda.anaconda.org/conda-forge/noarch/findlibs-0.1.2-pyhd8ed1ab_0.conda sha256: d02d04e24b79003442751240a7c7ad251c30e368f38808fb44c5a6e925c0436a md5: fa9e9ec7bf26619a8edd3e11155f15d6 @@ -12649,15 +12634,15 @@ packages: license_family: APACHE size: 49472 timestamp: 1752167442686 -- conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2025.12.0-pyhd8ed1ab_0.conda - sha256: 64a4ed910e39d96cd590d297982b229c57a08e70450d489faa34fd2bec36dbcc - md5: a3b9510e2491c20c7fc0f5e730227fbb +- conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.1.0-pyhd8ed1ab_0.conda + sha256: bfba6c280366f48b00a6a7036988fc2bc3fea5ac1d8303152c9da69d72a22936 + md5: 1daaf94a304a27ba3446a306235a37ea depends: - python >=3.10 license: BSD-3-Clause license_family: BSD - size: 147391 - timestamp: 1764784920938 + size: 148116 + timestamp: 1768000866082 - conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda sha256: f47222f58839bcc77c15f11a8814c1d8cb8080c5ca6ba83398a12b640fd3c85c md5: c379d67c686fb83475c1a6ed41cc41ff @@ -13033,9 +13018,9 @@ packages: license: GPL-2.0-or-later OR LGPL-3.0-or-later size: 567053 timestamp: 1718982076982 -- conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.28.1-pyhd8ed1ab_0.conda - sha256: 3dde5af0fdafae40315c278cd63ed531282f651868b1cb259d96234bc138dce0 - md5: 4f543962961d34db6b5c72ebe827caf7 +- conda: https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.29.0-pyhd8ed1ab_0.conda + sha256: 0f696294c9a117a16e344388347dd9dff644cd8ddb703002169d81f889c176df + md5: 7fd8158ff94ccf28a2ac1f534989d698 depends: - google-auth >=2.14.1,<3.0.0 - googleapis-common-protos >=1.56.2,<2.0.0 @@ -13045,8 +13030,8 @@ packages: - requests >=2.18.0,<3.0.0 license: Apache-2.0 license_family: APACHE - size: 98155 - timestamp: 1761990483177 + size: 98400 + timestamp: 1768122057220 - conda: https://conda.anaconda.org/conda-forge/noarch/google-auth-2.47.0-pyhcf101f3_0.conda sha256: 04ebcd67144d9e554c32bf585b7a4bf70be41a30ba72b415132c3b203549c197 md5: fa0d1dbb4ae73ca3636fe64ed0632a42 @@ -13061,6 +13046,7 @@ packages: - pyu2f >=0.1.5 - python license: Apache-2.0 + license_family: APACHE size: 141076 timestamp: 1767775649306 - conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.4.3-pyhd8ed1ab_0.conda @@ -13075,22 +13061,23 @@ packages: license_family: Apache size: 28516 timestamp: 1741676184625 -- conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhd8ed1ab_0.conda - sha256: a555b95ad2fed59a382da096bd23ece580ce240383f59917599f1c142acad8fc - md5: 862b63f7548be0c97e9c6f4f85959189 +- conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.5.0-pyhcf101f3_1.conda + sha256: fcef1d51f6de304a23c19ea6b3114dcab9ce54482d9f506f9a3e0b48be514744 + md5: 48fcccc0b579087018df0afc332b8bd6 depends: + - python >=3.10,<3.14 - google-api-core >=1.31.6,<3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0 - google-auth >=1.25.0,<3.0.0 - grpcio >=1.38.0,<2.0.0 - grpcio-status >=1.38.0,<2.0.0 - - python >=3.10,<3.14 + - python license: Apache-2.0 - license_family: Apache - size: 28892 - timestamp: 1761989216405 -- conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.7.0-pyhcf101f3_0.conda - sha256: 1dcc2a6431ee534b46caea77fbfb8898df77c141853a7b330a37670f4af80095 - md5: 9a4ab0a7b2c5362e9530b03cf563820b + license_family: APACHE + size: 33593 + timestamp: 1768561863777 +- conda: https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-3.8.0-pyhcf101f3_0.conda + sha256: d0e9ff3b7d4766cac36b49de6970ee55bcccf8ba31479c19f52d88463e7e6396 + md5: d05f7e8724ceb2a77edf3e39cc7760bb depends: - python >=3.10 - google-api-core >=2.27.0,<3.0.0 @@ -13104,11 +13091,11 @@ packages: - python license: Apache-2.0 license_family: APACHE - size: 193031 - timestamp: 1765317879465 -- conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_0.conda - sha256: 14cdffa302f3efae862da9d255033d63e0ad6c40ad983246c133f63f8515c868 - md5: 78cba474481131a39da50cd3f1ce4dac + size: 197741 + timestamp: 1768397292344 +- conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py312h03f33d3_1.conda + sha256: 3f962b2cbdc2aac3089a5c708477657266c0a665f0eed09981a34d1ab6793065 + md5: 68f704ea294dcec9e09edd9c3d233846 depends: - __glibc >=2.17,<3.0.a0 - libcrc32c >=1.1.2,<1.2.0a0 @@ -13117,11 +13104,11 @@ packages: - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache - size: 24991 - timestamp: 1765879106210 -- conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py314hd6bf2bd_0.conda - sha256: 97f7ca474a39421a7bd43a6a823788cdb8feaa97f004efef51f73decd9476e84 - md5: 50356a079958138b79c36e3401b5f8b0 + size: 24900 + timestamp: 1768549198202 +- conda: https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.8.0-py314hd6bf2bd_1.conda + sha256: b076f8b488c981f1c14149f5678f1de0f72f754eee9b2901e85c4dd97f71fc02 + md5: 9878f356d87ec8e4d2cd3c44561128be depends: - __glibc >=2.17,<3.0.a0 - libcrc32c >=1.1.2,<1.2.0a0 @@ -13130,11 +13117,11 @@ packages: - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache - size: 26341 - timestamp: 1765879131711 -- conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312h5469281_0.conda - sha256: e52d6764f47a75a9343739c32a18bd32599e260c8c8f64b5c5dde5448c98fdd4 - md5: 64003407b696a5b71d1ade0fce6b4a97 + size: 26245 + timestamp: 1768549199538 +- conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py312hb9001e9_1.conda + sha256: ffd90aaf431a1a1d45f1b852aef16e56c1ce73bd443fae96d83c9d8d2b8a9af2 + md5: 558f8364bc7ccb5be86f035dadab7981 depends: - __osx >=10.13 - libcrc32c >=1.1.2,<1.2.0a0 @@ -13142,11 +13129,11 @@ packages: - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache - size: 23969 - timestamp: 1765879216716 -- conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py314h89b0429_0.conda - sha256: 9e055cca6120aef0c710625cd9be642d2c97d185afdbaab48572d3647ba01b43 - md5: 221d8f0a028bda4a7e308225aae5fdfe + size: 24287 + timestamp: 1768549357803 +- conda: https://conda.anaconda.org/conda-forge/osx-64/google-crc32c-1.8.0-py314h19b641f_1.conda + sha256: 45588c44f2a1581ef9ad77d2c5b54f2e3fb08c1d557775cf8fcb6c9267821e26 + md5: b88b1786e14b3a4d7eeb67b0eadba49c depends: - __osx >=10.13 - libcrc32c >=1.1.2,<1.2.0a0 @@ -13154,11 +13141,11 @@ packages: - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache - size: 25377 - timestamp: 1765879381912 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h2476293_0.conda - sha256: 00bdf9bcb95954c1ea999292caf5c1a78a7d9efd8e0f438e78002ea4946eb5f5 - md5: 2423e06a6548feb89747a9c80b38c755 + size: 25601 + timestamp: 1768549529898 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py312h090f823_1.conda + sha256: cf6c1345d2c4fb4cee1128256d3a1d3fe5150c8788bc6cad12a04cbfc44bb247 + md5: 0c8ad601cdbec3be85d1c62080b388d7 depends: - __osx >=11.0 - libcrc32c >=1.1.2,<1.2.0a0 @@ -13167,11 +13154,11 @@ packages: - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache - size: 25147 - timestamp: 1765879266642 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py314h97a5fcc_0.conda - sha256: 8d622ac97e03d3f609fa2f4ee9a3caa2429d3b33e94ce637abbb6fde7c595dff - md5: 8cb73c984653eeed90d289a3675ff509 + size: 25105 + timestamp: 1768549598713 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/google-crc32c-1.8.0-py314h8744745_1.conda + sha256: a0d261ae01e0e6302a6300eb379c27795311d63047248bd4b60133694fa42d46 + md5: b63f8d58f71157e6ffdcac373fa5e8ab depends: - __osx >=11.0 - libcrc32c >=1.1.2,<1.2.0a0 @@ -13180,11 +13167,11 @@ packages: - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache - size: 25703 - timestamp: 1765879577089 -- conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_0.conda - sha256: 280622b6b281683249e72d000db84fd593ff70ccef1595a0b9c224f77cddaa5e - md5: b95a78d073bf5bd3f792ad1de5da9d99 + size: 26132 + timestamp: 1768549424382 +- conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py312h3d708b0_1.conda + sha256: 58381cbd3f0df0382b4f0981a6c1f34ba6f0be7fb84a9a29de134c5fe86f646c + md5: 91f5fad53070eed2524245d9a7902efa depends: - libcrc32c >=1.1.2,<1.2.0a0 - python >=3.12,<3.13.0a0 @@ -13194,11 +13181,11 @@ packages: - vc14_runtime >=14.44.35208 license: Apache-2.0 license_family: Apache - size: 28130 - timestamp: 1765879183892 -- conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py314h720154c_0.conda - sha256: bbf0c3607bc7a34d8f49ffbc05eaa7fe2886927df318997397b770201e5ec72d - md5: ba4eb2a49d0b34aeb0dbafe0e1eca95a + size: 28231 + timestamp: 1768549335337 +- conda: https://conda.anaconda.org/conda-forge/win-64/google-crc32c-1.8.0-py314h720154c_1.conda + sha256: 85cd3ddabe68ed21d8cea6d1891e2f8314cedc1a83ed4d0d1becc404b9e196f8 + md5: a0a922d23c89200907da94cf4e2bdbaf depends: - libcrc32c >=1.1.2,<1.2.0a0 - python >=3.14,<3.15.0a0 @@ -13208,8 +13195,8 @@ packages: - vc14_runtime >=14.44.35208 license: Apache-2.0 license_family: Apache - size: 29622 - timestamp: 1765879414310 + size: 29230 + timestamp: 1768549336961 - conda: https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.8.0-pyhd8ed1ab_0.conda sha256: 23d825ed0664a8089c7958bffd819d26e1aba7579695c40dfbdb25a4864d8be6 md5: ba7f04ba62be69f9c9fef0c4487c210b @@ -13275,9 +13262,9 @@ packages: license_family: LGPL size: 96336 timestamp: 1755102441729 -- conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.0-h8b86629_0.conda - sha256: af8ca1fe02eba1c4e72918e56ef180563ba38032bcbae0433bff13d0ba099113 - md5: 39dcf8bb370df27fd81dbe41d4cb605e +- conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-14.1.1-h8b86629_0.conda + sha256: 6c2ae893445ac4962271d8bd925ea08e3e2c5a32caa92d8f454b94769b3db7a4 + md5: 4cf37d6ca8783d52c080bd277ebc1ab3 depends: - __glibc >=2.17,<3.0.a0 - adwaita-icon-theme @@ -13289,7 +13276,7 @@ packages: - libexpat >=2.7.3,<3.0a0 - libgcc >=14 - libgd >=2.3.3,<2.4.0a0 - - libglib >=2.86.2,<3.0a0 + - libglib >=2.86.3,<3.0a0 - librsvg >=2.60.0,<3.0a0 - libstdcxx >=14 - libwebp-base >=1.6.0,<2.0a0 @@ -13297,11 +13284,11 @@ packages: - pango >=1.56.4,<2.0a0 license: EPL-1.0 license_family: Other - size: 2417740 - timestamp: 1765099199559 -- conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.0-had0cc5b_0.conda - sha256: fad9d2f0f8de9e8cf5f2a3c7620b9dd325645262e81a96a6f9d906c9cd4fb3be - md5: 2b817259cccac25ca7190fe3a48d54d4 + size: 2419442 + timestamp: 1768736235129 +- conda: https://conda.anaconda.org/conda-forge/osx-64/graphviz-14.1.1-h44fc223_0.conda + sha256: ff0f81224bae32d526c59c756111905e471af5ac506bd587b29fa3e2dc75a085 + md5: 907885685648c2acd96751c9f3800bc8 depends: - __osx >=10.13 - adwaita-icon-theme @@ -13313,18 +13300,18 @@ packages: - libcxx >=19 - libexpat >=2.7.3,<3.0a0 - libgd >=2.3.3,<2.4.0a0 - - libglib >=2.86.2,<3.0a0 + - libglib >=2.86.3,<3.0a0 - librsvg >=2.60.0,<3.0a0 - libwebp-base >=1.6.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - pango >=1.56.4,<2.0a0 license: EPL-1.0 license_family: Other - size: 2294073 - timestamp: 1765099724798 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.0-ha8f0fc4_0.conda - sha256: 4ef67325f2c0b404c2eca57cec53f8b483f3d273ea1bfc0f3bfbc3e9ecd3c846 - md5: 1463b9b703d3fc6eba63587c69611e91 + size: 2293301 + timestamp: 1768736673393 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphviz-14.1.1-hec8c438_0.conda + sha256: f2bb1a32190560f928c4584bf851270c78f51334791070f757f9b760df67786d + md5: 5b04666bf9b038e045ab9d638ebd5237 depends: - __osx >=11.0 - adwaita-icon-theme @@ -13336,15 +13323,15 @@ packages: - libcxx >=19 - libexpat >=2.7.3,<3.0a0 - libgd >=2.3.3,<2.4.0a0 - - libglib >=2.86.2,<3.0a0 + - libglib >=2.86.3,<3.0a0 - librsvg >=2.60.0,<3.0a0 - libwebp-base >=1.6.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - pango >=1.56.4,<2.0a0 license: EPL-1.0 license_family: Other - size: 2214133 - timestamp: 1765099666613 + size: 2214168 + timestamp: 1768736804887 - conda: https://conda.anaconda.org/conda-forge/win-64/graphviz-14.1.0-h4c50273_0.conda sha256: c14e28d2dc405c58dc2094d98961bc6c0aab591fb074d36f7c9fefbd420ebfd6 md5: c347e0f1819e771361861afc57e2f418 @@ -13365,6 +13352,26 @@ packages: license_family: Other size: 1218044 timestamp: 1765099565970 +- conda: https://conda.anaconda.org/conda-forge/win-64/graphviz-14.1.1-h4c50273_0.conda + sha256: d01a9f6fee1269536c22db7eab0695403e93b11699e3fafee039b76669b6b196 + md5: 12c03c07d11c6848b357f439e7d2d6fc + depends: + - cairo >=1.18.4,<2.0a0 + - getopt-win32 >=0.1,<0.1.1.0a0 + - gts >=0.7.6,<0.8.0a0 + - libexpat >=2.7.3,<3.0a0 + - libgd >=2.3.3,<2.4.0a0 + - libglib >=2.86.3,<3.0a0 + - libwebp-base >=1.6.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - pango >=1.56.4,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: EPL-1.0 + license_family: Other + size: 1219884 + timestamp: 1768736560256 - conda: https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.73.1-py312h6f3464c_1.conda sha256: 9b6ef222599d63ca23a9e292c35f454756e321cce52af9f5142303230f0c2762 md5: dca50c100d8d67882ada32756810372f @@ -13624,42 +13631,42 @@ packages: license_family: LGPL size: 188688 timestamp: 1686545648050 -- conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.0-py312_0.conda - sha256: 05786a9201a205217413cb4931c7a4fec1d2910c1276abb604d6bbabfd9fbbf4 - md5: ef0ccf2535c1ad7699b19ec5831b7c4e +- conda: https://conda.anaconda.org/gurobi/linux-64/gurobi-13.0.1-py312_0.conda + sha256: d8a3564018ea7e34b76548d0259d8933bd808eb1e5eabedf1a0e4ca85f940f8a + md5: a1841f5378cf8df084e4807c6f724b2e depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: PROPRIETARY - size: 47869815 - timestamp: 1762321505617 -- conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.0-py312_0.conda - sha256: 09f95e36fd3ebbb2232ca4dc08807ae88025ca37c3e88047565125ba607a7dbf - md5: 1685723870a342300f4d9ee1d55e7de6 + size: 47997079 + timestamp: 1768425596261 +- conda: https://conda.anaconda.org/gurobi/osx-64/gurobi-13.0.1-py312_0.conda + sha256: 7d6f976acdd9f218ead1d21ace6df670489253882ba16df8ea4e05d2d985a89b + md5: 87623ec0e5a5b15e08bd2b794d444298 depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: PROPRIETARY - size: 48219649 - timestamp: 1762316049347 -- conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.0-py312_0.conda - sha256: 678b518975f04a2c21477ec6cde2807ef2ffc7683812433598e828a6b318d58a - md5: 55126f693602482dc8a8677fe9bfc68f + size: 48458216 + timestamp: 1768419400920 +- conda: https://conda.anaconda.org/gurobi/osx-arm64/gurobi-13.0.1-py312_0.conda + sha256: 4ed4a68115c1313a7c6664345a523799184e5bbbba5ccee3f031c2f88c964944 + md5: 537aec789300ac8c576a975a9331b9ea depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: PROPRIETARY - size: 43989380 - timestamp: 1762319283613 -- conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.0-py312_0.conda - sha256: da51db4daa9bd0f8b008d41e5c9a6163240ee32222b037367501f60c2302a0ce - md5: 4b28ca56726d68ced86307620d1860e3 + size: 44107173 + timestamp: 1768422626403 +- conda: https://conda.anaconda.org/gurobi/win-64/gurobi-13.0.1-py312_0.conda + sha256: 3b34c25291e507ee7371a468cca139f8fe0cbc45ebc32b64a78dc7495b8490ab + md5: a464a5f0be05649bdbf06ff78793f1dc depends: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: PROPRIETARY - size: 43763677 - timestamp: 1762312138757 + size: 43892573 + timestamp: 1768419318447 - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda sha256: 96cac6573fd35ae151f4d6979bab6fbc90cb6b1fb99054ba19eb075da9822fcb md5: b8993c19b0c32a2f7b66cbb58ca27069 @@ -13683,17 +13690,17 @@ packages: license_family: MIT size: 95967 timestamp: 1756364871835 -- conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda - sha256: a7f9999242156b981eaffabc38eb3baf66c51af2ea89749df83b089f48e42c6e - md5: 4ce3dfa4440b4aa5364f4a6fcc3d7cb3 +- conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.8.0-pyhd8ed1ab_0.conda + sha256: 2951bf9e998a608ecb73280a066d7bc2998412099f43877e97a0bcd6b04aad90 + md5: 5f394d6ab27b83833789bbe6bcf87518 depends: - h5py - packaging - python >=3.9 license: BSD-3-Clause license_family: BSD - size: 52353 - timestamp: 1761062104664 + size: 57648 + timestamp: 1768724885756 - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py312ha4f8f14_101.conda sha256: bb5cefbe5b54195a54f749189fc6797568d52e8790b2f542143c681b98a92b71 md5: 23965cb240cb534649dfe2327ecec4fa @@ -13954,13 +13961,13 @@ packages: license_family: BSD size: 779637 timestamp: 1695662145568 -- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_104.conda - sha256: 454e9724b322cee277abd7acf4f8d688e9c4ded006b6d5bc9fcc2a1ff907d27a - md5: 0857f4d157820dcd5625f61fdfefb780 +- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda + sha256: aa85acd07b8f60d1760c6b3fa91dd8402572766e763f3989c759ecd266ed8e9f + md5: d58cd79121dd51128f2a5dab44edf1ea depends: - __glibc >=2.17,<3.0.a0 - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libgcc >=14 - libgfortran - libgfortran5 >=14.3.0 @@ -13969,15 +13976,15 @@ packages: - openssl >=3.5.4,<4.0a0 license: BSD-3-Clause license_family: BSD - size: 3720961 - timestamp: 1764771748126 -- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda - sha256: aed322f0e8936960332305fbc213831a3cd301db5ea22c06e1293d953ddec563 - md5: 9425a5c53febdf71696aed291586d038 + size: 3722799 + timestamp: 1768858199331 +- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda + sha256: e6e7d449e35318619cad887646a16536300d24fbf5475e3559773b217eb3622f + md5: bb19aadbe30c465c18c77678ac2eae09 depends: - __osx >=10.13 - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 @@ -13985,15 +13992,15 @@ packages: - openssl >=3.5.4,<4.0a0 license: BSD-3-Clause license_family: BSD - size: 3528765 - timestamp: 1764773824647 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda - sha256: 3cd591334a838b127dfe8a626f38241892063eac8873abb93255962c71155533 - md5: 5a1cbaf2349dd2e6dd6cfaab378de51b + size: 3531957 + timestamp: 1768859215229 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda + sha256: 94f0b1eb8f1142f3df37456cf4f0203f6bb3e82646a2ea3c47f7d00661e2ab1c + md5: 5630e3f53d61d87caff83e0e1c6eaf33 depends: - __osx >=11.0 - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 @@ -14001,14 +14008,14 @@ packages: - openssl >=3.5.4,<4.0a0 license: BSD-3-Clause license_family: BSD - size: 3292042 - timestamp: 1764771887501 -- conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda - sha256: cc948149f700033ff85ce4a1854edf6adcb5881391a3df5c40cbe2a793dd9f81 - md5: 9cc4a5567d46c7fcde99563e86522882 + size: 3299483 + timestamp: 1768858142380 +- conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda + sha256: 52e5eb039289946a32aee305e6af777d77376dc0adcb2bdcc31633dcc48d21a5 + md5: c1caaf8a28c0eb3be85566e63a5fcb5a depends: - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libzlib >=1.3.1,<2.0a0 - openssl >=3.5.4,<4.0a0 - ucrt >=10.0.20348.0 @@ -14016,8 +14023,8 @@ packages: - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD - size: 2028777 - timestamp: 1764771527382 + size: 2028299 + timestamp: 1768857717770 - conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 sha256: 336f29ceea9594f15cc8ec4c45fdc29e10796573c697ee0d57ebb7edd7e92043 md5: bbf6f174dcd3254e19a2f5d2295ce808 @@ -14223,35 +14230,35 @@ packages: license_family: MIT size: 17397 timestamp: 1737618427549 -- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.1-h33c6efd_0.conda - sha256: 7d6463d0be5092b2ae8f2fad34dc84de83eab8bd44cc0d4be8931881c973c48f - md5: 518e9bbbc3e3486d6a4519192ba690f8 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 + md5: 186a18e3ba246eccfc7cff00cd19a870 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 license: MIT license_family: MIT - size: 12722920 - timestamp: 1766299101259 -- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.1-h14c5de8_0.conda - sha256: 256df2229f930d7c83d8e2d36fdfce1f78980272558095ce741a9fccc5ed8998 - md5: 1e648e0c6657a29dc44102d6e3b10ebc + size: 12728445 + timestamp: 1767969922681 +- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda + sha256: f3066beae7fe3002f09c8a412cdf1819f49a2c9a485f720ec11664330cf9f1fe + md5: 30334add4de016489b731c6662511684 depends: - __osx >=10.13 license: MIT license_family: MIT - size: 12273114 - timestamp: 1766299263503 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.1-h38cb7af_0.conda - sha256: 411177ae27ea780a53f044a349d595638c97b84640a77fab4935db19f76203e2 - md5: 5446161926f45f3a14f7ca9db4d53e3b + size: 12263724 + timestamp: 1767970604977 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + sha256: d4cefbca587429d1192509edc52c88de52bc96c2447771ddc1f8bee928aed5ef + md5: 1e93aca311da0210e660d2247812fa02 depends: - __osx >=11.0 license: MIT license_family: MIT - size: 12372254 - timestamp: 1766299497731 + size: 12358010 + timestamp: 1767970350308 - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 md5: 8579b6bb8d18be7c0b27fb08adeeeb40 @@ -14263,27 +14270,27 @@ packages: license_family: MIT size: 14544252 timestamp: 1720853966338 -- conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.1-h637d24d_0.conda - sha256: bee083d5a0f05c380fcec1f30a71ef5518b23563aeb0a21f6b60b792645f9689 - md5: cb8048bed35ef01431184d6a88e46b3e +- conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.2-h637d24d_0.conda + sha256: 5a41fb28971342e293769fc968b3414253a2f8d9e30ed7c31517a15b4887246a + md5: 0ee3bb487600d5e71ab7d28951b2016a depends: - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 13849749 - timestamp: 1766299627069 -- conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda - sha256: 32d5007d12e5731867908cbf5345f5cd44a6c8755a2e8e63e15a184826a51f82 - md5: 25f954b7dae6dd7b0dc004dab74f1ce9 + size: 13222158 + timestamp: 1767970128854 +- conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda + sha256: 6a88cdde151469131df1948839ac2315ada99cf8d38aaacc9a7a5984e9cd8c19 + md5: 8bc5851c415865334882157127e75799 depends: - python >=3.10 - ukkonen license: MIT license_family: MIT - size: 79151 - timestamp: 1759437561529 + size: 79302 + timestamp: 1768295306539 - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda sha256: ae89d0299ada2a3162c2614a9d26557a92aa6a77120ce142f8e0109bbf0342b0 md5: 53abe63df7e10a6ba605dc5f9f961d36 @@ -14806,6 +14813,7 @@ packages: - rpds-py >=0.25.0 - python license: MIT + license_family: MIT size: 82356 timestamp: 1767839954256 - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda @@ -14834,6 +14842,7 @@ packages: - uri-template - webcolors >=24.6.0 license: MIT + license_family: MIT size: 4740 timestamp: 1767839954258 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-1.1.1-pyhd8ed1ab_1.conda @@ -14863,9 +14872,9 @@ packages: license_family: BSD size: 60377 timestamp: 1756388269267 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.7.0-pyhcf101f3_0.conda - sha256: 6aa61417547b925de64905b7a4da7c98e0b355f48a7b21bdbef438f8950ee74e - md5: 1b0397a7b1fbffa031feb690b5fd0277 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda + sha256: e402bd119720862a33229624ec23645916a7d47f30e1711a4af9e005162b84f3 + md5: 8a3d6d0523f66cf004e563a50d9392b3 depends: - jupyter_core >=5.1 - python >=3.10 @@ -14876,8 +14885,8 @@ packages: - python license: BSD-3-Clause license_family: BSD - size: 111367 - timestamp: 1765375773813 + size: 112785 + timestamp: 1767954655912 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_console-6.6.3-pyhd8ed1ab_1.conda sha256: aee0cdd0cb2b9321d28450aec4e0fd43566efcd79e862d70ce49a68bf0539bcd md5: 801dbf535ec26508fac6d4b24adfb76e @@ -14973,19 +14982,20 @@ packages: license_family: BSD size: 347094 timestamp: 1755870522134 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - sha256: 0890fc79422191bc29edf17d7b42cff44ba254aa225d31eb30819f8772b775b8 - md5: 2d983ff1b82a1ccb6f2e9d8784bdd6bd +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + sha256: 5eda79ed9f53f590031d29346abd183051263227dd9ee667b5ca1133ce297654 + md5: 7b8bace4943e0dc345fc45938826f2b8 depends: - - python >=3.9 + - python >=3.10 - terminado >=0.8.3 + - python license: BSD-3-Clause license_family: BSD - size: 19711 - timestamp: 1733428049134 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.1-pyhd8ed1ab_0.conda - sha256: ac31a517238173eb565ba9f517b1f9437fba48035f1276a9c1190c145657cafd - md5: f8e8f8db45e1a946ce9b20b0f60b3111 + size: 22052 + timestamp: 1768574057200 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.2-pyhd8ed1ab_0.conda + sha256: 4e277cee7fc4b403c954960476375e5a51babd06f3ac46a04bd9fff5971aa569 + md5: 513e7fcc06c82b24c84ff88ece13ac9f depends: - async-lru >=1.0.0 - httpx >=0.25.0,<1 @@ -15004,8 +15014,8 @@ packages: - traitlets license: BSD-3-Clause license_family: BSD - size: 8141875 - timestamp: 1765819955819 + size: 7915612 + timestamp: 1768223141907 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda sha256: dc24b900742fdaf1e077d9a3458fd865711de80bca95fe3c6d46610c532c6ef0 md5: fd312693df06da3578383232528c468d @@ -15234,53 +15244,53 @@ packages: license_family: MIT size: 18212 timestamp: 1592937373647 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda - sha256: d6a61830a354da022eae93fa896d0991385a875c6bba53c82263a289deda9db8 - md5: 000e85703f0fd9594c81710dd5066471 +- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda + sha256: 836ec4b895352110335b9fdcfa83a8dcdbe6c5fb7c06c4929130600caea91c0a + md5: 6f2e2c8f58160147c4d1c6f4c14cbac4 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libgcc >=14 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 license: MIT license_family: MIT - size: 248046 - timestamp: 1739160907615 -- conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda - sha256: bcb81543e49ff23e18dea79ef322ab44b8189fb11141b1af99d058503233a5fc - md5: bf210d0c63f2afb9e414a858b79f0eaa + size: 249959 + timestamp: 1768184673131 +- conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda + sha256: 3ec16c491425999a8461e1b7c98558060a4645a20cf4c9ac966103c724008cc2 + md5: 753acc10c7277f953f168890e5397c80 depends: - __osx >=10.13 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 license: MIT license_family: MIT - size: 226001 - timestamp: 1739161050843 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda - sha256: 310a62c2f074ebd5aa43b3cd4b00d46385ce680fa2132ecee255a200e2d2f15f - md5: 92a61fd30b19ebd5c1621a5bfe6d8b5f + size: 226870 + timestamp: 1768184917403 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda + sha256: d768da024ab74a4b30642401877fa914a68bdc238667f16b1ec2e0e98b2451a6 + md5: 6631a7bd2335bb9699b1dbc234b19784 depends: - __osx >=11.0 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 license: MIT license_family: MIT - size: 212125 - timestamp: 1739161108467 -- conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda - sha256: 7712eab5f1a35ca3ea6db48ead49e0d6ac7f96f8560da8023e61b3dbe4f3b25d - md5: 3538827f77b82a837fa681a4579e37a1 + size: 211756 + timestamp: 1768184994800 +- conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda + sha256: 7eeb18c5c86db146b62da66d9e8b0e753a52987f9134a494309588bbeceddf28 + md5: b6c68d6b829b044cd17a41e0a8a23ca1 depends: - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 510641 - timestamp: 1739161381270 + size: 522238 + timestamp: 1768184858107 - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda sha256: 1027bd8aa0d5144e954e426ab6218fd5c14e54a98f571985675468b339c808ca md5: 3ec0aa5037d39b06554109a01e6fb0c6 @@ -17828,9 +17838,9 @@ packages: license_family: BSD size: 2449346 timestamp: 1765089858592 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.1-default_h273dbb7_1003.conda - sha256: 2430293eb7c88961fe3430400a9ef69e5c9603fbdf502d12ab7fb2ff372e12ba - md5: 5a87dfe5dcdc54ca4dc839e1d3577785 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libhwloc-2.12.2-default_h273dbb7_1000.conda + sha256: ecc1d327c422ce84fc3ef90effdcb8d54122fe1f80509545c2394e0a0cd762e0 + md5: 56aaf4b7cc4c24e30cecc185bb08668d depends: - __osx >=10.13 - libcxx >=19 @@ -17838,11 +17848,11 @@ packages: - libxml2-16 >=2.14.6 license: BSD-3-Clause license_family: BSD - size: 2382686 - timestamp: 1765090134853 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.1-default_ha3cc4f2_1003.conda - sha256: ac2c289ab9be362fa2ca87f8a845366802bf426ab53fa9bc6f77479dfd59787d - md5: 3ef06cea314e3849c80a9fbbce58a132 + size: 2382366 + timestamp: 1765104175416 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libhwloc-2.12.2-default_ha3cc4f2_1000.conda + sha256: 4d03bb9bc0a813cf5e24f07e6adec3c42df2c9c36e226b71cb1dc6c7868c7d90 + md5: 38b8aa4ea25d313ad951bcb7d3cd0ad3 depends: - __osx >=11.0 - libcxx >=19 @@ -17850,11 +17860,11 @@ packages: - libxml2-16 >=2.14.6 license: BSD-3-Clause license_family: BSD - size: 2354776 - timestamp: 1765090154322 -- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h4379cf1_1003.conda - sha256: 2d534c09f92966b885acb3f4a838f7055cea043165a03079a539b06c54e20a49 - md5: d1699ce4fe195a9f61264a1c29b87035 + size: 2356224 + timestamp: 1765104113197 +- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda + sha256: 8cdf11333a81085468d9aa536ebb155abd74adc293576f6013fc0c85a7a90da3 + md5: 3b576f6860f838f950c570f4433b086e depends: - libwinpthread >=12.0.0.r4.gg4f2fc60ca - libxml2 @@ -17864,8 +17874,8 @@ packages: - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD - size: 2412642 - timestamp: 1765090345611 + size: 2411241 + timestamp: 1765104337762 - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwy-1.3.0-h4c17acf_1.conda sha256: 2bdd1cdd677b119abc5e83069bec2e28fe6bfb21ebaea3cd07acee67f38ea274 md5: c2a0c1d0120520e979685034e0b79859 @@ -18008,60 +18018,60 @@ packages: license: IJG AND BSD-3-Clause AND Zlib size: 841783 timestamp: 1762094814336 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-hf08fa70_5.conda - sha256: 6b9524a6a7ea6ef1ac791b697f660c2898171ae505d12e6d27509b59cf059ee6 - md5: 82954a6f42e3fba59628741dca105c98 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libjxl-0.11.1-ha09017c_8.conda + sha256: 1b9eda9cf595313cf093d40dfbe5aa1ff55c97a04cc024cf80a35dad527f7a54 + md5: 6e9bf4ce797d0216bd2a58298b6290b5 depends: + - libstdcxx >=14 + - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - libbrotlidec >=1.2.0,<1.3.0a0 - libbrotlienc >=1.2.0,<1.3.0a0 - - libgcc >=14 + - libbrotlidec >=1.2.0,<1.3.0a0 - libhwy >=1.3.0,<1.4.0a0 - - libstdcxx >=14 license: BSD-3-Clause license_family: BSD - size: 1740728 - timestamp: 1761788390905 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-h4ee1b5b_5.conda - sha256: f203822559bdefe8ef0d93967a997001bc2d0d8b73e790fe1f39eec72962b0ec - md5: b5e1f8b97695f5303c8ad0f8d72c7534 + size: 1912600 + timestamp: 1768821967254 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libjxl-0.11.1-hde0fb83_8.conda + sha256: fa5ee8b83d7d87e7bd3bfd4623c5e50a7135ccbcbbebf247b992df284c85d679 + md5: 5e478d37b1027d73872f7c8d579dc314 depends: - __osx >=10.13 - - libbrotlidec >=1.2.0,<1.3.0a0 - - libbrotlienc >=1.2.0,<1.3.0a0 - libcxx >=19 + - libbrotlienc >=1.2.0,<1.3.0a0 + - libbrotlidec >=1.2.0,<1.3.0a0 - libhwy >=1.3.0,<1.4.0a0 license: BSD-3-Clause license_family: BSD - size: 1547591 - timestamp: 1761788908653 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h3dcb153_5.conda - sha256: 9a85b1dcdc66aee22f11084c4dfd7004a568689272cf7f755ff6ab2e85212f10 - md5: 52777e8b5ecf41edbba953c677cfbbbd + size: 1761909 + timestamp: 1768822114809 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjxl-0.11.1-h913acd8_8.conda + sha256: cb3713aa91c9271e1992d2a7234447f6da84ec0d59a5cf2f92ba850f808becb9 + md5: c41ad4bd5cb936fd7662426753ff1784 depends: - - __osx >=11.0 - - libbrotlidec >=1.2.0,<1.3.0a0 - - libbrotlienc >=1.2.0,<1.3.0a0 - libcxx >=19 + - __osx >=11.0 - libhwy >=1.3.0,<1.4.0a0 + - libbrotlienc >=1.2.0,<1.3.0a0 + - libbrotlidec >=1.2.0,<1.3.0a0 license: BSD-3-Clause license_family: BSD - size: 921063 - timestamp: 1761788642413 -- conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hac9b6f3_5.conda - sha256: 54e35ad6152fb705f26491c6651d4b77757315c446a494ffc477f36fb2203c79 - md5: 8e3cc52433c99ad9632f430d3ac2a077 + size: 1030574 + timestamp: 1768822131848 +- conda: https://conda.anaconda.org/conda-forge/win-64/libjxl-0.11.1-hf3f85d1_8.conda + sha256: 53cdc0e894cf1f622fcd08a447da473cfe7f9edeffa0882b41eadb3b0a67b1d3 + md5: 60ca4943052b9634a92d841e1860b8d6 depends: - - libbrotlidec >=1.2.0,<1.3.0a0 - - libbrotlienc >=1.2.0,<1.3.0a0 - - libhwy >=1.3.0,<1.4.0a0 - - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - libhwy >=1.3.0,<1.4.0a0 + - libbrotlienc >=1.2.0,<1.3.0a0 + - libbrotlidec >=1.2.0,<1.3.0a0 license: BSD-3-Clause license_family: BSD - size: 1092699 - timestamp: 1761788697831 + size: 1317273 + timestamp: 1768821992120 - conda: https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-haa4a5bd_1022.conda sha256: aa55f5779d6bc7bf24dc8257f053d5a0708b5910b6bc6ea1396f15febf812c98 md5: 00f0f4a9d2eb174015931b1a234d61ca @@ -18231,59 +18241,59 @@ packages: license_family: Apache size: 44333366 timestamp: 1765959132513 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 - md5: 1a580f7796c7bf6393fddb8bbbde58dc +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb + md5: c7c83eecbb72d88b940c249af56c8b17 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD - size: 112894 - timestamp: 1749230047870 -- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda - sha256: 7e22fd1bdb8bf4c2be93de2d4e718db5c548aa082af47a7430eb23192de6bb36 - md5: 8468beea04b9065b9807fc8b9cdc5894 + size: 113207 + timestamp: 1768752626120 +- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda + sha256: 7ab3c98abd3b5d5ec72faa8d9f5d4b50dcee4970ed05339bc381861199dabb41 + md5: 688a0c3d57fa118b9c97bf7e471ab46c depends: - __osx >=10.13 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD - size: 104826 - timestamp: 1749230155443 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda - sha256: 0cb92a9e026e7bd4842f410a5c5c665c89b2eb97794ffddba519a626b8ce7285 - md5: d6df911d4564d77c4374b02552cb17d1 + size: 105482 + timestamp: 1768753411348 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda + sha256: 7bfc7ffb2d6a9629357a70d4eadeadb6f88fa26ebc28f606b1c1e5e5ed99dc7e + md5: 009f0d956d7bfb00de86901d16e486c7 depends: - __osx >=11.0 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD - size: 92286 - timestamp: 1749230283517 -- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda - sha256: 55764956eb9179b98de7cc0e55696f2eff8f7b83fc3ebff5e696ca358bca28cc - md5: c15148b2e18da456f5108ccb5e411446 + size: 92242 + timestamp: 1768752982486 +- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda + sha256: f25bf293f550c8ed2e0c7145eb404324611cfccff37660869d97abf526eb957c + md5: ba0bfd4c3cf73f299ffe46ff0eaeb8e3 depends: - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD - size: 104935 - timestamp: 1749230611612 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda - sha256: 329e66330a8f9cbb6a8d5995005478188eb4ba8a6b6391affa849744f4968492 - md5: f61edadbb301530bd65a32646bd81552 + size: 106169 + timestamp: 1768752763559 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.2-hb03c661_0.conda + sha256: dd246f80c9c1c27b87e586c33cf36db9340fb8078e9b805429063c2af54d34a4 + md5: de60549ba9d8921dff3afa4b179e2a4b depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_2 + - libgcc >=14 + - liblzma 5.8.2 hb03c661_0 license: 0BSD - size: 439868 - timestamp: 1749230061968 + size: 465085 + timestamp: 1768752643506 - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee md5: c7e925f37e3b40d893459e625f6a53f1 @@ -18510,9 +18520,9 @@ packages: license_family: BSD size: 6268795 timestamp: 1763117623665 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda - sha256: dcc626c7103503d1dfc0371687ad553cb948b8ed0249c2a721147bdeb8db4a73 - md5: a18a7f471c517062ee71b843ef95eb8a +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda + sha256: ebbbc089b70bcde87c4121a083c724330f02a690fb9d7c6cd18c30f1b12504fa + md5: a6f6d3a31bb29e48d37ce65de54e2df0 depends: - __osx >=11.0 - libgfortran @@ -18522,8 +18532,8 @@ packages: - openblas >=0.3.30,<0.3.31.0a0 license: BSD-3-Clause license_family: BSD - size: 4285762 - timestamp: 1761749506256 + size: 4284132 + timestamp: 1768547079205 - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda sha256: 215086c108d80349e96051ad14131b751d17af3ed2cb5a34edd62fa89bfe8ead md5: 7df50d44d4a14d6c31a2c54f2cd92157 @@ -18687,45 +18697,45 @@ packages: license_family: MIT size: 28424 timestamp: 1749901812541 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.53-h421ea60_0.conda - sha256: 8acdeb9a7e3d2630176ba8e947caf6bf4985a5148dec69b801e5eb797856688b - md5: 00d4e66b1f746cb14944cad23fffb405 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda + sha256: 5de60d34aac848a9991a09fcdea7c0e783d00024aefec279d55e87c0c44742cd + md5: d361fa2a59e53b61c2675bfa073e5b7e depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement - size: 317748 - timestamp: 1764981060755 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.53-h380d223_0.conda - sha256: 62a861e407bf0d0a2a983d0b0167ed263ae035cae7061976e9994f9963e6c68d - md5: 0cdbbd56f660997cfe5d33e516afac2f + size: 317435 + timestamp: 1768285668880 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda + sha256: c0efdf9b34132e7d4e0051bf65a97f1b9e1125c7f8a9067a35ec119af367eb38 + md5: 3d43dcdfcc3971939c80f855cf2df235 depends: - __osx >=10.13 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement - size: 298397 - timestamp: 1764981064303 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.53-hfab5511_0.conda - sha256: 6793e7284e175c515fc6453be45c7c0febdea853657d246d8136fbda791dd0ad - md5: 62b6111feeffe607c3ecc8ca5bd1514b + size: 298894 + timestamp: 1768285676981 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda + sha256: 1c271c0ec73b69f7570c5da67d0e47ddf7ff079bc1ca2dfaccd267ea39314b06 + md5: 1b80fd1eecb98f1cb7de4239f5d7dc15 depends: - __osx >=11.0 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement - size: 288210 - timestamp: 1764981075326 -- conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.53-h7351971_0.conda - sha256: e5d061e7bdb2b97227b6955d1aa700a58a5703b5150ab0467cc37de609f277b6 - md5: fb6f43f6f08ca100cb24cff125ab0d9e + size: 288910 + timestamp: 1768285694469 +- conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda + sha256: 6e269361aa18a57bd2e593e480d83d93fc5f839d33d3bfc31b4ffe10edf6751c + md5: 638ecb69e44b6a588afd5633e81f9e61 depends: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement - size: 383702 - timestamp: 1764981078732 + size: 383094 + timestamp: 1768285706434 - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda sha256: 21adefed86a36622dd500d7862cb980c5bdaab6ed3f4930a9b9afceabc7a6d58 md5: c39da2ad0e7dd600d1eb3146783b057d @@ -19131,46 +19141,46 @@ packages: license_family: BSD size: 360447 timestamp: 1756123740608 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-hf4e2dac_1.conda - sha256: d614540c55f22ad555633f75e174089018ddfc65c49f447f7bbdbc3c3013bec1 - md5: b1f35e70f047918b49fb4b181e40300e +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda + sha256: 04596fcee262a870e4b7c9807224680ff48d4d0cc0dac076a602503d3dc6d217 + md5: da5be73701eecd0e8454423fd6ffcf30 depends: - __glibc >=2.17,<3.0.a0 - - icu >=78.1,<79.0a0 + - icu >=78.2,<79.0a0 - libgcc >=14 - libzlib >=1.3.1,<2.0a0 license: blessing - size: 943451 - timestamp: 1766319676469 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-hd09e2f1_1.conda - sha256: 497b0a698ae87e024d24e242f93c56303731844d10861e1448f6d0a3d69c9ea7 - md5: 75ba9aba95c277f12e23cdb0856fd9cd + size: 942808 + timestamp: 1768147973361 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda + sha256: 710a7ea27744199023c92e66ad005de7f8db9cf83f10d5a943d786f0dac53b7c + md5: d910105ce2b14dfb2b32e92ec7653420 depends: - __osx >=10.13 - - icu >=78.1,<79.0a0 - libzlib >=1.3.1,<2.0a0 license: blessing - size: 991497 - timestamp: 1766319979749 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h1b79a29_1.conda - sha256: f2c3cbf2ca7d697098964a748fbf19d6e4adcefa23844ec49f0166f1d36af83c - md5: 8c3951797658e10b610929c3e57e9ad9 + size: 987506 + timestamp: 1768148247615 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda + sha256: 6e9b9f269732cbc4698c7984aa5b9682c168e2a8d1e0406e1ff10091ca046167 + md5: 4b0bf313c53c3e89692f020fb55d5f2c depends: - __osx >=11.0 + - icu >=78.2,<79.0a0 - libzlib >=1.3.1,<2.0a0 license: blessing - size: 905861 - timestamp: 1766319901587 -- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_1.conda - sha256: d6d86715a1afe11f626b7509935e9d2e14a4946632c0ac474526e20fc6c55f99 - md5: be65be5f758709fc01b01626152e96b0 + size: 909777 + timestamp: 1768148320535 +- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda + sha256: 756478128e3e104bd7e7c3ce6c1b0efad7e08c7320c69fdc726e039323c63fbb + md5: 903979414b47d777d548e5f0165e6cd8 depends: - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: blessing - size: 1292859 - timestamp: 1766319616777 + size: 1291616 + timestamp: 1768148278261 - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda sha256: fa39bfd69228a13e553bd24601332b7cfeb30ca11a3ca50bb028108fe90a7661 md5: eecce068c7e4eddeb169591baac20ac4 @@ -19357,45 +19367,45 @@ packages: license: HPND size: 993166 timestamp: 1762022118895 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.2-hfe17d71_0.conda - sha256: 98812901f52df746f89e1fda2a65494dd30de9e826f89b49ebad5d53e5fc424d - md5: 5641725dfad698909ec71dac80d16736 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda + sha256: ecbf4b7520296ed580498dc66a72508b8a79da5126e1d6dc650a7087171288f9 + md5: 1247168fe4a0b8912e3336bccdbf98a5 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 license: MIT license_family: MIT - size: 85985 - timestamp: 1764062044259 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.2-h7983711_0.conda - sha256: 83f2799e28643c7793730aa32e007832ffb520c5d77714d2097c227424f33ef1 - md5: e630b1baa02a5eeb0ef351c6125865c4 + size: 85969 + timestamp: 1768735071295 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda + sha256: 626db214208e8da6aa9a904518a0442e5bff7b4602cc295dd5ce1f4a98844c1d + md5: 2c49b6f6ec9a510bbb75ecbd2a572697 depends: - __osx >=10.13 license: MIT license_family: MIT - size: 84943 - timestamp: 1764062312835 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.2-hd2415e0_0.conda - sha256: 5c7d4268a1bd02f3cbba6d8a8f9bd47829a46dbc81690a39b1c05e698c180570 - md5: 1ae98806b064c48f184d7c6e0ac506b6 + size: 84535 + timestamp: 1768735249136 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda + sha256: ae1a82e62cd4e3c18e005ae7ff4358ed72b2bfbfe990d5a6a5587f81e9a100dc + md5: 2255add2f6ae77d0a96624a5cbde6d45 depends: - __osx >=11.0 license: MIT license_family: MIT - size: 88014 - timestamp: 1764062565080 -- conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.2-hb980946_0.conda - sha256: ff63a5e402fb5007174ea9796a210617da898a43d00b4e8a3192537cad0bd403 - md5: 405c392813b74f3df06276e99c0e2841 + size: 87916 + timestamp: 1768735311947 +- conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda + sha256: 5d82af0779eab283416240da792a0d2fe4f8213c447e9f04aeaab1801468a90c + md5: 5f34fcb6578ea9bdbfd53cc2cfb88200 depends: - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 89116 - timestamp: 1764062179403 + size: 89061 + timestamp: 1768735187639 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee md5: db409b7c1720428638e7c0d509d3e1b5 @@ -19950,27 +19960,27 @@ packages: license_family: Other size: 55476 timestamp: 1727963768015 -- conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.5.8-pyhd8ed1ab_1.conda - sha256: b2310052aff8f31c7fe0ba8f7c6ba1e44f5285c21cb6550a87ddda8e3a411613 - md5: 5fa196c3b07cabe3cd1dc9a369c785fe +- conda: https://conda.anaconda.org/conda-forge/noarch/linopy-0.6.1-pyhcf101f3_0.conda + sha256: 74f805b4906c2f0f42a71943e8dc3177a7b382017e4b22ee44209b54522f25f1 + md5: 8f46def45efc90f7462e476e3fdb3de0 depends: + - python >=3.11 + - numpy + - scipy - bottleneck + - toolz + - numexpr + - xarray >=2024.2.0 - dask-core >=0.18.0 + - polars + - tqdm - deprecation - google-cloud-storage - - numexpr - - numpy - - polars - - python >=3.11 - requests - - scipy - - toolz - - tqdm - - xarray >=2024.2.0 + - python license: MIT - license_family: MIT - size: 83695 - timestamp: 1765967491524 + size: 97952 + timestamp: 1768984003557 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda sha256: 2a41885f44cbc1546ff26369924b981efa37a29d20dc5445b64539ba240739e6 md5: e2d811e9f464dd67398b4ce1f9c7c872 @@ -20288,16 +20298,16 @@ packages: license_family: BSD size: 810830 timestamp: 1752271625200 -- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda - sha256: 0fbacdfb31e55964152b24d5567e9a9996e1e7902fb08eb7d91b5fd6ce60803a - md5: fee3164ac23dfca50cfcc8b85ddefb81 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda + sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e + md5: 5b5203189eb668f042ac2b0826244964 depends: - mdurl >=0.1,<1 - - python >=3.9 + - python >=3.10 license: MIT license_family: MIT - size: 64430 - timestamp: 1733250550053 + size: 64736 + timestamp: 1754951288511 - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py312h8a5da7c_0.conda sha256: f77f9f1a4da45cbc8792d16b41b6f169f649651a68afdc10b2da9da12b9aa42b md5: f775a43412f7f3d7ed218113ad233869 @@ -21214,21 +21224,21 @@ packages: license_family: MIT size: 148557 timestamp: 1747117340968 -- conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-4.0.1-pyhd8ed1ab_0.conda - sha256: f035d0ea623f63247f0f944eb080eaa2a45fb5b7fda8947f4ac94d381ef3bf33 - md5: b528795158847039003033ee0db20e9b +- conda: https://conda.anaconda.org/conda-forge/noarch/myst-parser-5.0.0-pyhd8ed1ab_0.conda + sha256: f352d594d968acd31052c5f894ae70718be56481ffa9c304fdfcbe78ddf66eb1 + md5: a65e2c3c764766f0b28a3ac5052502a6 depends: - - docutils >=0.19,<0.22 + - docutils >=0.20,<0.23 - jinja2 - - markdown-it-py >=3.0.0,<4.0.0 - - mdit-py-plugins >=0.4.1,<1 - - python >=3.10 + - markdown-it-py >=4.0.0,<4.1.0 + - mdit-py-plugins >=0.5,<0.6 + - python >=3.11 - pyyaml - - sphinx >=7,<9 + - sphinx >=8,<10 license: MIT license_family: MIT - size: 73074 - timestamp: 1739381945342 + size: 73535 + timestamp: 1768942892170 - conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.15.0-pyhcf101f3_0.conda sha256: 2e64699401c6170ce9a0916461ff4686f8d10b076f6abe1d887cbcb7061c0e85 md5: 37926bb0db8b04b8b99945076e1442d0 @@ -21327,24 +21337,6 @@ packages: license_family: BSD size: 11543 timestamp: 1733325673691 -- conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py312hf6400b3_100.conda - sha256: a2694dad5a7772ea6b38366dc9e701821f373f4a96c0f1109344a46e005043ad - md5: ed7ab4073fe4c48d0f9d3a80b6a17f74 - depends: - - __glibc >=2.17,<3.0.a0 - - certifi - - cftime - - hdf5 >=1.14.6,<1.14.7.0a0 - - libgcc >=14 - - libnetcdf >=4.9.3,<4.9.4.0a0 - - libzlib >=1.3.1,<2.0a0 - - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - size: 1109790 - timestamp: 1760540565753 - conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.3-nompi_py314hed328fd_100.conda sha256: 81efd0668389cdc7c5bb758baf71f369d81daeb9fad2ae3370b73beb8d535f22 md5: d5cebea694ca987a64a93464ed7a844e @@ -21363,23 +21355,27 @@ packages: license_family: MIT size: 1119160 timestamp: 1760540716792 -- conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py312hab8b850_100.conda - sha256: 2dc8395f680496a6a172b539bfe3301823b6c901f3eb5df3c87c17f5e67d2f92 - md5: 4849016a03b3be1eecb407197b063723 +- conda: https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.7.4-nompi_py312h25f8dc5_102.conda + sha256: eecbf3489560510d2c7d8d73ae812b1d0d1241f667e250afdd3faad244fb3a52 + md5: 99217b58c029977345b72bb36a1f6596 depends: - - __osx >=10.13 + - python - certifi - cftime - - hdf5 >=1.14.6,<1.14.7.0a0 - - libnetcdf >=4.9.3,<4.9.4.0a0 + - numpy + - hdf5 + - libnetcdf + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 - libzlib >=1.3.1,<2.0a0 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 + - libnetcdf >=4.9.3,<4.9.4.0a0 + - hdf5 >=1.14.6,<1.14.7.0a0 - python_abi 3.12.* *_cp312 license: MIT license_family: MIT - size: 1018544 - timestamp: 1760540965041 + size: 1151979 + timestamp: 1768552448951 - conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.3-nompi_py314hf60e252_100.conda sha256: e7b462ccdb9085d5d864eee2f4c4312dcb968d18de7a358da7421bd060e60d7d md5: cb8267fd6b2719b8ac44fd810acbcc1c @@ -21397,24 +21393,26 @@ packages: license_family: MIT size: 1019213 timestamp: 1760540858549 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py312h947358d_100.conda - sha256: 0af13b708a7f540fe2eaf5155ca254530112d64eb8dd93c6b74846b30c37ee14 - md5: 4d0a4809609db6402315d591d0fdc90a +- conda: https://conda.anaconda.org/conda-forge/osx-64/netcdf4-1.7.4-nompi_py312h6ec3a75_102.conda + sha256: daae3d13c2695cf5294c297f336d61d128000ba2b5b269097ad16203a9683425 + md5: 155692cb0f353637a9be03e3d185bfa5 depends: - - __osx >=11.0 + - python - certifi - cftime - - hdf5 >=1.14.6,<1.14.7.0a0 - - libnetcdf >=4.9.3,<4.9.4.0a0 - - libzlib >=1.3.1,<2.0a0 + - numpy + - hdf5 + - libnetcdf + - __osx >=10.13 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 + - libzlib >=1.3.1,<2.0a0 + - libnetcdf >=4.9.3,<4.9.4.0a0 + - hdf5 >=1.14.6,<1.14.7.0a0 license: MIT license_family: MIT - size: 1004901 - timestamp: 1760541856800 + size: 1073738 + timestamp: 1768552459359 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.3-nompi_py314ha229517_100.conda sha256: feaf70a8a04a77898b6c00f494d2ea1a1a1a5f18b09cd337890ed0c023eb3aa9 md5: c2e349b932ebd08123faef6e9ce2f2d7 @@ -21433,25 +21431,27 @@ packages: license_family: MIT size: 1007976 timestamp: 1760542005639 -- conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py312h79d12a2_100.conda - sha256: 880d34f210aeddc023ed17014b0b4ab032a74e1018bf84965185b9e5a9e84368 - md5: b599bb301b740b9bb1089190c1b1a912 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/netcdf4-1.7.4-nompi_py312h5d59a02_102.conda + sha256: be6a5b9dc7c3dd790a0bcc33fbbc9888e5fa8e64c8429d910a118f5880d0b71a + md5: d5d848de57b716a036e71ab3fcca7b32 depends: + - python - certifi - cftime - - hdf5 >=1.14.6,<1.14.7.0a0 + - numpy + - hdf5 + - libnetcdf + - __osx >=11.0 + - python 3.12.* *_cpython + - python_abi 3.12.* *_cp312 - libnetcdf >=4.9.3,<4.9.4.0a0 - libzlib >=1.3.1,<2.0a0 + - hdf5 >=1.14.6,<1.14.7.0a0 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 license: MIT license_family: MIT - size: 977728 - timestamp: 1760541025877 + size: 1053448 + timestamp: 1768552836346 - conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.3-nompi_py314h640c526_100.conda sha256: 557ccdaeb3b1d6e7494640cd9385af9c68be49872509b10eee7ee8d10ccc1343 md5: 023232d6ee54492d56834004423912a6 @@ -21471,6 +21471,28 @@ packages: license_family: MIT size: 978682 timestamp: 1760541670772 +- conda: https://conda.anaconda.org/conda-forge/win-64/netcdf4-1.7.4-nompi_py312h8fa77f8_102.conda + sha256: be4aaa3c8e18cbf68ac8214716444aebe86e37370dd1c72da881eed86b6b4755 + md5: ee21ff61b382ba17e980d83bf2e3d20e + depends: + - python + - certifi + - cftime + - numpy + - hdf5 + - libnetcdf + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - hdf5 >=1.14.6,<1.14.7.0a0 + - libzlib >=1.3.1,<2.0a0 + - numpy >=1.23,<3 + - python_abi 3.12.* *_cp312 + - libnetcdf >=4.9.3,<4.9.4.0a0 + license: MIT + license_family: MIT + size: 1032408 + timestamp: 1768552481606 - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.6.1-pyhcf101f3_0.conda sha256: f6a82172afc50e54741f6f84527ef10424326611503c64e359e25a19a8e4c1c6 md5: a2c1eeadae7a309daed9d62c96012a2b @@ -21495,24 +21517,24 @@ packages: license_family: MIT size: 136216 timestamp: 1758194284857 -- conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h53ec75d_1.conda - sha256: 186edb5fe84bddf12b5593377a527542f6ba42486ca5f49cd9dfeda378fb0fbe - md5: 5e9bee5fa11d91e1621e477c3cb9b9ba +- conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h06076ce_1.conda + sha256: 8e1b8ac88e07da2910c72466a94d1fc77aa13c722f8ddbc7ae3beb7c19b41fc7 + md5: 97d7a1cda5546cb0bbdefa3777cb9897 constrains: - nlohmann_json-abi ==3.12.0 license: MIT license_family: MIT - size: 136667 - timestamp: 1758194361656 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h248ca61_1.conda - sha256: f6aa432b073778c3970d3115d291267f32ae85adfa99d80ff1abdf0b806aa249 - md5: 3ba9d0c21af2150cb92b2ab8bdad3090 + size: 137081 + timestamp: 1768670842725 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_1.conda + sha256: 1945fd5b64b74ef3d57926156fb0bfe88ee637c49f3273067f7231b224f1d26d + md5: 755cfa6c08ed7b7acbee20ccbf15a47c constrains: - nlohmann_json-abi ==3.12.0 license: MIT license_family: MIT - size: 136912 - timestamp: 1758194464430 + size: 137595 + timestamp: 1768670878127 - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda sha256: 4fa40e3e13fc6ea0a93f67dfc76c96190afd7ea4ffc1bac2612d954b42cdc3ee md5: eb52d14a901e23c39e9e7b4a1a5c015f @@ -21532,13 +21554,13 @@ packages: license_family: BSD size: 3843 timestamp: 1582593857545 -- conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.1-pyhcf101f3_0.conda - sha256: 672ec7db73c8bfbacf9227c0c2287effdeded77b4d06373f2e498a310ce76a8c - md5: c984a8b773a34e38f5cf399b6d582e5c +- conda: https://conda.anaconda.org/conda-forge/noarch/notebook-7.5.2-pyhcf101f3_0.conda + sha256: 05bda90b7a980593c5e955dec5c556ff4dabf56e6ff45a3fb6c670f5f20b11e6 + md5: 47b58fa741a608dac785b71b8083bdb7 depends: - importlib_resources >=5.0 - jupyter_server >=2.4.0,<3 - - jupyterlab >=4.5.1,<4.6 + - jupyterlab >=4.5.2,<4.6 - jupyterlab_server >=2.28.0,<3 - notebook-shim >=0.2,<0.3 - python >=3.10 @@ -21546,8 +21568,8 @@ packages: - python license: BSD-3-Clause license_family: BSD - size: 10040377 - timestamp: 1765875192987 + size: 10042205 + timestamp: 1768230688040 - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda sha256: 7b920e46b9f7a2d2aa6434222e5c8d739021dbc5cc75f32d124a8191d86f9056 md5: e7f89ea5f7ea9401642758ff50a2d9c1 @@ -21768,24 +21790,24 @@ packages: license_family: BSD size: 7484186 timestamp: 1707225809722 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.0-py314h2b28147_0.conda - sha256: 8a27bba4c9015dd116761480fa7ff193747dfc13fd6748ac69fdb162fcc223dc - md5: 1052857fc9d80253d2e47025cb2fab0a +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.1-py314h2b28147_0.conda + sha256: 9af4bb8fef69f8b3c254b32da93bc63b7376b60b72c6ed9104fd3ad23a70891c + md5: 9536e29f857e5d0565e92fd1b54de16a depends: - python - - libstdcxx >=14 - - libgcc >=14 - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 - libcblas >=3.9.0,<4.0a0 - - libblas >=3.9.0,<4.0a0 - - python_abi 3.14.* *_cp314 - liblapack >=3.9.0,<4.0a0 + - python_abi 3.14.* *_cp314 + - libblas >=3.9.0,<4.0a0 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD - size: 8917806 - timestamp: 1766373894725 + size: 8926121 + timestamp: 1768085696128 - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda sha256: 6152b73fba3e227afa4952df8753128fc9669bbaf142ee8f9972bf9df3bf8856 md5: 96c61a21c4276613748dba069554846b @@ -21802,23 +21824,23 @@ packages: license_family: BSD size: 6990646 timestamp: 1707226178262 -- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.0-py314hfc4c462_0.conda - sha256: 450e88d85da9be8599dfc9f360c1bee8c6a45339b8ce655b5f606bf17d0ae9c3 - md5: 5e45547a4a84dc6f6da82aa4bee9fe7c +- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.4.1-py314hfc4c462_0.conda + sha256: f5c93a541f352bceebff51cb37be2ca5037fb4e9f5fce7bd813493a76da24b02 + md5: 73bc04c55ef4911075790db9fcce921b depends: - python - - __osx >=10.13 - libcxx >=19 - - libblas >=3.9.0,<4.0a0 + - __osx >=10.13 - libcblas >=3.9.0,<4.0a0 + - libblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 - python_abi 3.14.* *_cp314 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD - size: 8121036 - timestamp: 1766373792404 + size: 8147915 + timestamp: 1768085556335 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda sha256: c8841d6d6f61fd70ca80682efbab6bdb8606dc77c68d8acabfbd7c222054f518 md5: d83fc83d589e2625a3451c9a7e21047c @@ -21836,24 +21858,24 @@ packages: license_family: BSD size: 6073136 timestamp: 1707226249608 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.0-py314hae46ccb_0.conda - sha256: a02ddfc894a20beb7ffd467c602541964e92739549d70979ecdf6bcffa6b1689 - md5: ecd8df66032f42a684cb273b1adba739 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.4.1-py314hae46ccb_0.conda + sha256: e4fa9c378869e0c7e0a33ab1546ff9974050b55ad1e48b795dce4fb812513baf + md5: a67f36be1a584c382670c98b4ffea529 depends: - python - __osx >=11.0 - - python 3.14.* *_cp314 - libcxx >=19 - - python_abi 3.14.* *_cp314 - - libblas >=3.9.0,<4.0a0 + - python 3.14.* *_cp314 - liblapack >=3.9.0,<4.0a0 + - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 + - python_abi 3.14.* *_cp314 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD - size: 6984570 - timestamp: 1766373780622 + size: 6991931 + timestamp: 1768085575848 - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda sha256: 73570817a5109d396b4ebbe5124a89525959269fd33fa33fd413700289fbe0ef md5: f9ac74c3b07c396014434aca1e58d362 @@ -21872,24 +21894,24 @@ packages: license_family: BSD size: 6495445 timestamp: 1707226412944 -- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.4.0-py314h06c3c77_0.conda - sha256: 07394e53e529c52fddc80a46f16cdad12eb9df4b3b7af1a47b5b2e7d6a7b7905 - md5: 59127d48b291f13c06a53dd335876b62 +- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.4.1-py314h06c3c77_0.conda + sha256: 4bcbbe320525c49f2ddf61123e4281ff76d2ba9a737dea90e14370534c6ec1f9 + md5: 794ac87f08dcca30be8c6ebfa8a5b2d1 depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - python_abi 3.14.* *_cp314 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libblas >=3.9.0,<4.0a0 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD - size: 7301600 - timestamp: 1766373809921 + size: 7306379 + timestamp: 1768085588568 - conda: https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.3.1-pyhd8ed1ab_0.conda sha256: dfa8222df90736fa13f8896f5a573a50273af8347542d412c3bd1230058e56a5 md5: d4f3f31ee39db3efecb96c0728d4bdbf @@ -23085,9 +23107,9 @@ packages: license_family: MIT size: 23922 timestamp: 1764950726246 -- conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.1-pyhd8ed1ab_0.conda - sha256: 262a532a0107210a7fa6ba63fd3170a804417d1d62ae5b49f9ecd6afc7e63465 - md5: 0a8b38871cab04059c1cc04853b415a2 +- conda: https://conda.anaconda.org/conda-forge/noarch/plotly-6.5.2-pyhd8ed1ab_0.conda + sha256: 48d2caf66b8209bfb3fa160f5bc7cbd625deaa4826e8aa1bad706b2dd22bbb86 + md5: 7702bcd70891dd0154d765a69e1afa94 depends: - narwhals >=1.15.1 - packaging @@ -23095,8 +23117,9 @@ packages: constrains: - ipywidgets >=7.6 license: MIT - size: 4455861 - timestamp: 1767830571054 + license_family: MIT + size: 4924275 + timestamp: 1768442503807 - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda sha256: e14aafa63efa0528ca99ba568eaf506eb55a0371d12e6250aaaa61718d2eb62e md5: d7585b6550ad04c8c5e21097ada2888e @@ -23116,11 +23139,11 @@ packages: license_family: BSD size: 49052 timestamp: 1733239818090 -- conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.36.1-pyh6a1acc5_0.conda - sha256: 8a6bcee3c0a0dc00a880082dbcb18f2ca619f9a7ac1a10e91126a06b2e413efb - md5: 160b41862a43936cbe509d1879d67f54 +- conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.37.1-pyh6a1acc5_0.conda + sha256: 06f66ea42ec3d2dd18a1529208e45e8d580b5d49bff7779166fb2ba24380c8d3 + md5: 1894d4373da653406c91e20ef89f05c8 depends: - - polars-runtime-32 ==1.36.1 + - polars-runtime-32 ==1.37.1 - python >=3.10 - python constrains: @@ -23134,17 +23157,17 @@ packages: - pyiceberg >=0.7.1 - altair >=5.4.0 - great_tables >=0.8.0 - - polars-runtime-32 ==1.36.1 - - polars-runtime-64 ==1.36.1 - - polars-runtime-compat ==1.36.1 + - polars-runtime-32 ==1.37.1 + - polars-runtime-64 ==1.37.1 + - polars-runtime-compat ==1.37.1 license: MIT license_family: MIT - size: 522848 - timestamp: 1765344520067 -- conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.36.1-py310hffdcd12_0.conda + size: 524697 + timestamp: 1768304090323 +- conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.37.1-py310hffdcd12_0.conda noarch: python - sha256: 53f3cbe0ce39f7e21e64b9a1f61abf6353c679f575a47fe72715d0cf02319e54 - md5: af35229f34c80dcfab5a40414440df23 + sha256: 275a845cf713a33bc6634f6773541be16868b333222d8e200c7ecd1dbd07c218 + md5: 732a536c6ce768f096f5340121e10cc5 depends: - python - __glibc >=2.17,<3.0.a0 @@ -23156,12 +23179,12 @@ packages: - __glibc >=2.17 license: MIT license_family: MIT - size: 35250145 - timestamp: 1765344520066 -- conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.36.1-py310hfb6bc98_0.conda + size: 35782067 + timestamp: 1768304090321 +- conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.37.1-py310had17480_0.conda noarch: python - sha256: 3ab320a6175732165f9e14c447ab766e221322bb0c74c78b4eab8b60246c7032 - md5: a466731fdecd70299823349a913731c2 + sha256: d1ef07dfe8647173d31165de5943be447d9da4b7a8956ebbd99b6dea2a3c1951 + md5: 75e808381cab0c33008317fd25ba8157 depends: - python - libcxx >=19 @@ -23172,12 +23195,12 @@ packages: - __osx >=10.13 license: MIT license_family: MIT - size: 34227518 - timestamp: 1765344423449 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.36.1-py310h34bb384_0.conda + size: 35492736 + timestamp: 1768303924189 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.37.1-py310haaaf75b_0.conda noarch: python - sha256: e9ab1c2833fc368bcbc27c214cbc5123f16cb243dfcb07aaf0bc060638a17ea0 - md5: 4cc0693aae853723df55150875a2d602 + sha256: 1c79affdb6f0fcb466d1116ebeb56edb57510549f87351550a6f96f2211d5d2b + md5: bb3c5484e1c5376846e1b406fd63a3c4 depends: - python - __osx >=11.0 @@ -23188,12 +23211,12 @@ packages: - __osx >=11.0 license: MIT license_family: MIT - size: 31508688 - timestamp: 1765344479373 -- conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.36.1-py310hca7251b_0.conda + size: 32229626 + timestamp: 1768303983463 +- conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.37.1-py310hca7251b_0.conda noarch: python - sha256: 8def44d2158c55bb3bd604f7744d18aef21242e487aececabb2bd14aa3b57716 - md5: 1938c5ab40c1343a779973871b2ee04d + sha256: 34db578b4bae3ec365ff846c1f01b2720ab01d202e4fc6826114070673e6aeb0 + md5: 910a4338c2ff9b850374c16fe081b1c3 depends: - python - vc >=14.3,<15 @@ -23203,11 +23226,11 @@ packages: - cpython >=3.10 license: MIT license_family: MIT - size: 38501800 - timestamp: 1765344443861 -- conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.7.1-pyhd8ed1ab_0.conda - sha256: a20c139c372c911b9252f99297a07f2a4cdf336884754a006a09498593556ce0 - md5: 153f1b172beb7f5df84a78b2bde02f24 + size: 39228824 + timestamp: 1768303964523 +- conda: https://conda.anaconda.org/conda-forge/noarch/powerplantmatching-0.8.0-pyhd8ed1ab_0.conda + sha256: 2183e53108e730b097adff7bf2fbbe6fd5d3e18bb65a89122a3888169d601240 + md5: 3c806a133fb9e59dca249c5a00c2ab3e depends: - country_converter - deprecation @@ -23219,7 +23242,7 @@ packages: - openpyxl - pandas >=0.24.0 - pycountry - - python >=3.9 + - python >=3.10 - pyyaml >=5.1.0 - requests - scipy @@ -23227,10 +23250,10 @@ packages: - tqdm - unidecode - xlrd - license: GPL-3.0 - license_family: GPL - size: 676989 - timestamp: 1738446720491 + license: MIT + license_family: MIT + size: 689881 + timestamp: 1768392108996 - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda sha256: 5b81b7516d4baf43d0c185896b245fa7384b25dc5615e7baa504b7fa4e07b706 md5: 7f3ac694319c7eaf81a0325d6405e974 @@ -23361,15 +23384,15 @@ packages: license_family: MIT size: 173220 timestamp: 1730769371051 -- conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda - sha256: 13dc67de68db151ff909f2c1d2486fa7e2d51355b25cee08d26ede1b62d48d40 - md5: a1e91db2d17fd258c64921cb38e6745a +- conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda + sha256: 75b2589159d04b3fb92db16d9970b396b9124652c784ab05b66f584edc97f283 + md5: 7526d20621b53440b0aae45d4797847e depends: - python >=3.10 license: Apache-2.0 license_family: Apache - size: 54592 - timestamp: 1758278323953 + size: 56634 + timestamp: 1768476602855 - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda sha256: 4817651a276016f3838957bfdf963386438c70761e9faec7749d411635979bae md5: edb16f14d920fb3faf17f5ce582942d6 @@ -23808,129 +23831,122 @@ packages: license_family: MIT size: 25766 timestamp: 1733236452235 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_0.conda - sha256: 282a72c54d4df010bf0e2e6b6beb84cdaea55afa497ad93dbe96e2798810747c - md5: f135d6fe1a8065e6a59cab7512237524 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py312h7900ff3_1.conda + sha256: 8a760d39c95b5f5758b753904f21f598ac2cd676cb7f0e35f55a12182d94012e + md5: c6a872af2954958aa478f3fd835a048b depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: APACHE - size: 26218 - timestamp: 1761648647497 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py314hdafbbf9_0.conda - sha256: c10ea8100848236cda04307a00cdeba5a86358fc537132ffcc5cac8cc27f5547 - md5: ecb1085032bfa2bbd310807ca6c0c7f6 + size: 32766 + timestamp: 1768962909277 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-22.0.0-py314hdafbbf9_1.conda + sha256: d01c09933d43cedd1838787308998bee717316c87380c0e50d743723727c6b7e + md5: 3285d1b2111b0d7173af14c2af89909b depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: Apache-2.0 - license_family: APACHE - size: 26193 - timestamp: 1761648748916 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_0.conda - sha256: 2aa3268e84e3fa92c70d172cc5e0dcdeacf571a58eb40544910a1eab5eaaef67 - md5: 4f99ad72cb5935960c38b11f6c923446 + size: 32752 + timestamp: 1768962964003 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py312hb401068_1.conda + sha256: cbea3d953826836f30cbceff5feab9e26822a4b216851b2a94ac21b32c471fbf + md5: e7fd976112d137d386d0a06041a5c88b depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: APACHE - size: 26228 - timestamp: 1761649158373 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py314hee6578b_0.conda - sha256: dd884207ed4c43d566a0fb6d46135669932dafce3f646f287b2c1347b1cb7391 - md5: 13fdbf20848018c21129b27b696c4e90 + size: 32721 + timestamp: 1768962806310 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-22.0.0-py314hee6578b_1.conda + sha256: e005022c87eaa6f83e3adc3882142ff20894a8749cbd2ed50020c813cb364a7e + md5: 6d6a21898e1c3a143fd0ed8e4757c210 depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: Apache-2.0 - license_family: APACHE - size: 26271 - timestamp: 1761648628782 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_0.conda - sha256: 633f7d84e5233238e4a6e400915ff63d5c5473919ab25888d02c548e10aa1546 - md5: e9f07253879e83716fc0aca0ca21648a + size: 32752 + timestamp: 1768963091834 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py312h1f38498_1.conda + sha256: e2cd63b57c3764c53d5eaa4196eb5ab23b84f18f6269be99c1ae1b43864ded01 + md5: e6780a017f59154b1d604db0e4e84e7d depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: APACHE - size: 26313 - timestamp: 1761649008376 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py314he55896b_0.conda - sha256: 1c15052ed5cdd0478964ea0b0f73bbc5db1c49f9b6923a378ba4b8dd2d9b802d - md5: 27b21816e9427b5bb9f5686c122b8730 + size: 32772 + timestamp: 1768963041807 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-22.0.0-py314he55896b_1.conda + sha256: 64ca6541814923b107b4194e57c32bc6b774f5edd5766d769ee37794f1a4f3b1 + md5: a5c38c5aee7577fd2ab9be01ec98074d depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: Apache-2.0 - license_family: APACHE - size: 26356 - timestamp: 1761649037869 -- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_0.conda - sha256: 454c90e1c341335aa08fae2152d4f2b410406dcda76db21cd2f1c2720dac67b1 - md5: 1e2ead2c5717977fb85b9c6809b0896e + size: 32879 + timestamp: 1768962937506 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py312h2e8e312_1.conda + sha256: 7deb0772dfd0f9befed724103241c909cda9f1dbd87b1d2f6d11915c0a5db038 + md5: 7496da979d1d60ee36588276299ed486 depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: APACHE - size: 26662 - timestamp: 1761648571813 -- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py314h86ab7b2_0.conda - sha256: 78c7195c8f4c853e8ff1948f5908af70d523a8d9e708879b47ee4f9a4808f0d7 - md5: bf483b00a926179e1f4a8122c64f7a10 + size: 33167 + timestamp: 1768963332382 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-22.0.0-py314h86ab7b2_1.conda + sha256: 21047375aadef6941d11b41ee926dc597f9993197a999ac75c652abfe9398221 + md5: ea3d470569c97ee3f9fc9c25fc08e683 depends: - libarrow-acero 22.0.0.* - libarrow-dataset 22.0.0.* - libarrow-substrait 22.0.0.* - libparquet 22.0.0.* - - pyarrow-core 22.0.0 *_0_* + - pyarrow-core 22.0.0 *_1_* - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: Apache-2.0 - license_family: APACHE - size: 26652 - timestamp: 1761648406768 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_0_cpu.conda - sha256: 094776e624af92c774919b9cc57e0092aacd12a44ed02e5c664cdbed7b186d17 - md5: 7fe5934d9aa025b4e5c8708718c4dafb + size: 33171 + timestamp: 1768963290876 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py312hc195796_1_cpu.conda + build_number: 1 + sha256: e6a249d01a782894d8d895c934846ffea563f8d55792c6cacc08605585447670 + md5: 7b472774c327e18f74e9bbe73467673d depends: - __glibc >=2.17,<3.0.a0 - libarrow 22.0.0.* *cpu @@ -23941,15 +23957,15 @@ packages: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: - - apache-arrow-proc * cpu - numpy >=1.21,<3 + - apache-arrow-proc * cpu license: Apache-2.0 - license_family: APACHE - size: 5331970 - timestamp: 1761648505164 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py314h52d6ec5_0_cpu.conda - sha256: 89d1fdb21ca6488c2e7a262d84eaf3ab4fbdd555a3ce91915869d9bfe640b92e - md5: 3c690d2816c2fe6e8d02a0f60549a393 + size: 5287305 + timestamp: 1768962788099 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-22.0.0-py314h52d6ec5_1_cpu.conda + build_number: 1 + sha256: e9b42be902732c5ea529925428bfd5d9bed9bbaf804627c37f714cd3282b5a61 + md5: 4d279393f4f9e8fe93e63a57038bc3ff depends: - __glibc >=2.17,<3.0.a0 - libarrow 22.0.0.* *cpu @@ -23960,15 +23976,15 @@ packages: - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 constrains: - - apache-arrow-proc * cpu - numpy >=1.21,<3 + - apache-arrow-proc * cpu license: Apache-2.0 - license_family: APACHE - size: 4814230 - timestamp: 1761648682122 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312hefc66a4_0_cpu.conda - sha256: 868a3a4a44f8eb77d701c635d4618782a1774a8a6f2d7b4162162ad7b72035f1 - md5: 8f850be5abc40c5d57562024b140db43 + size: 5816192 + timestamp: 1768962737138 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py312h46fdf74_1_cpu.conda + build_number: 1 + sha256: d30667bd6d0eeefc212344a313f264fb613f514fd363372ee2f959ec54571d5a + md5: b4d567854dafe5320194c1abc36b1829 depends: - __osx >=10.13 - libarrow 22.0.0.* *cpu @@ -23978,15 +23994,15 @@ packages: - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 constrains: - - numpy >=1.21,<3 - apache-arrow-proc * cpu + - numpy >=1.21,<3 license: Apache-2.0 - license_family: APACHE - size: 4029697 - timestamp: 1761648927880 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py314h35e0213_0_cpu.conda - sha256: c502d7118b4b5fd59e38f5e8b5ac702ab2923f4c3f0fbbd71a8310fa47aef00b - md5: d46aeaef96eb344a170c178dc7f40a2d + size: 4358955 + timestamp: 1768962766753 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-22.0.0-py314h7e66853_1_cpu.conda + build_number: 1 + sha256: cad12db2359a3dfd3c6df7ba080194f8d0a6fca7dd73df7f74cd6961c6234f0d + md5: 3db5787dde762516043d47c33a496f45 depends: - __osx >=10.13 - libarrow 22.0.0.* *cpu @@ -23996,15 +24012,15 @@ packages: - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 constrains: - - apache-arrow-proc * cpu - numpy >=1.21,<3 + - apache-arrow-proc * cpu license: Apache-2.0 - license_family: APACHE - size: 4792989 - timestamp: 1761648579819 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hea229ce_0_cpu.conda - sha256: f7fc857072310fe86cc77e7c350b8431a0667dd910dcd87471f06211104ff96c - md5: 9b8e724a37788b846f67a93d1d2c9fa7 + size: 4014901 + timestamp: 1768963008901 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py312hae6ed00_1_cpu.conda + build_number: 1 + sha256: ce693df4e716d21f64d89b24dc666f610136f4e9aa5594aa9d433ad60e9077f8 + md5: 143363499f83257747c281a7c1d77ecb depends: - __osx >=11.0 - libarrow 22.0.0.* *cpu @@ -24018,12 +24034,12 @@ packages: - numpy >=1.21,<3 - apache-arrow-proc * cpu license: Apache-2.0 - license_family: APACHE - size: 3884425 - timestamp: 1761648934782 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py314hf20a12a_0_cpu.conda - sha256: d06476026a96d93bc44b0269e8b9abcc2b18adb56d82cd69d2f33e8cc0b47299 - md5: e02b151500dcd291ab7cd8f2bd46fef3 + size: 3860592 + timestamp: 1768963001960 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-22.0.0-py314h1c152f6_1_cpu.conda + build_number: 1 + sha256: 0d15949ae6fdca2623f351108d83347e108f1bfb6ddd2f621ca84f110a3377a9 + md5: 86e972258080d294098c937998fbd3b4 depends: - __osx >=11.0 - libarrow 22.0.0.* *cpu @@ -24034,15 +24050,15 @@ packages: - python >=3.14,<3.15.0a0 *_cp314 - python_abi 3.14.* *_cp314 constrains: - - numpy >=1.21,<3 - apache-arrow-proc * cpu + - numpy >=1.21,<3 license: Apache-2.0 - license_family: APACHE - size: 3912295 - timestamp: 1761648977007 -- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_0_cpu.conda - sha256: de96d67311385a7f3a23cdc4b49408e65c70e42af9a08bbd8ee6085ae8a26104 - md5: 18679999d9e40f043228de1e00847136 + size: 3848133 + timestamp: 1768962897414 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py312h85419b5_1_cpu.conda + build_number: 1 + sha256: add50f19ab698e45ce423d4da89f1a957ed56621c9f198ffe5b2db2674d94027 + md5: c7e36470ef8f708a229a7bc13d42b637 depends: - libarrow 22.0.0.* *cpu - libarrow-compute 22.0.0.* *cpu @@ -24056,12 +24072,12 @@ packages: - numpy >=1.21,<3 - apache-arrow-proc * cpu license: Apache-2.0 - license_family: APACHE - size: 3504560 - timestamp: 1761648524205 -- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py314hb5be3fa_0_cpu.conda - sha256: 316711f94c4bc8420479fabef4ab6d9c3a46d00bce2b0e402bd205c7954bff82 - md5: 5158c4f9ae4dc6924c4096f5745626f2 + size: 3540036 + timestamp: 1768962906922 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-22.0.0-py314hb5be3fa_1_cpu.conda + build_number: 1 + sha256: 9d1f75d5354fb6b7c6cc359140c31ff98056e0c20d19ac93cbb6a02c2fc898b0 + md5: 18145c6343ba9ef6e6536c8de964d859 depends: - libarrow 22.0.0.* *cpu - libarrow-compute 22.0.0.* *cpu @@ -24075,9 +24091,8 @@ packages: - numpy >=1.21,<3 - apache-arrow-proc * cpu license: Apache-2.0 - license_family: APACHE - size: 3526470 - timestamp: 1761648362882 + size: 3544975 + timestamp: 1768962854489 - conda: https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.6.1-pyhd8ed1ab_2.conda sha256: d06051df66e9ab753683d7423fcef873d78bb0c33bd112c3d5be66d529eddf06 md5: 09bb17ed307ad6ab2fd78d32372fdd4e @@ -24611,16 +24626,15 @@ packages: license_family: Apache size: 126393 timestamp: 1760304658366 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.1-pyhcf101f3_0.conda - sha256: 0c70bc577f5efa87501bdc841b88f594f4d3f3a992dfb851e2130fa5c817835b - md5: d837065e4e0de4962c3462079c23f969 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de + md5: 3687cc0b82a8b4c17e1f0eb7e47163d5 depends: - python >=3.10 - python license: MIT - license_family: MIT - size: 110235 - timestamp: 1766475444791 + size: 110893 + timestamp: 1769003998136 - conda: https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.7.2-py312h9b6a7d9_2.conda sha256: 0364da87626b20edcf0bb074c274cc484b8088adddc05f90ffb73e52789fc3ce md5: 573b9a879a3a42990f9c51d7376dce6b @@ -24760,6 +24774,33 @@ packages: license_family: MIT size: 222448 timestamp: 1767789300342 +- conda: https://conda.anaconda.org/conda-forge/noarch/pypsa-1.0.7-pyhd8ed1ab_0.conda + sha256: 6174a3b8fc5ff409e5b0f88eef9ba2b089f2fd9a8ba2d425b19c8ff546042e43 + md5: e451a3c0ab3ad6fbe7bf83c59f0e2f9b + depends: + - deprecation + - geopandas >=0.9 + - highspy + - levenshtein >=0.27.1 + - linopy >=0.5.5 + - matplotlib-base + - netcdf4 !=1.7.4 + - networkx >=2 + - numpy + - pandas >=0.24 + - plotly + - pydeck >=0.6 + - pytables + - python >=3.11 + - scipy + - seaborn + - shapely + - validators + - xarray + license: MIT + license_family: MIT + size: 222295 + timestamp: 1768392650051 - conda: https://conda.anaconda.org/conda-forge/win-64/pyreadline3-3.5.4-py312h2e8e312_2.conda sha256: 34dc1bd52ea27ddb9ee3dbdf5edbfe0ec8fce613b7328b983c11893ef7d7cd7b md5: 13c17a25c72912ca7f86ea48f964ddac @@ -24945,16 +24986,16 @@ packages: license_family: BSD size: 21085 timestamp: 1733217331982 -- conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.2-pyhd8ed1ab_0.conda - sha256: 8180c08f41bd7bf0cff38db818b63cdbb827e7740ee5d98b031d8f48145ec867 - md5: 151d9c53c7cbff1b801d424a59207f7f +- conda: https://conda.anaconda.org/conda-forge/noarch/pystac-1.14.3-pyhd8ed1ab_0.conda + sha256: 2d39f4eb1c926792229131897fbddde112d7595727c1db824d48574ab10a5a01 + md5: 77ae41598d63b453bb3c9052f4a14c4b depends: - python >=3.10 - python-dateutil >=2.7.0 license: Apache-2.0 license_family: APACHE - size: 138653 - timestamp: 1766007598480 + size: 138711 + timestamp: 1768070185564 - conda: https://conda.anaconda.org/conda-forge/linux-64/pytables-3.10.2-py312hefc0c3f_10.conda sha256: 0c544c185a7e8d0d0df99f3c64626d160ce94b8342e44852ea1297a382799043 md5: e5bb2b09278f18b76ace60e809d8057c @@ -25367,142 +25408,134 @@ packages: license_family: APACHE size: 233310 timestamp: 1751104122689 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py312h4f23490_1.conda - sha256: ac359870fd4bca456ac327c687fc598360c6766f3ff28a9924ed1f520a8a6ebf - md5: eea306a68c483e1305381130b35a09ff +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py312hfb8c2c5_1.conda + sha256: 978c82ebe79bc4e171fbf8ada6394b9f3f98e63d68ca703b4db60b1867c28267 + md5: 66f8d5e7005b9d38b4c1cd00068881ae depends: - - __glibc >=2.17,<3.0.a0 + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs + - eccodes >=2.45.0 - libgcc >=14 - - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 + - __glibc >=2.17,<3.0.a0 - python_abi 3.12.* *_cp312 + - numpy >=1.23,<3 license: Apache-2.0 - license_family: Apache - size: 201997 - timestamp: 1760521527073 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.44.0-py314hc02f841_1.conda - sha256: 464ce9da70a8f952a3dccdfb5df509834fadea5b171a00cea21cdd356a4396b4 - md5: 7951b7647ef30a753f67fddef2956626 + size: 230630 + timestamp: 1768999352171 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-2.45.0-np2py314h56abb78_1.conda + sha256: 2a56a47e7e47c2ede0d1022fef25e21cf10093e1a4d4d708b9348d0d7fdeb318 + md5: 7b925b9463f0bcdd612568f53f1ef990 depends: - - __glibc >=2.17,<3.0.a0 + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs + - eccodes >=2.45.0 + - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - numpy >=1.23,<3 - - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 + - numpy >=1.23,<3 license: Apache-2.0 - license_family: Apache - size: 209104 - timestamp: 1760521532967 -- conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py312h391ab28_1.conda - sha256: e1e9f31182e791de6d07cac2ecca86ae75377d27d490a7a8c5e48e46488e37c2 - md5: e77e671dc2e1e14204e333e8aacca0e8 + size: 240222 + timestamp: 1768999350961 +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py312hdc59d4f_1.conda + sha256: 3604c5780c361c980053ab3257c633bc5566ddc4fe18a37e58da1c2f71864b31 + md5: bd1f02e8177a93d84ec4379ca487bde8 depends: - - __osx >=10.13 + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs + - eccodes >=2.45.0 + - __osx >=10.13 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: Apache - size: 204954 - timestamp: 1760521708957 -- conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.44.0-py314hd1ec8a2_1.conda - sha256: b70ee1828d47c5b7481a6169fcac1ea2211da1b75c776eb8d02d745077686593 - md5: 6d50ebdc8f9cb2305cf0c480bdeb0057 + size: 235751 + timestamp: 1768999404079 +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-eccodes-2.45.0-np2py314h95e8cca_1.conda + sha256: b518c7f0f9b445e8db5a4c5ca392bb08e35be3be2e7eb2340c268036c7f6b8a7 + md5: e2cb94dd9c9ba0d267ccf97811ca92fe depends: - - __osx >=10.13 + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs + - eccodes >=2.45.0 + - __osx >=10.13 - numpy >=1.23,<3 - - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: Apache-2.0 - license_family: Apache - size: 213872 - timestamp: 1760521734752 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py312ha11c99a_1.conda - sha256: ed58e6e3f2a788ff28a529d9764aeb65abd5a00cf6fad5187a749f923d547148 - md5: c9d9d5e292a04188f6dc7eda3b67a6da + size: 245522 + timestamp: 1768999397226 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py312h877c910_1.conda + sha256: fd870346ee01a9863100db246afcc7aaa506d6fee78482b1d84a31c97521a461 + md5: b762c662b7124f206ccb1269992a6df2 depends: - - __osx >=11.0 + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs + - eccodes >=2.45.0 + - __osx >=11.0 + - python 3.12.* *_cpython - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: Apache - size: 205975 - timestamp: 1760521856464 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.44.0-py314hdcf55e8_1.conda - sha256: 35b95d9ad57952db58074609a66232df6a30226e606f46b59b87810ae42d7a60 - md5: cea6d126f41195abc60c9f097d0ecdc8 + size: 239766 + timestamp: 1768999522906 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-eccodes-2.45.0-np2py314h4e57505_1.conda + sha256: 7068faa792fbe8f7cc40b23a08da0441a7dfd2ea8159fd07e09480ff503a6bb6 + md5: 7c2ffb11b716f8e68b63172b0e02e2c3 depends: - - __osx >=11.0 + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs + - eccodes >=2.45.0 + - __osx >=11.0 + - python 3.14.* *_cp314 - numpy >=1.23,<3 - - python >=3.14,<3.15.0a0 - - python >=3.14,<3.15.0a0 *_cp314 - python_abi 3.14.* *_cp314 license: Apache-2.0 - license_family: Apache - size: 215614 - timestamp: 1760522138362 -- conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py312h196c9fc_1.conda - sha256: c3a1ff017aeb74a07a5a4d3659e983394bcfd5911df006825c4402d5e27d8ef3 - md5: 2ecef5e3705cde5eeddfb5ca60775d08 + size: 249492 + timestamp: 1768999393288 +- conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py312h226b611_1.conda + sha256: 1544d9f8c2da144dd0bc55c252f0d04ace6a9906995aa19c72d154c28a23d3e5 + md5: 6c3258d37cafe2e28f1229ca9b9a6182 depends: + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs - - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - ucrt >=10.0.20348.0 + - eccodes >=2.45.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - numpy >=1.23,<3 + - python_abi 3.12.* *_cp312 license: Apache-2.0 - license_family: Apache - size: 176822 - timestamp: 1760521564148 -- conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.44.0-py314h2dcd201_1.conda - sha256: a03cff426312955351f2bce690712e097693e42ac853c187c5c911dd049911c1 - md5: a3a1b0c0ce6b4dad21538d2588fc5222 + size: 200378 + timestamp: 1768999389734 +- conda: https://conda.anaconda.org/conda-forge/win-64/python-eccodes-2.45.0-np2py314hea88fa1_1.conda + sha256: 1bd7caf3594c77f442a76521f7bd3597c37c52cd0e4e3c8a9d2db8cf6b38caaf + md5: afcf7055b1f8e3604ed8bcb1157ba02e depends: + - python - attrs - cffi - - eccodes >=2.44.0 - findlibs - - numpy >=1.23,<3 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - - ucrt >=10.0.20348.0 + - eccodes >=2.45.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.14.* *_cp314 + - numpy >=1.23,<3 license: Apache-2.0 - license_family: Apache - size: 185951 - timestamp: 1760521733440 + size: 209964 + timestamp: 1768999393825 - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda sha256: df9aa74e9e28e8d1309274648aac08ec447a92512c33f61a8de0afa9ce32ebe8 md5: 23029aae904a2ba587daba708208012f @@ -26393,15 +26426,6 @@ packages: license: 0BSD OR CC0-1.0 size: 13814 timestamp: 1766003022813 -- conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda - sha256: ce21b50a412b87b388db9e8dfbf8eb16fc436c23750b29bf612ee1a74dd0beb2 - md5: 28687768633154993d521aecfa4a56ac - depends: - - python >=3.10 - - roman-numerals 4.1.0 - license: 0BSD OR CC0-1.0 - size: 11074 - timestamp: 1766025162370 - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py312h868fb18_0.conda sha256: 62f46e85caaba30b459da7dfcf3e5488ca24fd11675c33ce4367163ab191a42c md5: 3ffc5a3572db8751c2f15bacf6a0e937 @@ -26466,10 +26490,10 @@ packages: license_family: APACHE size: 31709 timestamp: 1744825527634 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.10-h4196e79_0.conda +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda noarch: python - sha256: 997b45ce89554f677e4a30cd1d64565949be9d25c806727c3d844fee0d55d7d2 - md5: ddecdee0806589993d96a950ad51b927 + sha256: 404845fdbe335e04d03b3f919cf3003a1f9c09d242dd4cece4c6bd10e7e38128 + md5: 5c8827cadaa6c8d4b8e510cf3dbf0fa6 depends: - python - libgcc >=14 @@ -26478,12 +26502,12 @@ packages: - __glibc >=2.17 license: MIT license_family: MIT - size: 11472103 - timestamp: 1766094973645 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.10-hb17bafe_0.conda + size: 11497260 + timestamp: 1768592206291 +- conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda noarch: python - sha256: e1e48a3c7c9f097200eef38322a40c8f5d08fe68308d1e577e8270d353544ab5 - md5: cbfe1d44978259b92d7c9b221bfe59b8 + sha256: d42178f9b490baafdb0f3b083cb82e647aa795600c5878518076299c24c395fe + md5: e53e2e4106b7a55550c68f33cec147c3 depends: - python - __osx >=10.13 @@ -26491,12 +26515,12 @@ packages: - __osx >=10.13 license: MIT license_family: MIT - size: 11405633 - timestamp: 1766095106770 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.10-hb0cad00_0.conda + size: 11449242 + timestamp: 1768592295255 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda noarch: python - sha256: dcae2c2d8c3a07782c0ce900f44488e2c2a2acd3720850181165a4e0034219fc - md5: d506e661dcc8c2053b2661edb0d3c57c + sha256: 4e7c2f7064ec823b2329235e6b17f97f1618511a952d90c5bb725b262131ea7a + md5: b9b8e12ab933388f7a48d37cb8448a49 depends: - python - __osx >=11.0 @@ -26504,12 +26528,12 @@ packages: - __osx >=11.0 license: MIT license_family: MIT - size: 10468468 - timestamp: 1766095111371 -- conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.10-h37e10c4_0.conda + size: 10441801 + timestamp: 1768592384226 +- conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda noarch: python - sha256: 2ca5b7a6ab0a4cddec16f390e1c2d89b5cacd1780963745e463f1bb2e8ab4893 - md5: 987a8290e4bfd9e42e3c58be4481929c + sha256: 9e6de345d3d482c477f0ab647b80acda8bbe9259fc706f5fc58abc505760ad6f + md5: 60eb6366deb0898dab59b993b55466af depends: - python - vc >=14.3,<15 @@ -26517,8 +26541,8 @@ packages: - ucrt >=10.0.20348.0 license: MIT license_family: MIT - size: 11908812 - timestamp: 1766095035171 + size: 11954710 + timestamp: 1768592229860 - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda sha256: dec76e9faa3173579d34d226dbc91892417a80784911daf8e3f0eb9bad19d7a6 md5: bade189a194e66b93c03021bd36c337b @@ -26764,9 +26788,9 @@ packages: license: Apache-2.0 AND LGPL-3.0-or-later size: 9238821 timestamp: 1763141710631 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py312h54fa4ab_2.conda - sha256: 2f73242ca3164b4f305becb535a8245ff25839a42d4e62b222f866a5bf58b989 - md5: e82683871cbc4bb257b7694f31a91327 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py312h54fa4ab_1.conda + sha256: 5b296faf6f5ff90d9ea3f6b16ff38fe2b8fe81c7c45b5e3a78b48887cca881d1 + md5: 828eb07c4c87c38ed8c6560c25893280 depends: - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 @@ -26776,18 +26800,18 @@ packages: - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - libstdcxx >=14 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 16666973 - timestamp: 1766108740332 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py314hf07bd8e_2.conda - sha256: 652f9a235051c1d39ccd2fe7e9326792b046a1d93de42171977fa1ba9668a0e8 - md5: ee95e8bb52e35c3267a53d3ee1347cc4 + size: 16903519 + timestamp: 1768801007666 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py314hf07bd8e_1.conda + sha256: a95de421c586de901402107fbeb7524efaee5bb55c1aba2e1334f8b8ebc89093 + md5: c7df812186fb1290bc00d9b7b5a50b18 depends: - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 @@ -26797,18 +26821,18 @@ packages: - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - libstdcxx >=14 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD - size: 16982488 - timestamp: 1766108668132 -- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312h79cf0a0_2.conda - sha256: ce00b56cbd8dd7e4c7c3367a40946eafafe2728c95598478d3c3e134e7bbc86b - md5: 9379a86fa21719bc2af4c0845f24a739 + size: 17048277 + timestamp: 1768800950735 +- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py312ha20b133_1.conda + sha256: 6cc34c00442e95199a41bd551a3003ec5f2cac43e8e71158e03462a0dc61b799 + md5: 9ab1af443bf4a42fd14a2baf21e394b9 depends: - __osx >=10.13 - libblas >=3.9.0,<4.0a0 @@ -26817,18 +26841,18 @@ packages: - libgfortran - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 15117052 - timestamp: 1766108456706 -- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py314hbb40827_2.conda - sha256: 28ca934c3f9bb1d1d126b4e6f7f37ee14e11407e5ea99e6c9c0a772d537d1ce4 - md5: 306e89b8db5482c47324978efcf59f7d + size: 15064644 + timestamp: 1768800945420 +- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py314h6328ba2_1.conda + sha256: f8cb94c88ed2bcca5cfb5a76353bc21d18336e81a6ddbfd479d85d13e0191f70 + md5: e519933e2e628d7cd159147c224366bf depends: - __osx >=10.13 - libblas >=3.9.0,<4.0a0 @@ -26837,18 +26861,18 @@ packages: - libgfortran - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.14,<3.15.0a0 - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD - size: 15135829 - timestamp: 1766108573799 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312h39258fd_2.conda - sha256: beae2ee638cff6f954026d4ed7ca316fb6b4fa451af7f0ebbb83a94b832740ed - md5: 24765804abd9985bf6fbc57c9691479b + size: 15087578 + timestamp: 1768801076977 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda + sha256: a204b9b3a59a88a320d9da772eecda58242cfaaf785119927eb59c4bdc6fa66f + md5: 1f5a9253e1c3484a5c1df0b8145a9ce3 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 @@ -26857,7 +26881,7 @@ packages: - libgfortran - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.12,<3.13.0a0 @@ -26865,11 +26889,11 @@ packages: - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD - size: 13758691 - timestamp: 1766108954684 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py314h725efaa_2.conda - sha256: 282f8b244f31d8c2e0ce401b0473e8090de4b59326018a360419693b629e6b87 - md5: 6333b784ddfcccd3f5569f812f66c352 + size: 13802410 + timestamp: 1768801119235 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py314hfc1f868_1.conda + sha256: 7240afa19ba5a5fd66b8ad4270a17e2987940b5dddc6367c4a28a6bd62444547 + md5: 09978c420b2e017134c825c06250bf23 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 @@ -26878,7 +26902,7 @@ packages: - libgfortran - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.14,<3.15.0a0 @@ -26886,16 +26910,16 @@ packages: - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD - size: 13880523 - timestamp: 1766109018710 -- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py312h9b3c559_2.conda - sha256: 15272cd1fea6688be417c32d99b9c7d92b89bb01365fcd8a52185fcbdcd70786 - md5: d6ef9dade2ca0a46dad8443566af7447 + size: 13977639 + timestamp: 1768800961564 +- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py312h9b3c559_1.conda + sha256: 0f90709b8b8ffa3f3f8a3e023154be77e3fe7dbeda3de3d62479c862111761f2 + md5: da72702707bdb757ad57637815f165b1 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.12,<3.13.0a0 @@ -26905,16 +26929,16 @@ packages: - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD - size: 15092655 - timestamp: 1766109172552 -- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py314h221f224_2.conda - sha256: 99d6198dc05171610073083c9d218d2a9adfa756659b391183d21cca55f888f1 - md5: b600c47282ee91e492b89f65708a5c9a + size: 14843889 + timestamp: 1768801821822 +- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py314h221f224_1.conda + sha256: 3e206736e3afce07be3f2f714518c0eff211f49e603b6aadb468e9d96ef4c420 + md5: 0f9edd5793da94f7ec58690abe25c8a2 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.14,<3.15.0a0 @@ -26924,8 +26948,8 @@ packages: - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD - size: 15082636 - timestamp: 1766109482825 + size: 15121680 + timestamp: 1768801838627 - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda noarch: python sha256: ea29a69b14dd6be5cdeeaa551bf50d78cafeaf0351e271e358f9b820fcab4cb0 @@ -26962,9 +26986,9 @@ packages: license_family: BSD size: 22532 timestamp: 1767294175877 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh5552912_0.conda - sha256: 5893e203cb099c784bf5b08d29944b5402beebcc361d55e54b676e9b355c7844 - md5: dcff6f8ea9e86a0bda978b88f89f2310 +- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + sha256: 6b1a863b2a3e106e573a6efce2303963c3adc2764dfdbf08c4a35dbe62604988 + md5: 297e2901b530c5d321c563e66a65db99 depends: - __osx - pyobjc-framework-cocoa @@ -26972,11 +26996,11 @@ packages: - python license: BSD-3-Clause license_family: BSD - size: 22782 - timestamp: 1767192019917 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyh6dadd2b_0.conda - sha256: f154f702baf550de9c1e3517f110bb71a056df5645027c8d15b37f3ea33722cc - md5: 40df72e963d80a403c1861ae9428b13c + size: 22409 + timestamp: 1768402460843 +- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda + sha256: b64e5cdb66f5d31fcef05b6ed95b8be3e80796528aa8a165428496c0dda3383f + md5: 69ba308f1356f39901f5654d82405df3 depends: - __win - pywin32 @@ -26984,28 +27008,28 @@ packages: - python license: BSD-3-Clause license_family: BSD - size: 22947 - timestamp: 1767192046046 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.0.0-pyha191276_0.conda - sha256: 27cd93b4f848a1c8193a7b1b8e6e6d03321462e96997ce95ea1a39305f7ac7cb - md5: f2cc28627a451a28ddd5ef5ab0bf579d + size: 22700 + timestamp: 1768402455730 +- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda + sha256: b25d573874fe39cb8e4cf6ed0279acb9a94fedce5c5ae885da11566d595035ad + md5: 645026465469ecd4989188e1c4e24953 depends: - __linux - python >=3.10 - python license: BSD-3-Clause license_family: BSD - size: 24215 - timestamp: 1767192001650 -- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - sha256: 972560fcf9657058e3e1f97186cc94389144b46dbdf58c807ce62e83f977e863 - md5: 4de79c071274a53dcaf2a8c749d1499e + size: 23960 + timestamp: 1768402421616 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda + sha256: 89d5bb48047e7e27aa52a3a71d6ebf386e5ee4bdbd7ca91d653df9977eca8253 + md5: cb72cedd94dd923c6a9405a3d3b1c018 depends: - - python >=3.9 + - python >=3.10 license: MIT license_family: MIT - size: 748788 - timestamp: 1748804951958 + size: 678025 + timestamp: 1768998156365 - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.2-pyhd8ed1ab_0.conda sha256: 2161ac35fc22770b248bab0be2cc3b5bd765f528a9e60e7f3be784fd8d0d605a md5: e2e4d7094d0580ccd62e2a41947444f3 @@ -27182,32 +27206,32 @@ packages: license_family: MIT size: 13919 timestamp: 1710194099964 -- conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.0.3-pyhdfd78af_0.conda - sha256: 70541017979b70b35e1824f8718a3bb335d4659da9a6f86a4df635fa1e425790 - md5: 3ea81e75226d692c31fa3d115bda027b +- conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-2.1.0-pyhdfd78af_0.conda + sha256: f65445e666eda1c29d97a74cf4ca238d8e3340d6c776d5a4d39394edb0610954 + md5: 01e79189d86f278322d0807f7d1dbada depends: - numpy >=1.26.4,<3.0 - pandas >=2.2.3,<3.0 - python >=3.11.0,<4.0.0 - pyyaml - - snakemake-executor-plugin-slurm-jobstep >=0.3.0,<0.4.0 + - snakemake-executor-plugin-slurm-jobstep >=0.4.0,<0.5.0 - snakemake-interface-common >=1.21.0,<2.0.0 - snakemake-interface-executor-plugins >=9.3.9,<10.0.0 - throttler >=1.2.2,<2.0.0 license: MIT license_family: MIT - size: 33681 - timestamp: 1765476233502 -- conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.3.0-pyhdfd78af_0.tar.bz2 - sha256: de9cc97d872147bfd5928f653c6d8dc1f0f1e47cb744672ffb743c4b2f8c919a - md5: 1e3d84ab0cd46fbf1dd4e5b290f7c7a5 + size: 34089 + timestamp: 1768988421646 +- conda: https://conda.anaconda.org/bioconda/noarch/snakemake-executor-plugin-slurm-jobstep-0.4.0-pyhdfd78af_0.conda + sha256: 82ad84bf106e0fbab62f6c001311aff53faefe323254c8b2b3540f310bb48dfe + md5: 7d4f2bf739967798eb4d8c02d59cf36c depends: - python >=3.11.0,<4.0.0 - snakemake-interface-common >=1.13.0,<2.0.0 - snakemake-interface-executor-plugins >=9.0.0,<10.0.0 license: MIT - size: 12881 - timestamp: 1739611671448 + size: 14678 + timestamp: 1765807808315 - conda: https://conda.anaconda.org/bioconda/noarch/snakemake-interface-common-1.22.0-pyhd4c3c12_0.conda sha256: d13802cb086c1b6be2c4e903e01f946fc973436e6100514169df82e537166bce md5: e9bb00d8c7d26a5cd220d3d73bee45fb @@ -27272,9 +27296,9 @@ packages: license_family: MIT size: 21574 timestamp: 1764856126551 -- conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.14.5-pyhdfd78af_0.conda - sha256: eae0e04c82346b418c8fe6d5593e9ce00fe2b1e5919ae3b179a14505507d4208 - md5: 506595d74d93a867497f0c97144007c5 +- conda: https://conda.anaconda.org/bioconda/noarch/snakemake-minimal-9.15.0-pyhdfd78af_0.conda + sha256: c01b7b4066d642cf67292537a5dc864e4faa4084abce03beaf7cb1457716f5b2 + md5: 71856e8d31fc4396cb4b3b57c9e7fb83 depends: - appdirs - conda-inject >=1.3.1,<2.0 @@ -27308,8 +27332,8 @@ packages: - yte >=1.5.5,<2.0 license: MIT license_family: MIT - size: 866703 - timestamp: 1765808343030 + size: 869547 + timestamp: 1768984393774 - conda: https://repo.prefix.dev/open-tyndp/noarch/snakemake-minimal-9.14.5+opentyndp.1-py_0.conda sha256: ca51d4ebff1a5c1ea88210b50c25216f7d9dbf1926b67b57f4e834b1281db19c depends: @@ -27458,30 +27482,30 @@ packages: license_family: APACHE size: 28657 timestamp: 1738440459037 -- conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.1-pyhd8ed1ab_0.conda - sha256: 4ba9b8c45862e54d05ed9a04cc6aab5a17756ab9865f57cbf2836e47144153d2 - md5: 7de28c27fe620a4f7dbfaea137c6232b +- conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.2-pyhd8ed1ab_0.conda + sha256: aacc87d88795ef887b89fe9401d1092312c43371d1ba92340d8924da1a982b6a + md5: fcbe3971b6017792e9b24ff451daa7f5 depends: - python >=3.10 license: MIT license_family: MIT - size: 37951 - timestamp: 1766075884412 -- conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - sha256: 995f58c662db0197d681fa345522fd9e7ac5f05330d3dff095ab2f102e260ab0 - md5: f7af826063ed569bb13f7207d6f949b0 + size: 38091 + timestamp: 1768776629384 +- conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-9.1.0-pyhd8ed1ab_0.conda + sha256: 035ca4b17afca3d53650380dd94c564555b7ec2b4f8818111f98c15c7a991b7b + md5: aabfbc2813712b71ba8beb217a978498 depends: - alabaster >=0.7.14 - babel >=2.13 - colorama >=0.4.6 - - docutils >=0.20,<0.22 + - docutils >=0.21,<0.23 - imagesize >=1.3 - jinja2 >=3.1 - packaging >=23.0 - pygments >=2.17 - - python >=3.11 + - python >=3.12 - requests >=2.30.0 - - roman-numerals-py >=1.0.0 + - roman-numerals >=1.0.0 - snowballstemmer >=2.2 - sphinxcontrib-applehelp >=1.0.7 - sphinxcontrib-devhelp >=1.0.6 @@ -27491,8 +27515,8 @@ packages: - sphinxcontrib-serializinghtml >=1.1.9 license: BSD-2-Clause license_family: BSD - size: 1424416 - timestamp: 1740956642838 + size: 1584836 + timestamp: 1767271941650 - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-book-theme-1.1.4-pyh29332c3_0.conda sha256: 78581f1ba538186fc4129191a8db4ee7798382b6b4a1a0c55dedb437da1a9fd8 md5: f3d3f4e7e2c9198e88cd524633665081 @@ -27579,56 +27603,56 @@ packages: license_family: BSD size: 28669 timestamp: 1733750596111 -- conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.1-h04a0ce9_1.conda - sha256: 19b59d178bdeecf3fc6875c71370a32b544289a894f20a94abc13af5016af4c7 - md5: 941ee610ebf7a8047140831091dcb1f7 +- conda: https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.51.2-h04a0ce9_0.conda + sha256: ccce47d8fe3a817eac5b95f34ca0fcb12423b0c7c5eee249ffb32ac8013e9692 + md5: bb88d9335d09e54c7e6b5529d1856917 depends: - __glibc >=2.17,<3.0.a0 - - icu >=78.1,<79.0a0 + - icu >=78.2,<79.0a0 - libgcc >=14 - - libsqlite 3.51.1 hf4e2dac_1 + - libsqlite 3.51.2 hf4e2dac_0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - readline >=8.3,<9.0a0 license: blessing - size: 183246 - timestamp: 1766319695960 -- conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.1-h4b4dc0b_1.conda - sha256: e397ef434780179b32342907a8d5e7ac7aebf2f24cb3e431bedb039d3e47b457 - md5: 30512570bd8f3328796b7ac3144916e7 + size: 183298 + timestamp: 1768147986603 +- conda: https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.51.2-h5af3ad2_0.conda + sha256: 89fde12f2a5e58edb9bd1497558a77df9c090878971559bcf0c8513e0966795e + md5: 9eef7504045dd9eb1be950b2f934d542 depends: - __osx >=10.13 - - icu >=78.1,<79.0a0 - - libsqlite 3.51.1 hd09e2f1_1 + - libsqlite 3.51.2 hb99441e_0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - readline >=8.3,<9.0a0 license: blessing - size: 174075 - timestamp: 1766320011855 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.1-h85ec8f2_1.conda - sha256: e35cc5ebe4eb46c912fe957a32df80892e2e9b21a84895d9b8ac8b2cc880cb37 - md5: d8e5b52070c9a44018bbddb7bb2f4b45 + size: 174119 + timestamp: 1768148271396 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlite-3.51.2-h77b7338_0.conda + sha256: a13c798ad921da0c84c441c390ace3b53e5c40fe6b11d00e07641d985021c4d1 + md5: 93796186d49d0b09243fb5a8f83e53b6 depends: - __osx >=11.0 - - libsqlite 3.51.1 h1b79a29_1 + - icu >=78.2,<79.0a0 + - libsqlite 3.51.2 h1ae2325_0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - readline >=8.3,<9.0a0 license: blessing - size: 165748 - timestamp: 1766319931535 -- conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.1-hdb435a2_1.conda - sha256: 80b016323e9ceadf09af44a70d4c71ac852f02c6ef4202e16563065f2473258a - md5: b466331d8cba620e6b37f8790b6bd0a5 + size: 165840 + timestamp: 1768148351309 +- conda: https://conda.anaconda.org/conda-forge/win-64/sqlite-3.51.2-hdb435a2_0.conda + sha256: 8194c1326f052852dd827f5277ba381228a968e841d410eb18c622cf851b11ba + md5: bc9265bd9f30f9ded263cb762a4fc847 depends: - - libsqlite 3.51.1 hf5d6505_1 + - libsqlite 3.51.2 hf5d6505_0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: blessing - size: 400759 - timestamp: 1766319638434 + size: 400812 + timestamp: 1768148302390 - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda sha256: 570da295d421661af487f1595045760526964f41471021056e993e73089e9c41 md5: b1b505328da7a6b246787df4b5a49fbc @@ -27884,40 +27908,40 @@ packages: license_family: APACHE size: 181262 timestamp: 1762509955687 -- conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-hf0c99ee_1.conda - sha256: 56e32e8bd8f621ccd30574c2812f8f5bc42cc66a3fda8dd7e1b5e54d3f835faa - md5: 108a7d3b5f5b08ed346636ac5935a495 +- conda: https://conda.anaconda.org/conda-forge/osx-64/tbb-2022.3.0-h06b67a2_2.conda + sha256: 2c6707f86d920416817010225774a09309a07aef0c173eecfcc7b403476f4a9e + md5: e048347a60763f60ada3c5fac23dfb60 depends: - __osx >=10.13 - libcxx >=19 - - libhwloc >=2.12.1,<2.12.2.0a0 + - libhwloc >=2.12.2,<2.12.3.0a0 license: Apache-2.0 license_family: APACHE - size: 160700 - timestamp: 1762510382168 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h66ce52b_1.conda - sha256: 06de2fb5bdd4e51893d651165c3dc2679c4c84b056d962432f31cd9f2ccb1304 - md5: 6f026b94077bed22c27ad8365e024e18 + size: 160208 + timestamp: 1767886933381 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tbb-2022.3.0-h4ddebb9_2.conda + sha256: 54278e6bdf378b92cbec941d29e8f360796dabf72c9ad1f6e2a27ca91a9f804a + md5: 82395152e3ba2dea9ea6a3dc17553136 depends: - __osx >=11.0 - libcxx >=19 - - libhwloc >=2.12.1,<2.12.2.0a0 + - libhwloc >=2.12.2,<2.12.3.0a0 license: Apache-2.0 license_family: APACHE - size: 121436 - timestamp: 1762510628662 -- conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda - sha256: c31cac57913a699745d124cdc016a63e31c5749f16f60b3202414d071fc50573 - md5: 17c38aaf14c640b85c4617ccb59c1146 + size: 120040 + timestamp: 1767887181945 +- conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda + sha256: abd9a489f059fba85c8ffa1abdaa4d515d6de6a3325238b8e81203b913cf65a9 + md5: 0f9817ffbe25f9e69ceba5ea70c52606 depends: - - libhwloc >=2.12.1,<2.12.2.0a0 + - libhwloc >=2.12.2,<2.12.3.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: Apache-2.0 license_family: APACHE - size: 155714 - timestamp: 1762510341121 + size: 155869 + timestamp: 1767886839029 - conda: https://conda.anaconda.org/conda-forge/noarch/tblib-3.2.2-pyhcf101f3_0.conda sha256: 6b549360f687ee4d11bf85a6d6a276a30f9333df1857adb0fe785f0f8e9bcd60 md5: f88bb644823094f436792f80fba3207e @@ -28036,25 +28060,25 @@ packages: license_family: BSD size: 3472313 timestamp: 1763055164278 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - sha256: cb77c660b646c00a48ef942a9e1721ee46e90230c7c570cdeb5a893b5cce9bff - md5: d2732eb636c264dc9aa4cbee404b1a53 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 + md5: 72e780e9aa2d0a3295f59b1874e3768b depends: - python >=3.10 - python license: MIT license_family: MIT - size: 20973 - timestamp: 1760014679845 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.13.3-pyha770c72_0.conda - sha256: f8d3b49c084831a20923f66826f30ecfc55a4cd951e544b7213c692887343222 - md5: 146402bf0f11cbeb8f781fa4309a95d3 + size: 21453 + timestamp: 1768146676791 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.14.0-pyha770c72_0.conda + sha256: b35082091c8efd084e51bc3a4a2d3b07897eff232aaf58cbc0f959b6291a6a93 + md5: 385dca77a8b0ec6fa9b92cb62d09b43b depends: - - python >=3.9 + - python >=3.10 license: MIT license_family: MIT - size: 38777 - timestamp: 1749127286558 + size: 39224 + timestamp: 1768476626454 - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 md5: c07a6153f8306e45794774cf9b13bd32 @@ -28540,9 +28564,9 @@ packages: license_family: Proprietary size: 115235 timestamp: 1767320173250 -- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.0-pyhd8ed1ab_0.conda - sha256: cbb40ae88ccc72e95ce00911a73d9175eead4fb4e74925b0e9557bb60737317e - md5: c9a9b6e144b880308f5eedc905fe503d +- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda + sha256: fa0a21fdcd0a8e6cf64cc8cd349ed6ceb373f09854fd3c4365f0bc4586dccf9a + md5: 6b0259cea8ffa6b66b35bae0ca01c447 depends: - distlib >=0.3.7,<1 - filelock >=3.20.1,<4 @@ -28550,8 +28574,9 @@ packages: - python >=3.10 - typing_extensions >=4.13.2 license: MIT - size: 4403353 - timestamp: 1767880093070 + license_family: MIT + size: 4404318 + timestamp: 1768069793682 - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_34.conda sha256: 63ff4ec6e5833f768d402f5e95e03497ce211ded5b6f492e660e2bfc726ad24d md5: f276d1de4553e8fca1dfb6988551ebb4 @@ -29238,43 +29263,43 @@ packages: license_family: BSD size: 51128 timestamp: 1763813786075 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda - sha256: 802725371682ea06053971db5b4fb7fbbcaee9cb1804ec688f55e51d74660617 - md5: 68eae977d7d1196d32b636a026dc015d +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.2-ha02ee65_0.conda + sha256: 6d60b1870bdbbaf098bbc7d69e4f4eccb8a6b5e856c2d0aca3c62c0db97e0863 + md5: d34b831f6d6a9b014eb7cf65f6329bba depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_2 - - liblzma-devel 5.8.1 hb9d3cd8_2 - - xz-gpl-tools 5.8.1 hbcc6ac9_2 - - xz-tools 5.8.1 hb9d3cd8_2 + - libgcc >=14 + - liblzma 5.8.2 hb03c661_0 + - liblzma-devel 5.8.2 hb03c661_0 + - xz-gpl-tools 5.8.2 ha02ee65_0 + - xz-tools 5.8.2 hb03c661_0 license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later - size: 23987 - timestamp: 1749230104359 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda - sha256: 840838dca829ec53f1160f3fca6dbfc43f2388b85f15d3e867e69109b168b87b - md5: bf627c16aa26231720af037a2709ab09 + size: 24101 + timestamp: 1768752698238 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.2-ha02ee65_0.conda + sha256: a4876e9fb124665315aedfe96b1a832e2c26312241061d5f990208aaf380da46 + md5: a159fe1e8200dd67fa88ddea9169d25a depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_2 + - libgcc >=14 + - liblzma 5.8.2 hb03c661_0 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later - size: 33911 - timestamp: 1749230090353 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda - sha256: 58034f3fca491075c14e61568ad8b25de00cb3ae479de3e69be6d7ee5d3ace28 - md5: 1bad2995c8f1c8075c6c331bf96e46fb + size: 33774 + timestamp: 1768752679459 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.2-hb03c661_0.conda + sha256: 65c8a236b89a4ad24565a986b7c00b8cb2906af52fd9963730c44ea56a9fde9a + md5: dfd6129671f782988d665354e7aa269d depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_2 + - libgcc >=14 + - liblzma 5.8.2 hb03c661_0 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD AND LGPL-2.1-or-later - size: 96433 - timestamp: 1749230076687 + size: 96093 + timestamp: 1768752662020 - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad md5: a77f85f77be52ff59391544bfe73390a diff --git a/rules/build_electricity.smk b/rules/build_electricity.smk index 5ef03c170d..32ba117d86 100755 --- a/rules/build_electricity.smk +++ b/rules/build_electricity.smk @@ -9,7 +9,7 @@ from scripts._helpers import safe_pyear def input_elec_demand(w): return { "synthetic": ( - ancient("data/load_synthetic_raw.csv") + ancient(rules.retrieve_synthetic_electricity_demand.output["csv"]) if config_provider("load", "supplement_synthetic")(w) else [] ), @@ -45,6 +45,7 @@ rule build_powerplants: countries=config_provider("countries"), input: network=resources("networks/base_s_{clusters}.nc"), + powerplants=rules.retrieve_powerplants.output["powerplants"], custom_powerplants="data/custom_powerplants.csv", output: resources("powerplants_s_{clusters}.csv"), @@ -61,18 +62,17 @@ rule build_powerplants: def input_base_network(w): base_network = config_provider("electricity", "base_network")(w) - osm_prebuilt_version = config_provider("electricity", "osm-prebuilt-version")(w) + source = config_provider("data", "osm", "source")(w) components = {"buses", "lines", "links", "converters", "transformers"} - if base_network == "osm-raw": - inputs = {c: resources(f"osm-raw/build/{c}.csv") for c in components} + if (base_network == "osm") and (source == "archive"): + OSM_DATASET = dataset_version("osm") + inputs = {c: f"{OSM_DATASET['folder']}/{c}.csv" for c in components} + elif base_network == "osm" and (source == "build"): + inputs = {c: resources(f"osm/build/{c}.csv") for c in components} elif base_network == "tyndp": inputs = {c: resources(f"tyndp/build/{c}.csv") for c in components} - elif base_network == "osm-prebuilt": - inputs = { - c: f"data/{base_network}/{osm_prebuilt_version}/{c}.csv" for c in components - } elif base_network == "entsoegridkit": - inputs = {c: f"data/{base_network}/{c}.csv" for c in components} + inputs = {c: f"data/entsoegridkit/{c}.csv" for c in components} inputs["parameter_corrections"] = "data/parameter_corrections.yaml" inputs["links_p_nom"] = "data/links_p_nom.csv" return inputs @@ -112,10 +112,10 @@ rule base_network: rule build_osm_boundaries: input: - json="data/osm-boundaries/json/{country}_adm1.json", - eez=ancient("data/eez/World_EEZ_v12_20231025_LR/eez_v12_lowres.gpkg"), + json=f"{OSM_BOUNDARIES_DATASET['folder']}/{{country}}_adm1.json", + eez=ancient(rules.retrieve_eez.output["gpkg"]), output: - boundary="data/osm-boundaries/build/{country}_adm1.geojson", + boundary=f"data/osm_boundaries/build/{OSM_BOUNDARIES_DATASET['version']}/{{country}}_adm1.geojson", log: "logs/build_osm_boundaries_{country}.log", threads: 1 @@ -153,21 +153,21 @@ rule build_shapes: config_provider("clustering", "mode"), countries=config_provider("countries"), input: - eez=ancient("data/eez/World_EEZ_v12_20231025_LR/eez_v12_lowres.gpkg"), - nuts3_2021="data/nuts/NUTS_RG_01M_2021_4326_LEVL_3.geojson", - ba_adm1="data/osm-boundaries/build/BA_adm1.geojson", - md_adm1="data/osm-boundaries/build/MD_adm1.geojson", - ua_adm1="data/osm-boundaries/build/UA_adm1.geojson", - xk_adm1="data/osm-boundaries/build/XK_adm1.geojson", - nuts3_gdp="data/jrc-ardeco/ARDECO-SUVGDP.2021.table.csv", - nuts3_pop="data/jrc-ardeco/ARDECO-SNPTD.2021.table.csv", + eez=ancient(rules.retrieve_eez.output["gpkg"]), + nuts3_2021=rules.retrieve_eu_nuts_2021.output["shapes_level_3"], + ba_adm1=f"data/osm_boundaries/build/{OSM_BOUNDARIES_DATASET['version']}/BA_adm1.geojson", + md_adm1=f"data/osm_boundaries/build/{OSM_BOUNDARIES_DATASET['version']}/MD_adm1.geojson", + ua_adm1=f"data/osm_boundaries/build/{OSM_BOUNDARIES_DATASET['version']}/UA_adm1.geojson", + xk_adm1=f"data/osm_boundaries/build/{OSM_BOUNDARIES_DATASET['version']}/XK_adm1.geojson", + nuts3_gdp=rules.retrieve_jrc_ardeco.output["ardeco_gdp"], + nuts3_pop=rules.retrieve_jrc_ardeco.output["ardeco_pop"], bidding_zones=lambda w: ( resources("bidding_zones.geojson") if config_provider("clustering", "mode")(w) == "administrative" else [] ), - other_gdp="data/bundle/GDP_per_capita_PPP_1990_2015_v2.nc", - other_pop="data/bundle/ppp_2019_1km_Aggregated.tif", + other_gdp=rules.retrieve_gdp_per_capita.output["gdp"], + other_pop=rules.retrieve_population_count.output["tif"], output: country_shapes=resources("country_shapes.geojson"), offshore_shapes=resources("offshore_shapes.geojson"), @@ -184,20 +184,17 @@ rule build_shapes: "../scripts/build_shapes.py" -if config["enable"].get("build_cutout", False): +if CUTOUT_DATASET["source"] in ["build"]: rule build_cutout: params: cutouts=config_provider("atlite", "cutouts"), - input: - regions_onshore=resources("regions_onshore.geojson"), - regions_offshore=resources("regions_offshore.geojson"), output: - protected(CDIR.joinpath("{cutout}.nc").as_posix()), + cutout=CUTOUT_DATASET["folder"] / "{cutout}.nc", log: - logs(CDIR.joinpath("build_cutout", "{cutout}.log").as_posix()), + "logs/build_cutout/{cutout}.log", benchmark: - Path("benchmarks").joinpath(CDIR, "build_cutout_{cutout}").as_posix() + "benchmarks/build_cutout/{cutout}" threads: config["atlite"].get("nprocesses", 4) resources: mem_mb=config["atlite"].get("nprocesses", 4) * 1000, @@ -207,7 +204,7 @@ if config["enable"].get("build_cutout", False): rule build_ship_raster: input: - ship_density="data/shipdensity_global.zip", + ship_density=rules.retrieve_ship_raster.output["zip_file"], cutout=lambda w: input_cutout(w), output: resources("shipdensity_raster.tif"), @@ -225,11 +222,11 @@ rule determine_availability_matrix_MD_UA: params: renewable=config_provider("renewable"), input: - copernicus="data/Copernicus_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif", - wdpa="data/WDPA.gpkg", - wdpa_marine="data/WDPA_WDOECM_marine.gpkg", + copernicus=rules.download_copernicus_land_cover.output["tif"], + wdpa=rules.retrieve_wdpa.output["gpkg"], + wdpa_marine=rules.retrieve_wdpa_marine.output["gpkg"], gebco=lambda w: ( - "data/bundle/gebco/GEBCO_2014_2D.nc" + rules.retrieve_gebco.output["gebco"] if config_provider("renewable", w.technology)(w).get("max_depth") else [] ), @@ -280,20 +277,16 @@ rule determine_availability_matrix: renewable=config_provider("renewable"), input: unpack(input_ua_md_availability_matrix), - corine=ancient("data/bundle/corine/g250_clc06_V18_5.tif"), + corine=ancient(f"{rules.retrieve_corine.output['tif_file']}"), natura=lambda w: ( - "data/bundle/natura/natura.tiff" + f"{NATURA_DATASET["folder"]}/natura.tiff" if config_provider("renewable", w.technology, "natura")(w) else [] ), - luisa=lambda w: ( - "data/LUISA_basemap_020321_50m.tif" - if config_provider("renewable", w.technology, "luisa")(w) - else [] - ), + luisa=rules.retrieve_luisa_land_cover.output["tif"], gebco=ancient( lambda w: ( - "data/bundle/gebco/GEBCO_2014_2D.nc" + rules.retrieve_gebco.output["gebco"] if ( config_provider("renewable", w.technology)(w).get("max_depth") or config_provider("renewable", w.technology)(w).get("min_depth") @@ -380,6 +373,28 @@ rule build_monthly_prices: "../scripts/build_monthly_prices.py" +if COUNTRY_RUNOFF_DATASET["source"] == "build": + + # This rule uses one or multiple cutouts. + # To update the output files to include a new year, e.g. 2025 using an existing cutout, + # either create a new cutout covering the whole timespan or add another cutout that covers the additional year(s). + # E.g. cutouts=[, ] + rule build_country_runoff: + input: + cutouts=["cutouts/europe-1940-2024-era5.nc"], + country_shapes=resources("country_shapes.geojson"), + output: + era5_runoff=COUNTRY_RUNOFF_DATASET["folder"] / "era5-runoff-per-country.csv", + log: + logs("build_country_runoff.log"), + benchmark: + benchmarks("build_country_runoff") + conda: + "../envs/environment.yaml" + script: + "../scripts/build_country_runoff.py" + + rule build_hydro_profile: params: hydro=config_provider("renewable", "hydro"), @@ -390,7 +405,7 @@ rule build_hydro_profile: country_shapes=resources("country_shapes.geojson"), eia_hydro_generation="data/eia_hydro_annual_generation.csv", eia_hydro_capacity="data/eia_hydro_annual_capacity.csv", - era5_runoff="data/bundle/era5-runoff-per-country.csv", + era5_runoff=f"{COUNTRY_RUNOFF_DATASET["folder"]}/era5-runoff-per-country.csv", cutout=lambda w: input_cutout( w, config_provider("renewable", "hydro", "cutout")(w) ), @@ -564,7 +579,7 @@ rule process_cost_data: ), input: network=resources("networks/base_s.nc"), - costs=resources("costs_{planning_horizons}.csv"), + costs=rules.retrieve_cost_data.output["costs"], custom_costs=config_provider("costs", "custom_cost_fn"), carrier_mapping="data/tyndp_technology_map.csv", output: @@ -792,38 +807,41 @@ rule prepare_network: "../scripts/prepare_network.py" -if config["electricity"]["base_network"] == "osm-raw": +if ( + config["electricity"]["base_network"] == "osm" + and config["data"]["osm"]["source"] == "build" +): rule clean_osm_data: input: cables_way=expand( - "data/osm-raw/{country}/cables_way.json", + f"{OSM_DATASET['folder']}/{{country}}/cables_way.json", country=config_provider("countries"), ), lines_way=expand( - "data/osm-raw/{country}/lines_way.json", + f"{OSM_DATASET['folder']}/{{country}}/lines_way.json", country=config_provider("countries"), ), routes_relation=expand( - "data/osm-raw/{country}/routes_relation.json", + f"{OSM_DATASET['folder']}/{{country}}/routes_relation.json", country=config_provider("countries"), ), substations_way=expand( - "data/osm-raw/{country}/substations_way.json", + f"{OSM_DATASET['folder']}/{{country}}/substations_way.json", country=config_provider("countries"), ), substations_relation=expand( - "data/osm-raw/{country}/substations_relation.json", + f"{OSM_DATASET['folder']}/{{country}}/substations_relation.json", country=config_provider("countries"), ), offshore_shapes=resources("offshore_shapes.geojson"), country_shapes=resources("country_shapes.geojson"), output: - substations=resources("osm-raw/clean/substations.geojson"), - substations_polygon=resources("osm-raw/clean/substations_polygon.geojson"), - converters_polygon=resources("osm-raw/clean/converters_polygon.geojson"), - lines=resources("osm-raw/clean/lines.geojson"), - links=resources("osm-raw/clean/links.geojson"), + substations=resources(f"osm/clean/substations.geojson"), + substations_polygon=resources(f"osm/clean/substations_polygon.geojson"), + converters_polygon=resources(f"osm/clean/converters_polygon.geojson"), + lines=resources(f"osm/clean/lines.geojson"), + links=resources(f"osm/clean/links.geojson"), log: logs("clean_osm_data.log"), benchmark: @@ -834,34 +852,31 @@ if config["electricity"]["base_network"] == "osm-raw": script: "../scripts/clean_osm_data.py" - -if config["electricity"]["base_network"] == "osm-raw": - rule build_osm_network: params: countries=config_provider("countries"), voltages=config_provider("electricity", "voltages"), line_types=config_provider("lines", "types"), input: - substations=resources("osm-raw/clean/substations.geojson"), - substations_polygon=resources("osm-raw/clean/substations_polygon.geojson"), - converters_polygon=resources("osm-raw/clean/converters_polygon.geojson"), - lines=resources("osm-raw/clean/lines.geojson"), - links=resources("osm-raw/clean/links.geojson"), + substations=resources(f"osm/clean/substations.geojson"), + substations_polygon=resources(f"osm/clean/substations_polygon.geojson"), + converters_polygon=resources(f"osm/clean/converters_polygon.geojson"), + lines=resources(f"osm/clean/lines.geojson"), + links=resources(f"osm/clean/links.geojson"), country_shapes=resources("country_shapes.geojson"), output: - lines=resources("osm-raw/build/lines.csv"), - links=resources("osm-raw/build/links.csv"), - converters=resources("osm-raw/build/converters.csv"), - transformers=resources("osm-raw/build/transformers.csv"), - substations=resources("osm-raw/build/buses.csv"), - lines_geojson=resources("osm-raw/build/geojson/lines.geojson"), - links_geojson=resources("osm-raw/build/geojson/links.geojson"), - converters_geojson=resources("osm-raw/build/geojson/converters.geojson"), - transformers_geojson=resources("osm-raw/build/geojson/transformers.geojson"), - substations_geojson=resources("osm-raw/build/geojson/buses.geojson"), - stations_polygon=resources("osm-raw/build/geojson/stations_polygon.geojson"), - buses_polygon=resources("osm-raw/build/geojson/buses_polygon.geojson"), + lines=resources(f"osm/build/lines.csv"), + links=resources(f"osm/build/links.csv"), + converters=resources(f"osm/build/converters.csv"), + transformers=resources(f"osm/build/transformers.csv"), + substations=resources(f"osm/build/buses.csv"), + lines_geojson=resources(f"osm/geojson/lines.geojson"), + links_geojson=resources(f"osm/geojson/links.geojson"), + converters_geojson=resources(f"osm/geojson/converters.geojson"), + transformers_geojson=resources(f"osm/geojson/transformers.geojson"), + substations_geojson=resources(f"osm/geojson/buses.geojson"), + stations_polygon=resources(f"osm/geojson/stations_polygon.geojson"), + buses_polygon=resources(f"osm/geojson/buses_polygon.geojson"), log: logs("build_osm_network.log"), benchmark: @@ -879,8 +894,8 @@ if config["electricity"]["base_network"] == "tyndp": params: countries=config_provider("countries"), input: - reference_grid="data/tyndp_2024_bundle/Line data/ReferenceGrid_Electricity.xlsx", - buses="data/tyndp_2024_bundle/Nodes/LIST OF NODES.xlsx", + elec_reference_grid=rules.retrieve_tyndp.output.elec_reference_grid, + buses=rules.retrieve_tyndp.output.nodes, bidding_shapes=resources("bidding_zones.geojson"), output: lines=resources("tyndp/build/lines.csv"), diff --git a/rules/build_sector.smk b/rules/build_sector.smk index c7b0b08e8f..dde810fffd 100755 --- a/rules/build_sector.smk +++ b/rules/build_sector.smk @@ -8,7 +8,7 @@ rule build_population_layouts: input: nuts3_shapes=resources("nuts3_shapes.geojson"), - urban_percent="data/worldbank/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2.csv", + urban_percent=rules.retrieve_worldbank_urban_population.output["csv"], cutout=lambda w: input_cutout(w), output: pop_layout_total=resources("pop_layout_total.nc"), @@ -82,7 +82,7 @@ rule build_simplified_population_layouts: rule build_gas_network: input: - gas_network="data/gas_network/scigrid-gas/data/IGGIELGN_PipeSegments.geojson", + gas_network=rules.retrieve_gas_infrastructure_data.output["gas_network"], output: cleaned_gas_network=resources("gas_network.csv"), resources: @@ -98,8 +98,8 @@ rule build_gas_network: rule build_gas_input_locations: input: gem="data/gem/Europe-Gas-Tracker-2024-05.xlsx", - entry="data/gas_network/scigrid-gas/data/IGGIELGN_BorderPoints.geojson", - storage="data/gas_network/scigrid-gas/data/IGGIELGN_Storages.geojson", + entry=rules.retrieve_gas_infrastructure_data.output["entry"], + storage=rules.retrieve_gas_infrastructure_data.output["storage"], regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), regions_offshore=resources("regions_offshore_base_s_{clusters}.geojson"), output: @@ -283,7 +283,7 @@ rule build_dh_areas: ), countries=config_provider("countries"), input: - dh_areas="data/dh_areas.gpkg", + dh_areas=rules.retrieve_dh_areas.output["dh_areas"], regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), output: dh_areas=resources("dh_areas_base_s_{clusters}.geojson"), @@ -316,9 +316,11 @@ rule build_geothermal_heat_potential: "ignore_missing_regions", ), input: - isi_heat_potentials="data/isi_heat_utilisation_potentials.xlsx", + isi_heat_potentials=rules.retrieve_geothermal_heat_utilisation_potentials.output[ + "isi_heat_potentials" + ], regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), - lau_regions="data/lau_regions.zip", + lau_regions=rules.retrieve_lau_regions.output["zip"], output: heat_source_power=resources( "heat_source_power_geothermal_base_s_{clusters}.csv" @@ -385,14 +387,8 @@ rule build_ates_potentials: ), countries=config_provider("countries"), input: - aquifer_shapes_shp="data/bgr/ihme1500_aquif_ec4060_v12_poly.shp", - aquifer_shapes_shx="data/bgr/ihme1500_aquif_ec4060_v12_poly.shx", - aquifer_shapes_dbf="data/bgr/ihme1500_aquif_ec4060_v12_poly.dbf", - aquifer_shapes_cpg="data/bgr/ihme1500_aquif_ec4060_v12_poly.cpg", - aquifer_shapes_prj="data/bgr/ihme1500_aquif_ec4060_v12_poly.prj", - aquifer_shapes_sbn="data/bgr/ihme1500_aquif_ec4060_v12_poly.sbn", - aquifer_shapes_sbx="data/bgr/ihme1500_aquif_ec4060_v12_poly.sbx", - dh_areas="data/dh_areas.gpkg", + aquifer_shapes_shp=rules.retrieve_aquifer_data_bgr.output["aquifer_shapes"][0], + dh_areas=resources("dh_areas_base_s_{clusters}.geojson"), regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), central_heating_forward_temperature_profiles=resources( "central_heating_forward_temperature_profiles_base_s_{clusters}_{planning_horizons}.nc" @@ -728,16 +724,6 @@ rule build_direct_heat_source_utilisation_profiles: "../scripts/build_direct_heat_source_utilisation_profiles.py" -def solar_thermal_cutout(wildcards): - c = config_provider("solar_thermal", "cutout")(wildcards) - if c == "default": - return CDIR.joinpath( - config_provider("atlite", "default_cutout")(wildcards) + ".nc" - ).as_posix() - else: - return CDIR.joinpath(c + ".nc").as_posix() - - rule build_solar_thermal_profiles: params: snapshots=config_provider("snapshots"), @@ -766,13 +752,13 @@ rule build_energy_totals: energy=config_provider("energy"), input: nuts3_shapes=resources("nuts3_shapes.geojson"), - co2="data/bundle/eea/UNFCCC_v23.csv", + co2=rules.retrieve_ghg_emissions.output["csv"], swiss="data/switzerland-new_format-all_years.csv", - swiss_transport="data/gr-e-11.03.02.01.01-cc.csv", - idees="data/jrc-idees-2021", + swiss_transport=f"{BFS_ROAD_VEHICLE_STOCK_DATASET['folder']}/vehicle_stock.csv", + idees=rules.retrieve_jrc_idees.output["directory"], district_heat_share="data/district_heat_share.csv", - eurostat="data/eurostat/Balances-April2023", - eurostat_households="data/eurostat/eurostat-household_energy_balances-february_2024.csv", + eurostat=rules.retrieve_eurostat_balances.output["directory"], + eurostat_households=rules.retrieve_eurostat_household_balances.output["csv"], output: transformation_output_coke=resources("transformation_output_coke.csv"), energy_name=resources("energy_totals.csv"), @@ -791,9 +777,31 @@ rule build_energy_totals: "../scripts/build_energy_totals.py" +if (COUNTRY_HDD_DATASET := dataset_version("country_hdd"))["source"] in ["build"]: + + # This rule uses one or multiple cutouts. + # To update the output files to include a new year, e.g. 2025 using an existing cutout, + # either create a new cutout covering the whole timespan or add another cutout that covers the additional year(s). + # E.g. cutouts=[, ] + rule build_country_hdd: + input: + cutouts=["cutouts/europe-1940-2024-era5.nc"], + country_shapes=resources("country_shapes.geojson"), + output: + era5_hdd=f"{COUNTRY_HDD_DATASET["folder"]}/era5-HDD-per-country.csv", + log: + logs("build_country_hdd.log"), + benchmark: + benchmarks("build_country_hdd") + conda: + "../envs/environment.yaml" + script: + "../scripts/build_country_hdd.py" + + rule build_heat_totals: input: - hdd="data/bundle/era5-HDD-per-country.csv", + hdd=f"{COUNTRY_HDD_DATASET["folder"]}/era5-HDD-per-country.csv", energy_totals=resources("energy_totals.csv"), output: heat_totals=resources("heat_totals.csv"), @@ -812,13 +820,13 @@ rule build_biomass_potentials: params: biomass=config_provider("biomass"), input: - enspreso_biomass="data/ENSPRESO_BIOMASS.xlsx", - eurostat="data/eurostat/Balances-April2023", - nuts2="data/nuts/NUTS_RG_03M_2013_4326_LEVL_2.geojson", + enspreso_biomass=rules.retrieve_enspreso_biomass.output["xlsx"], + eurostat=rules.retrieve_eurostat_balances.output["directory"], + nuts2=rules.retrieve_eu_nuts_2013.output["shapes_level_2"], regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), - nuts3_population=ancient("data/bundle/nama_10r_3popgdp.tsv.gz"), + nuts3_population=ancient(rules.retrieve_nuts3_population.output["gz"]), swiss_cantons=ancient("data/ch_cantons.csv"), - swiss_population=ancient("data/bundle/je-e-21.03.02.xls"), + swiss_population=rules.retrieve_bfs_gdp_and_population.output["xlsx"], country_shapes=resources("country_shapes.geojson"), output: biomass_potentials_all=resources( @@ -857,12 +865,12 @@ rule build_biomass_transport_costs: rule build_co2_sequestration_potentials: input: - storage_table="data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Storage_Units.csv", - storage_map="data/CO2JRC_OpenFormats/CO2Stop_Polygons Data/StorageUnits_March13.kml", - traps_table1="data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps.csv", - traps_table2="data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps_Temp.csv", - traps_table3="data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps1.csv", - traps_map="data/CO2JRC_OpenFormats/CO2Stop_Polygons Data/DaughterUnits_March13.kml", + storage_table=rules.retrieve_co2stop.output["storage_table"], + storage_map=rules.retrieve_co2stop.output["storage_map"], + traps_table1=rules.retrieve_co2stop.output["traps_table1"], + traps_table2=rules.retrieve_co2stop.output["traps_table2"], + traps_table3=rules.retrieve_co2stop.output["traps_table3"], + traps_map=rules.retrieve_co2stop.output["traps_map"], output: resources("co2_sequestration_potentials.geojson"), threads: 1 @@ -902,7 +910,7 @@ rule build_clustered_co2_sequestration_potentials: rule build_salt_cavern_potentials: input: - salt_caverns="data/bundle/h2_salt_caverns_GWh_per_sqkm.geojson", + salt_caverns=rules.retrieve_h2_salt_caverns.output["geojson"], regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), regions_offshore=resources("regions_offshore_base_s_{clusters}.geojson"), output: @@ -920,7 +928,7 @@ rule build_salt_cavern_potentials: rule build_ammonia_production: input: - usgs="data/myb1-2022-nitro-ert.xlsx", + usgs=rules.retrieve_nitrogen_statistics.output["xlsx"], output: ammonia_production=resources("ammonia_production.csv"), threads: 1 @@ -940,7 +948,7 @@ rule build_industry_sector_ratios: ammonia=config_provider("sector", "ammonia", default=False), input: ammonia_production=resources("ammonia_production.csv"), - idees="data/jrc-idees-2021", + idees=rules.retrieve_jrc_idees.output["directory"], output: industry_sector_ratios=resources("industry_sector_ratios.csv"), threads: 1 @@ -987,8 +995,8 @@ rule build_industrial_production_per_country: input: ch_industrial_production="data/ch_industrial_production_per_subsector.csv", ammonia_production=resources("ammonia_production.csv"), - jrc="data/jrc-idees-2021", - eurostat="data/eurostat/Balances-April2023", + eurostat=rules.retrieve_eurostat_balances.output["directory"], + jrc=rules.retrieve_jrc_idees.output["directory"], output: industrial_production_per_country=resources( "industrial_production_per_country.csv" @@ -1039,8 +1047,8 @@ rule build_industrial_distribution_key: input: regions_onshore=resources("regions_onshore_base_s_{clusters}.geojson"), clustered_pop_layout=resources("pop_layout_base_s_{clusters}.csv"), - hotmaps="data/Industrial_Database.csv", - gem_gspt="data/gem/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx", + hotmaps=rules.retrieve_hotmaps_industrial_sites.output["csv"], + gem_gspt=rules.retrieve_gem_steel_plant_tracker.output["xlsx"], ammonia="data/ammonia_plants.csv", cement_supplement="data/cement-plants-noneu.csv", refineries_supplement="data/refineries-noneu.csv", @@ -1125,7 +1133,7 @@ rule build_industrial_energy_demand_per_country_today: ammonia=config_provider("sector", "ammonia", default=False), input: transformation_output_coke=resources("transformation_output_coke.csv"), - jrc="data/jrc-idees-2021", + jrc=rules.retrieve_jrc_idees.output["directory"], industrial_production_per_country=resources( "industrial_production_per_country.csv" ), @@ -1217,7 +1225,7 @@ rule build_population_weighted_energy_totals: rule build_shipping_demand: input: - ports="data/attributed_ports.json", + ports=rules.retrieve_attributed_ports.output["json"], scope=resources("europe_shape.geojson"), regions=resources("regions_onshore_base_s_{clusters}.geojson"), demand=resources("energy_totals.csv"), @@ -1236,6 +1244,36 @@ rule build_shipping_demand: "../scripts/build_shipping_demand.py" +if MOBILITY_PROFILES_DATASET["source"] in ["build"]: + + rule build_mobility_profiles: + params: + sector=config_provider("sector"), + input: + zip_files=storage( + expand( + MOBILITY_PROFILES_DATASET["url"], + year=[2010, 2011, 2012, 2013, 2014], + street_type=["A", "B"], + ), + ), + output: + raw_files=directory(MOBILITY_PROFILES_DATASET["folder"] / "raw"), + kfz=MOBILITY_PROFILES_DATASET["folder"] / "kfz.csv", + pkw=MOBILITY_PROFILES_DATASET["folder"] / "pkw.csv", + threads: 1 + resources: + mem_mb=5000, + log: + logs("build_mobility_profiles.log"), + benchmark: + benchmarks("build_mobility_profiles") + conda: + "../envs/environment.yaml" + script: + "../scripts/build_mobility_profiles.py" + + rule build_transport_demand: params: snapshots=config_provider("snapshots"), @@ -1249,8 +1287,8 @@ rule build_transport_demand: "pop_weighted_energy_totals_s_{clusters}.csv" ), transport_data=resources("transport_data.csv"), - traffic_data_KFZ="data/bundle/emobility/KFZ__count", - traffic_data_Pkw="data/bundle/emobility/Pkw__count", + traffic_data_KFZ=f"{MOBILITY_PROFILES_DATASET["folder"]}/kfz.csv", + traffic_data_Pkw=f"{MOBILITY_PROFILES_DATASET["folder"]}/pkw.csv", temp_air_total=resources("temp_air_total_base_s_{clusters}.nc"), output: transport_demand=resources("transport_demand_s_{clusters}.csv"), @@ -1549,7 +1587,7 @@ rule prepare_sector_network: else [] ), network=resources("networks/base_s_{clusters}_elec_{opts}.nc"), - eurostat="data/eurostat/Balances-April2023", + eurostat=rules.retrieve_eurostat_balances.output["directory"], pop_weighted_energy_totals=resources( "pop_weighted_energy_totals_s_{clusters}.csv" ), @@ -1564,7 +1602,7 @@ rule prepare_sector_network: resources("residential_heat_dsm_profile_total_base_s_{clusters}.csv"), ), co2_totals_name=resources("co2_totals.csv"), - co2="data/bundle/eea/UNFCCC_v23.csv", + co2=rules.retrieve_ghg_emissions.output["csv"], biomass_potentials=resources( "biomass_potentials_s_{clusters}_{planning_horizons}.csv" ), diff --git a/rules/cba.smk b/rules/cba.smk index 4b28ba5904..ca8d06a1a2 100644 --- a/rules/cba.smk +++ b/rules/cba.smk @@ -7,26 +7,32 @@ import pandas as pd from scripts.cba._helpers import filter_projects_by_specs from scripts._helpers import fill_wildcards +from shutil import unpack_archive, copy2 wildcard_constraints: cba_project=r"(s|t)\d+", -rule retrieve_tyndp_cba_projects: - params: - # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/CBA_projects.zip", - source="CBA project explorer", - input: - "data/tyndp_2024_bundle", - output: - dir=directory("data/tyndp_2024_bundle/cba_projects"), - log: - "logs/retrieve_tyndp_cba_projects", - retries: 2 - script: - "../scripts/sb/retrieve_additional_tyndp_data.py" +if (CBA_PROJECTS_DATASET := dataset_version("tyndp_cba_projects"))["source"] in [ + "archive" +]: + + rule retrieve_tyndp_cba_projects: + params: + source="CBA project explorer", + input: + # TODO Integrate into Zenodo tyndp data bundle + zip_file=storage(CBA_PROJECTS_DATASET["url"]), + dir=rules.retrieve_tyndp.output.dir, + output: + dir=directory(CBA_PROJECTS_DATASET["folder"]), + log: + "logs/retrieve_tyndp_cba_projects", + run: + copy2(input["zip_file"], output["dir"] + ".zip") + unpack_archive(output["dir"] + ".zip", output["dir"]) + os.remove(output["dir"] + ".zip") # read in transmission and storage projects from excel sheets @@ -39,7 +45,7 @@ def input_clustered_network(w): checkpoint clean_projects: input: - dir="data/tyndp_2024_bundle/cba_projects", + dir=rules.retrieve_tyndp_cba_projects.output.dir, network=input_clustered_network, output: transmission_projects=resources("cba/transmission_projects.csv"), diff --git a/rules/collect.smk b/rules/collect.smk index 6b5c0c7094..a98629db86 100644 --- a/rules/collect.smk +++ b/rules/collect.smk @@ -83,23 +83,42 @@ rule solve_sector_networks_perfect: input: expand( RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-costs-all_{planning_horizons}.pdf", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-costs-all_{planning_horizons}.pdf", **config["scenario"], run=config["run"]["name"], ), +def balance_map_paths(kind, w): + """ + kind = "static" or "interactive" + """ + cfg_key = "balance_map" if kind == "static" else "balance_map_interactive" + + return expand( + RESULTS + + f"maps/{kind}/base_s_{{clusters}}_{{opts}}_{{sector_opts}}_{{planning_horizons}}" + f"-balance_map_{{carrier}}.{'pdf'if kind== 'static' else 'html'}", + **config["scenario"], + run=config["run"]["name"], + carrier=config_provider("plotting", cfg_key, "bus_carriers")(w), + ) + + rule plot_balance_maps: input: - lambda w: expand( - ( - RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-balance_map_{carrier}.pdf" - ), - **config["scenario"], - run=config["run"]["name"], - carrier=config_provider("plotting", "balance_map", "bus_carriers")(w), - ), + static=lambda w: balance_map_paths("static", w), + interactive=lambda w: balance_map_paths("interactive", w), + + +rule plot_balance_maps_static: + input: + lambda w: balance_map_paths("static", w), + + +rule plot_balance_maps_interactive: + input: + lambda w: balance_map_paths("interactive", w), rule plot_power_networks_clustered: diff --git a/rules/common.smk b/rules/common.smk index e791c33215..9a861d8174 100644 --- a/rules/common.smk +++ b/rules/common.smk @@ -8,17 +8,15 @@ from functools import partial, lru_cache import os, sys, glob import requests -from tenacity import ( - retry as tenacity_retry, - stop_after_attempt, - wait_exponential, - retry_if_exception_type, -) + + +import pandas as pd +import json path = workflow.source_path("../scripts/_helpers.py") sys.path.insert(0, os.path.dirname(path)) -from scripts._helpers import validate_checksum, update_config_from_wildcards +from scripts._helpers import update_config_from_wildcards from snakemake.utils import update_config @@ -86,6 +84,101 @@ def config_provider(*keys, default=None): return partial(static_getter, keys=keys, default=default) +@lru_cache +def load_data_versions(file_path): + data_versions = pd.read_csv( + file_path, + dtype=str, + na_filter=False, + delimiter=",", + comment="#", + ) + + # Turn 'tags' column from string representation of list to individual columns + data_versions["tags"] = data_versions["tags"].apply( + lambda x: json.loads(x.replace("'", '"')) + ) + exploded = data_versions.explode("tags") + dummies = pd.get_dummies(exploded["tags"], dtype=bool) + tags_matrix = dummies.groupby(dummies.index).max() + data_versions = data_versions.join(tags_matrix) + + return data_versions + + +def dataset_version( + name: str, + all_versions: bool = False, +) -> pd.Series | pd.DataFrame: + """ + Return the dataset version information and url for a given dataset name. + + The dataset name is used to determine the source and version of the dataset from the configuration. + Then the 'data/versions.csv' file is queried to find the matching dataset entry. + + Parameters: + name: str + The name of the dataset to retrieve version information for. + all_versions: bool + Whether to return all supported versions instead of the configured one. + + Returns + ------- + pd.Series | pd.DataFrame + If `all_versions=False` (default), returns a pandas Series containing the dataset + version information for the configured version, including source, version, tags, and URL. + If `all_versions=True`, returns a pandas DataFrame containing version information + for all versions of the dataset. + """ + + dataset_config = config["data"][ + name + ] # TODO as is right now, it is not compatible with config_provider + + # To use PyPSA-Eur as a snakemake module, the path to the versions.csv file needs to be + # registered relative to the current file with Snakemake: + fp = workflow.source_path("../data/versions.csv") + data_versions = load_data_versions(fp) + + dataset = data_versions.loc[ + (data_versions["dataset"] == name) + & (data_versions["source"] == dataset_config["source"]) + & (data_versions["supported"]) # Limit to supported versions only + ] + + if dataset.empty: + raise ValueError( + f"Dataset '{name}' with source '{dataset_config['source']}' not found in data/versions.csv." + ) + + if all_versions: + return dataset + + dataset = dataset.loc[ + ( + dataset["version"] == str(dataset_config["version"]) + if "latest" != dataset_config["version"] + else True + ) + & (dataset["latest"] if "latest" == dataset_config["version"] else True) + ] + + if dataset.empty: + raise ValueError( + f"Dataset '{name}' with source '{dataset_config['source']}' for '{dataset_config['version']}' not found in data/versions.csv." + ) + + # Return single-row DataFrame as a Series + dataset = dataset.squeeze() + + # Generate output folder path in the `data` directory + dataset["folder"] = Path( + "data", name, dataset["source"], dataset["version"] + ).as_posix() + + return dataset + + def solver_threads(w): solver_options = config_provider("solving", "solver_options")(w) option_set = config_provider("solving", "solver", "options")(w) @@ -121,28 +214,6 @@ def input_custom_extra_functionality(w): return [] -def has_internet_access(url: str = "https://www.google.org", timeout: int = 5) -> bool: - """ - Checks if internet connection is available by sending a HEAD request - to a reliable server like Google. - - Parameters: - - url (str): The URL to check for internet connection. Default is Google. - - timeout (int | float): The maximum time (in seconds) the request should wait. - - Returns: - - bool: True if the internet is available, otherwise False. - """ - # Send a HEAD request to avoid fetching full response - response = requests.head(url, timeout=timeout, allow_redirects=True) - # Raise HTTPError for transient errors - # 429: Too Many Requests (rate limiting) - # 500, 502, 503, 504: Server errors - if response.status_code in (429, 500, 502, 503, 504): - response.raise_for_status() - return response.status_code == 200 - - def solved_previous_horizon(w): planning_horizons = config_provider("scenario", "planning_horizons")(w) i = planning_horizons.index(int(w.planning_horizons)) @@ -157,12 +228,16 @@ def solved_previous_horizon(w): def input_cutout(wildcards, cutout_names="default"): + + cutouts_path = dataset_version("cutout")["folder"] + if cutout_names == "default": cutout_names = config_provider("atlite", "default_cutout")(wildcards) + if isinstance(cutout_names, list): - return [CDIR.joinpath(cn + ".nc").as_posix() for cn in cutout_names] + return [f"{cutouts_path}/{cn}.nc" for cn in cutout_names] else: - return CDIR.joinpath(cutout_names + ".nc").as_posix() + return f"{cutouts_path}/{cutout_names}.nc" def input_conventional(w): diff --git a/rules/development.smk b/rules/development.smk index 9333c13e6e..fb977cf831 100644 --- a/rules/development.smk +++ b/rules/development.smk @@ -2,22 +2,25 @@ # # SPDX-License-Identifier: MIT -if config["electricity"]["base_network"] == "osm-raw": +if ( + config["electricity"]["base_network"] == "osm" + and config["data"]["osm"]["source"] == "build" +): rule prepare_osm_network_release: params: line_types=config["lines"]["types"], input: base_network=resources("networks/base.nc"), - stations_polygon=resources("osm-raw/build/geojson/stations_polygon.geojson"), - buses_polygon=resources("osm-raw/build/geojson/buses_polygon.geojson"), + stations_polygon=resources("osm/geojson/stations_polygon.geojson"), + buses_polygon=resources("osm/geojson/buses_polygon.geojson"), output: - buses=resources("osm-raw/release/buses.csv"), - converters=resources("osm-raw/release/converters.csv"), - lines=resources("osm-raw/release/lines.csv"), - links=resources("osm-raw/release/links.csv"), - transformers=resources("osm-raw/release/transformers.csv"), - map=resources("osm-raw/release/map.html"), + buses=resources("osm/upstream/release/buses.csv"), + converters=resources("osm/upstream/release/converters.csv"), + lines=resources("osm/upstream/release/lines.csv"), + links=resources("osm/upstream/release/links.csv"), + transformers=resources("osm/upstream/release/transformers.csv"), + map=resources("osm/upstream/release/map.html"), log: logs("prepare_osm_network_release.log"), benchmark: diff --git a/rules/postprocess.smk b/rules/postprocess.smk index 699cf89574..fca91445f9 100644 --- a/rules/postprocess.smk +++ b/rules/postprocess.smk @@ -6,6 +6,22 @@ if config["foresight"] != "perfect": + rule plot_base_network: + params: + plotting=config_provider("plotting"), + input: + network=resources("networks/base.nc"), + regions_onshore=resources("regions_onshore.geojson"), + output: + map=resources("maps/power-network.pdf"), + threads: 1 + resources: + mem_mb=4000, + benchmark: + benchmarks("plot_base_network/base") + script: + "../scripts/plot_base_network.py" + rule plot_power_network_clustered: params: plotting=config_provider("plotting"), @@ -32,7 +48,7 @@ if config["foresight"] != "perfect": regions=resources("regions_onshore_base_s_{clusters}.geojson"), output: map=RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-costs-all_{planning_horizons}.pdf", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-costs-all_{planning_horizons}.pdf", threads: 2 resources: mem_mb=10000, @@ -63,7 +79,7 @@ if config["foresight"] != "perfect": ), output: map=RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-h2_network_{planning_horizons}.pdf", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-h2_network_{planning_horizons}.pdf", threads: 2 resources: mem_mb=10000, @@ -87,7 +103,7 @@ if config["foresight"] != "perfect": regions=resources("regions_onshore_base_s_{clusters}.geojson"), output: map=RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-ch4_network_{planning_horizons}.pdf", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-ch4_network_{planning_horizons}.pdf", threads: 2 resources: mem_mb=10000, @@ -105,13 +121,14 @@ if config["foresight"] != "perfect": rule plot_balance_map: params: plotting=config_provider("plotting"), + settings=lambda w: config_provider("plotting", "balance_map", w.carrier), input: network=RESULTS + "networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc", regions=resources("regions_onshore_base_s_{clusters}.geojson"), output: RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-balance_map_{carrier}.pdf", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-balance_map_{carrier}.pdf", threads: 1 resources: mem_mb=8000, @@ -126,6 +143,34 @@ if config["foresight"] != "perfect": script: "../scripts/plot_balance_map.py" + rule plot_balance_map_interactive: + params: + settings=lambda w: config_provider( + "plotting", "balance_map_interactive", w.carrier + ), + input: + network=RESULTS + + "networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc", + regions=resources("regions_onshore_base_s_{clusters}.geojson"), + output: + RESULTS + + "maps/interactive/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-balance_map_{carrier}.html", + threads: 1 + resources: + mem_mb=8000, + log: + RESULTS + + "logs/plot_balance_map_interactive/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}_{carrier}.log", + benchmark: + ( + RESULTS + + "benchmarks/plot_interactive_map/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}_{carrier}" + ) + conda: + "../envs/environment.yaml" + script: + "../scripts/plot_balance_map_interactive.py" + rule plot_heat_source_map: params: plotting=config_provider("plotting"), @@ -150,9 +195,9 @@ if config["foresight"] != "perfect": ), output: temp_map=RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_{carrier}.html", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_temperature_map_{carrier}.html", energy_map=RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_energy_map_{carrier}.html", + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}-heat_source_energy_map_{carrier}.html", threads: 1 resources: mem_mb=150000, @@ -173,7 +218,7 @@ if config["foresight"] == "perfect": def output_map_year(w): return { f"map_{year}": RESULTS - + "maps/base_s_{clusters}_{opts}_{sector_opts}-costs-all_" + + "maps/static/base_s_{clusters}_{opts}_{sector_opts}-costs-all_" + f"{year}.pdf" for year in config_provider("scenario", "planning_horizons")(w) } @@ -389,8 +434,8 @@ rule plot_summary: costs=RESULTS + "csvs/costs.csv", energy=RESULTS + "csvs/energy.csv", balances=RESULTS + "csvs/energy_balance.csv", - eurostat="data/eurostat/Balances-April2023", - co2="data/bundle/eea/UNFCCC_v23.csv", + eurostat=rules.retrieve_eurostat_balances.output["directory"], + co2=rules.retrieve_ghg_emissions.output["csv"], output: costs=RESULTS + "graphs/costs.svg", energy=RESULTS + "graphs/energy.svg", diff --git a/rules/retrieve.smk b/rules/retrieve.smk index 062d640721..ed471c97b8 100755 --- a/rules/retrieve.smk +++ b/rules/retrieve.smk @@ -5,9 +5,9 @@ import os import requests -from datetime import datetime, timedelta -from shutil import move, unpack_archive -from shutil import copy2 as shcopy2 +from datetime import datetime +from dateutil.relativedelta import relativedelta +from shutil import move, unpack_archive, rmtree, copy2 from zipfile import ZipFile @@ -15,6 +15,7 @@ from zipfile import ZipFile # and the special storage plugin for accessing Zenodo files storage: provider="http", + keep_local=True, retries=3, @@ -22,334 +23,514 @@ storage cached_http: provider="cached-http", -if config["enable"].get("retrieve", "auto") == "auto": - config["enable"]["retrieve"] = has_internet_access() - -if config["enable"]["retrieve"] is False: - print("Datafile downloads disabled in config[retrieve] or no internet access.") - - -if config["enable"]["retrieve"] and config["enable"].get("retrieve_databundle", True): - datafiles = [ - "je-e-21.03.02.xls", - "nama_10r_3popgdp.tsv.gz", - "corine/g250_clc06_V18_5.tif", - "eea/UNFCCC_v23.csv", - "emobility/KFZ__count", - "emobility/Pkw__count", - "h2_salt_caverns_GWh_per_sqkm.geojson", - "natura/natura.tiff", - "gebco/GEBCO_2014_2D.nc", - "GDP_per_capita_PPP_1990_2015_v2.nc", - "ppp_2019_1km_Aggregated.tif", - "era5-HDD-per-country.csv", - "era5-runoff-per-country.csv", - ] +if (EUROSTAT_BALANCES_DATASET := dataset_version("eurostat_balances"))["source"] in [ + "primary", + "archive", +]: + + rule retrieve_eurostat_balances: + input: + zip_file=storage(EUROSTAT_BALANCES_DATASET["url"]), + output: + zip_file=f"{EUROSTAT_BALANCES_DATASET['folder']}/balances.zip", + directory=directory(EUROSTAT_BALANCES_DATASET["folder"]), + run: + copy2(input["zip_file"], output["zip_file"]) + unpack_archive(output["zip_file"], output["directory"]) - rule retrieve_databundle: + +if ( + EUROSTAT_HOUSEHOLD_BALANCES_DATASET := dataset_version( + "eurostat_household_balances" + ) +)["source"] in [ + "primary", + "archive", +]: + + rule retrieve_eurostat_household_balances: + input: + csv=storage(EUROSTAT_HOUSEHOLD_BALANCES_DATASET["url"]), output: - expand("data/bundle/{file}", file=datafiles), + csv=f"{EUROSTAT_HOUSEHOLD_BALANCES_DATASET['folder']}/nrg_d_hhq.csv", + run: + copy2(input["csv"], output["csv"]) + + +if (NUTS3_POPULATION_DATASET := dataset_version("nuts3_population"))["source"] in [ + "primary", + "archive", +]: + + rule retrieve_nuts3_population: + input: + gz=storage(NUTS3_POPULATION_DATASET["url"]), + output: + gz=f"{NUTS3_POPULATION_DATASET['folder']}/nama_10r_3popgdp.tsv.gz", + retries: 2 + run: + copy2(input["gz"], output["gz"]) + + +if (CORINE_DATASET := dataset_version("corine"))["source"] in ["archive"]: + + rule retrieve_corine: + input: + zip_file=storage(CORINE_DATASET["url"]), + output: + zip_file=f"{CORINE_DATASET['folder']}/corine.zip", + tif_file=f"{CORINE_DATASET['folder']}/corine.tif", + run: + output_folder = Path(output["zip_file"]).parent + unpack_archive(input["zip_file"], output_folder) + copy2(input["zip_file"], output["zip_file"]) + copy2( + f"{CORINE_DATASET['folder']}/corine/g250_clc06_V18_5.tif", + output["tif_file"], + ) + +elif (CORINE_DATASET := dataset_version("corine"))["source"] in ["primary"]: + + rule retrieve_corine: + params: + apikey=os.environ.get("CORINE_API_TOKEN", config["secrets"]["corine"]), + output: + zip=f"{CORINE_DATASET['folder']}/corine.zip", + tif_file=f"{CORINE_DATASET['folder']}/corine.tif", log: - "logs/retrieve_databundle.log", - benchmark: - "benchmarks/retrieve_databundle" + logs("retrieve_corine_primary.log"), resources: mem_mb=1000, retries: 2 script: - "../scripts/retrieve_databundle.py" + "../scripts/retrieve_corine_dataset_primary.py" + + +if (H2_SALT_CAVERNS_DATASET := dataset_version("h2_salt_caverns"))["source"] in [ + "archive" +]: - rule retrieve_eurostat_data: + rule retrieve_h2_salt_caverns: + input: + geojson=storage(H2_SALT_CAVERNS_DATASET["url"]), output: - directory("data/eurostat/Balances-April2023"), - log: - "logs/retrieve_eurostat_data.log", + geojson=f"{H2_SALT_CAVERNS_DATASET['folder']}/h2_salt_caverns_GWh_per_sqkm.geojson", retries: 2 - script: - "../scripts/retrieve_eurostat_data.py" + run: + copy2(input["geojson"], output["geojson"]) - rule retrieve_jrc_idees: + +if (GDP_PER_CAPITA_DATASET := dataset_version("gdp_per_capita"))["source"] in [ + "archive" +]: + + rule retrieve_gdp_per_capita: + input: + gdp=storage(GDP_PER_CAPITA_DATASET["url"]), output: - directory("data/jrc-idees-2021"), - log: - "logs/retrieve_jrc_idees.log", + gdp=f"{GDP_PER_CAPITA_DATASET['folder']}/GDP_per_capita_PPP_1990_2015_v2.nc", retries: 2 - script: - "../scripts/retrieve_jrc_idees.py" + run: + copy2(input["gdp"], output["gdp"]) - rule retrieve_eurostat_household_data: + +if (POPULATION_COUNT_DATASET := dataset_version("population_count"))["source"] in [ + "archive", + "primary", +]: + + rule retrieve_population_count: + input: + tif=storage(POPULATION_COUNT_DATASET["url"]), output: - "data/eurostat/eurostat-household_energy_balances-february_2024.csv", - log: - "logs/retrieve_eurostat_household_data.log", + tif=f"{POPULATION_COUNT_DATASET['folder']}/ppp_2019_1km_Aggregated.tif", retries: 2 - script: - "../scripts/retrieve_eurostat_household_data.py" + run: + copy2(input["tif"], output["tif"]) + + if POPULATION_COUNT_DATASET["source"] == "primary": + import xarray as xr + import rioxarray as rio + + file_path = output["tif"] + ds = xr.open_dataarray(file_path) + ds_reqd = ds.sel(x=slice(15.55, 40.41), y=slice(52.49, 41.72)) + ds_reqd.rio.to_raster(file_path) + -if config["enable"]["retrieve"]: +if (GHG_EMISSIONS_DATASET := dataset_version("ghg_emissions"))["source"] in [ + "archive", + "primary", +]: - rule retrieve_nuts_2013_shapes: + rule retrieve_ghg_emissions: input: - shapes=storage( - "https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ref-nuts-2013-03m.geojson.zip" + ghg=storage(GHG_EMISSIONS_DATASET["url"]), + output: + csv=f"{GHG_EMISSIONS_DATASET['folder']}/UNFCCC_v23.csv", + zip=( + f"{GHG_EMISSIONS_DATASET['folder']}/UNFCCC_v23.csv.zip" + if GHG_EMISSIONS_DATASET["source"] == "primary" + else [] + ), + directory=( + directory(GHG_EMISSIONS_DATASET["folder"]) + if GHG_EMISSIONS_DATASET["source"] == "primary" + else [] ), + retries: 2 + run: + if GHG_EMISSIONS_DATASET["source"] == "primary": + copy2(input["ghg"], output["zip"]) + unpack_archive(output["zip"], GHG_EMISSIONS_DATASET["folder"]) + else: + copy2(input["ghg"], output["csv"]) + + + +if (GEBCO_DATASET := dataset_version("gebco"))["source"] in ["archive", "primary"]: + + rule retrieve_gebco: + input: + storage(GEBCO_DATASET["url"]), output: - shapes_level_3="data/nuts/NUTS_RG_03M_2013_4326_LEVL_3.geojson", - shapes_level_2="data/nuts/NUTS_RG_03M_2013_4326_LEVL_2.geojson", - params: - zip_file="ref-nuts-2013-03m.geojson.zip", + gebco=f"{GEBCO_DATASET['folder']}/GEBCO_2014_2D.nc", + zip_file=( + f"{GEBCO_DATASET['folder']}/GEBCO_2014.zip" + if GEBCO_DATASET["source"] == "primary" + else [] + ), run: - # Copy file and ensure proper permissions - shcopy2(input.shapes, params.zip_file) + if GEBCO_DATASET["source"] == "primary": + import xarray as xr + + copy2(input[0], output["zip_file"]) + + output_folder = Path(output["zip_file"]).parent + unpack_archive(output["zip_file"], output_folder) - with ZipFile(params.zip_file, "r") as zip_ref: - for level in ["LEVL_3", "LEVL_2"]: - filename = f"NUTS_RG_03M_2013_4326_{level}.geojson" - zip_ref.extract(filename, Path(output.shapes_level_3).parent) - extracted_file = Path(output.shapes_level_3).parent / filename - extracted_file.rename( - getattr(output, f"shapes_level_{level[-1]}") - ) - os.remove(params.zip_file) + # Limit extent to Europe to reduce file size + ds = xr.open_dataset(output["gebco"]) + ds = ds.sel(lat=slice(32, 73), lon=slice(-21, 45)) + ds.to_netcdf(output["gebco"]) + else: + copy2(input[0], output["gebco"]) -if config["enable"]["retrieve"]: +if (ATTRIBUTED_PORTS_DATASET := dataset_version("attributed_ports"))["source"] in [ + "archive", + "primary", +]: - rule retrieve_nuts_2021_shapes: + rule retrieve_attributed_ports: input: - shapes=storage( - "https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ref-nuts-2021-01m.geojson.zip" - ), + json=storage(ATTRIBUTED_PORTS_DATASET["url"]), output: - shapes_level_3="data/nuts/NUTS_RG_01M_2021_4326_LEVL_3.geojson", - shapes_level_2="data/nuts/NUTS_RG_01M_2021_4326_LEVL_2.geojson", - shapes_level_1="data/nuts/NUTS_RG_01M_2021_4326_LEVL_1.geojson", - shapes_level_0="data/nuts/NUTS_RG_01M_2021_4326_LEVL_0.geojson", - params: - zip_file="ref-nuts-2021-01m.geojson.zip", + json=f"{ATTRIBUTED_PORTS_DATASET['folder']}/attributed_ports.json", + retries: 2 run: - # Copy file and ensure proper permissions - shcopy2(input.shapes, params.zip_file) + copy2(input["json"], output["json"]) - with ZipFile(params.zip_file, "r") as zip_ref: - for level in ["LEVL_3", "LEVL_2", "LEVL_1", "LEVL_0"]: - filename = f"NUTS_RG_01M_2021_4326_{level}.geojson" - zip_ref.extract(filename, Path(output.shapes_level_0).parent) - extracted_file = Path(output.shapes_level_0).parent / filename - extracted_file.rename( - getattr(output, f"shapes_level_{level[-1]}") - ) - os.remove(params.zip_file) +if (JRC_IDEES_DATASET := dataset_version("jrc_idees"))["source"] in [ + "primary", + "archive", +]: + rule retrieve_jrc_idees: + input: + zip_file=storage(JRC_IDEES_DATASET["url"]), + output: + zip_file=f"{JRC_IDEES_DATASET['folder']}/jrc_idees.zip", + directory=directory(JRC_IDEES_DATASET["folder"]), + run: + copy2(input["zip_file"], output["zip_file"]) + output_folder = Path(output["zip_file"]).parent + unpack_archive(output["zip_file"], output_folder) -if config["enable"]["retrieve"]: - rule retrieve_bidding_zones: +if (EU_NUTS2013_DATASET := dataset_version("eu_nuts2013"))["source"] in [ + "primary", + "archive", +]: + + rule retrieve_eu_nuts_2013: + input: + shapes=storage(EU_NUTS2013_DATASET["url"]), output: - file_entsoepy="data/busshapes/bidding_zones_entsoepy.geojson", - file_electricitymaps="data/busshapes/bidding_zones_electricitymaps.geojson", - log: - "logs/retrieve_bidding_zones.log", - resources: - mem_mb=1000, - retries: 2 - script: - "../scripts/retrieve_bidding_zones.py" + zip_file=f"{EU_NUTS2013_DATASET['folder']}/ref-nuts-2013-03m.geojson.zip", + folder=directory( + f"{EU_NUTS2013_DATASET['folder']}/ref-nuts-2013-03m.geojson" + ), + shapes_level_3=f"{EU_NUTS2013_DATASET['folder']}/ref-nuts-2013-03m.geojson/NUTS_RG_03M_2013_4326_LEVL_3.geojson", + shapes_level_2=f"{EU_NUTS2013_DATASET['folder']}/ref-nuts-2013-03m.geojson/NUTS_RG_03M_2013_4326_LEVL_2.geojson", + run: + copy2(input["shapes"], output["zip_file"]) + unpack_archive(output["zip_file"], Path(output.shapes_level_3).parent) -if config["enable"]["retrieve"] and config["enable"].get("retrieve_cutout", True): +if (EU_NUTS2021_DATASET := dataset_version("eu_nuts2021"))["source"] in [ + "primary", + "archive", +]: - rule retrieve_cutout: + rule retrieve_eu_nuts_2021: input: - storage( - "https://zenodo.org/records/15349674/files/{cutout}.nc", + shapes=storage(EU_NUTS2021_DATASET["url"]), + output: + zip_file=f"{EU_NUTS2021_DATASET['folder']}/ref-nuts-2021-01m.geojson.zip", + folder=directory( + f"{EU_NUTS2021_DATASET['folder']}/ref-nuts-2021-01m.geojson" ), + shapes_level_3=f"{EU_NUTS2021_DATASET['folder']}/ref-nuts-2021-01m.geojson/NUTS_RG_01M_2021_4326_LEVL_3.geojson", + shapes_level_2=f"{EU_NUTS2021_DATASET['folder']}/ref-nuts-2021-01m.geojson/NUTS_RG_01M_2021_4326_LEVL_2.geojson", + shapes_level_1=f"{EU_NUTS2021_DATASET['folder']}/ref-nuts-2021-01m.geojson/NUTS_RG_01M_2021_4326_LEVL_1.geojson", + shapes_level_0=f"{EU_NUTS2021_DATASET['folder']}/ref-nuts-2021-01m.geojson/NUTS_RG_01M_2021_4326_LEVL_0.geojson", + run: + copy2(input["shapes"], output["zip_file"]) + unpack_archive(output["zip_file"], Path(output.shapes_level_3).parent) + + +rule retrieve_bidding_zones: + output: + file_entsoepy="data/busshapes/bidding_zones_entsoepy.geojson", + file_electricitymaps="data/busshapes/bidding_zones_electricitymaps.geojson", + log: + "logs/retrieve_bidding_zones.log", + resources: + mem_mb=1000, + retries: 2 + script: + "../scripts/retrieve_bidding_zones.py" + + +if (CUTOUT_DATASET := dataset_version("cutout"))["source"] in [ + "archive", +]: + + rule retrieve_cutout: + input: + storage(CUTOUT_DATASET["url"] + "/files/{cutout}.nc"), output: - CDIR.joinpath("{cutout}.nc").as_posix(), + CUTOUT_DATASET["folder"] + "/{cutout}.nc", log: - Path("logs").joinpath(CDIR, "retrieve_cutout_{cutout}.log").as_posix(), + "logs/retrieve_cutout/{cutout}.log", resources: mem_mb=5000, retries: 2 run: - move(input[0], output[0]) - validate_checksum(output[0], input[0]) + copy2(input[0], output[0]) -if config["enable"]["retrieve"] and config["enable"].get("retrieve_cost_data", True): +if (COUNTRY_RUNOFF_DATASET := dataset_version("country_runoff"))["source"] in [ + "archive" +]: - rule retrieve_cost_data: - params: - version=config_provider("costs", "version"), + rule retrieve_country_runoff: + input: + storage(COUNTRY_RUNOFF_DATASET["url"]), output: - resources("costs_{planning_horizons}.csv"), - log: - logs("retrieve_cost_data_{planning_horizons}.log"), - resources: - mem_mb=1000, - retries: 2 - script: - "../scripts/retrieve_cost_data.py" + era5_runoff=f"{COUNTRY_RUNOFF_DATASET["folder"]}/era5-runoff-per-country.csv", + run: + copy2(input[0], output[0]) -if config["enable"]["retrieve"]: - datafiles = [ - "IGGIELGN_LNGs.geojson", - "IGGIELGN_BorderPoints.geojson", - "IGGIELGN_Productions.geojson", - "IGGIELGN_Storages.geojson", - "IGGIELGN_PipeSegments.geojson", - ] +if (COUNTRY_HDD_DATASET := dataset_version("country_hdd"))["source"] in ["archive"]: - rule retrieve_gas_infrastructure_data: + rule retrieve_country_hdd: + input: + storage(COUNTRY_HDD_DATASET["url"]), output: - expand("data/gas_network/scigrid-gas/data/{files}", files=datafiles), - log: - "logs/retrieve_gas_infrastructure_data.log", - retries: 2 - script: - "../scripts/retrieve_gas_infrastructure_data.py" + era5_runoff=f"{COUNTRY_HDD_DATASET["folder"]}/era5-HDD-per-country.csv", + run: + copy2(input[0], output[0]) -if config["enable"]["retrieve"]: +if (COSTS_DATASET := dataset_version("costs"))["source"] in [ + "primary", +]: - rule retrieve_electricity_demand: - params: - versions=["2019-06-05", "2020-10-06"], + rule retrieve_cost_data: + input: + costs=storage(COSTS_DATASET["url"] + "/costs_{planning_horizons}.csv"), output: - "data/electricity_demand_raw.csv", - log: - "logs/retrieve_electricity_demand.log", - resources: - mem_mb=5000, - retries: 2 - script: - "../scripts/retrieve_electricity_demand.py" + costs=COSTS_DATASET["folder"] + "/costs_{planning_horizons}.csv", + run: + copy2(input["costs"], output["costs"]) + + +if (POWERPLANTS_DATASET := dataset_version("powerplants"))["source"] in [ + "primary", +]: + rule retrieve_powerplants: + input: + powerplants=storage(POWERPLANTS_DATASET["url"]), + output: + powerplants=f"{POWERPLANTS_DATASET['folder']}/powerplants.csv", + run: + copy2(input["powerplants"], output["powerplants"]) + + +if (SCIGRID_GAS_DATASET := dataset_version("scigrid_gas"))["source"] in [ + "primary", + "archive", +]: -if config["enable"]["retrieve"]: + rule retrieve_gas_infrastructure_data: + input: + zip_file=storage(SCIGRID_GAS_DATASET["url"]), + output: + zip_file=f"{SCIGRID_GAS_DATASET['folder']}/IGGIELGN.zip", + entry=f"{SCIGRID_GAS_DATASET['folder']}/data/IGGIELGN_BorderPoints.geojson", + storage=f"{SCIGRID_GAS_DATASET['folder']}/data/IGGIELGN_Storages.geojson", + gas_network=f"{SCIGRID_GAS_DATASET['folder']}/data/IGGIELGN_PipeSegments.geojson", + run: + copy2(input["zip_file"], output["zip_file"]) + output_folder = Path(output["zip_file"]).parent + unpack_archive(output["zip_file"], output_folder) + + +rule retrieve_electricity_demand: + params: + versions=["2019-06-05", "2020-10-06"], + output: + "data/electricity_demand_raw.csv", + log: + "logs/retrieve_electricity_demand.log", + resources: + mem_mb=5000, + retries: 2 + script: + "../scripts/retrieve_electricity_demand.py" + + +if ( + SYNTHETIC_ELECTRICITY_DEMAND_DATASET := dataset_version( + "synthetic_electricity_demand" + ) +)["source"] in [ + "primary", + "archive", +]: rule retrieve_synthetic_electricity_demand: input: - storage( - "https://zenodo.org/records/10820928/files/demand_hourly.csv", - ), + csv=storage(SYNTHETIC_ELECTRICITY_DEMAND_DATASET["url"]), output: - "data/load_synthetic_raw.csv", - log: - "logs/retrieve_synthetic_electricity_demand.log", - resources: - mem_mb=5000, + csv=f"{SYNTHETIC_ELECTRICITY_DEMAND_DATASET['folder']}/load_synthetic_raw.csv", retries: 2 run: - move(input[0], output[0]) + copy2(input["csv"], output["csv"]) -if config["enable"]["retrieve"]: +if (SHIP_RASTER_DATASET := dataset_version("ship_raster"))["source"] in [ + "archive", + "primary", +]: rule retrieve_ship_raster: input: - storage( - "https://zenodo.org/records/13757228/files/shipdensity_global.zip", - keep_local=True, - ), + zip_file=storage(SHIP_RASTER_DATASET["url"]), output: - "data/shipdensity_global.zip", + zip_file=f"{SHIP_RASTER_DATASET['folder']}/shipdensity_global.zip", log: "logs/retrieve_ship_raster.log", resources: mem_mb=5000, retries: 2 run: - move(input[0], output[0]) - validate_checksum(output[0], input[0]) + copy2(input["zip_file"], output["zip_file"]) -if config["enable"]["retrieve"]: +if (ENSPRESO_BIOMASS_DATASET := dataset_version("enspreso_biomass"))["source"] in [ + "primary", + "archive", +]: - rule retrieve_jrc_enspreso_biomass: + rule retrieve_enspreso_biomass: input: - storage( - "https://zenodo.org/records/10356004/files/ENSPRESO_BIOMASS.xlsx", - keep_local=True, - ), + xlsx=storage(ENSPRESO_BIOMASS_DATASET["url"]), output: - "data/ENSPRESO_BIOMASS.xlsx", + xlsx=f"{ENSPRESO_BIOMASS_DATASET['folder']}/ENSPRESO_BIOMASS.xlsx", retries: 1 run: - move(input[0], output[0]) + copy2(input["xlsx"], output["xlsx"]) -if config["enable"]["retrieve"]: +if (HOTMAPS_INDUSTRIAL_SITES := dataset_version("hotmaps_industrial_sites"))[ + "source" +] in [ + "primary", + "archive", +]: rule retrieve_hotmaps_industrial_sites: input: - storage( - "https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database/-/raw/master/data/Industrial_Database.csv", - keep_local=True, - ), + csv=storage(HOTMAPS_INDUSTRIAL_SITES["url"]), output: - "data/Industrial_Database.csv", + csv=f"{HOTMAPS_INDUSTRIAL_SITES['folder']}/Industrial_Database.csv", retries: 1 run: - move(input[0], output[0]) + copy2(input["csv"], output["csv"]) -if config["enable"]["retrieve"]: +if (NITROGEN_STATISTICS_DATASET := dataset_version("nitrogen_statistics"))[ + "source" +] in [ + "primary", + "archive", +]: - rule retrieve_usgs_ammonia_production: + rule retrieve_nitrogen_statistics: input: - storage( - "https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/myb1-2022-nitro-ert.xlsx" - ), + xlsx=storage(NITROGEN_STATISTICS_DATASET["url"]), output: - "data/myb1-2022-nitro-ert.xlsx", + xlsx=f"{NITROGEN_STATISTICS_DATASET['folder']}/nitro-ert.xlsx", retries: 1 run: - move(input[0], output[0]) + copy2(input["xlsx"], output["xlsx"]) -if config["enable"]["retrieve"]: +if (COPERNICUS_LAND_COVER_DATASET := dataset_version("copernicus_land_cover"))[ + "source" +] in ["primary", "archive"]: # Downloading Copernicus Global Land Cover for land cover and land use: # Website: https://land.copernicus.eu/global/products/lc rule download_copernicus_land_cover: input: - storage( - "https://zenodo.org/records/3939050/files/PROBAV_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif", - ), + tif=storage(COPERNICUS_LAND_COVER_DATASET["url"]), output: - "data/Copernicus_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif", + tif=f"{COPERNICUS_LAND_COVER_DATASET['folder']}/Copernicus_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif", run: - move(input[0], output[0]) - validate_checksum(output[0], input[0]) + copy2(input["tif"], output["tif"]) -if config["enable"]["retrieve"]: +if (LUISA_LAND_COVER_DATASET := dataset_version("luisa_land_cover"))["source"] in [ + "primary", + "archive", +]: # Downloading LUISA Base Map for land cover and land use: # Website: https://ec.europa.eu/jrc/en/luisa rule retrieve_luisa_land_cover: input: - storage( - "https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/LUISA/EUROPE/Basemaps/LandUse/2018/LATEST/LUISA_basemap_020321_50m.tif", - ), + tif=storage(LUISA_LAND_COVER_DATASET["url"]), output: - "data/LUISA_basemap_020321_50m.tif", + tif=f"{LUISA_LAND_COVER_DATASET['folder']}/LUISA_basemap_020321_50m.tif", run: - move(input[0], output[0]) + copy2(input["tif"], output["tif"]) -if config["enable"]["retrieve"]: +if (EEZ_DATASET := dataset_version("eez"))["source"] in ["primary"]: rule retrieve_eez: - params: - zip_file="World_EEZ_v12_20231025_LR.zip", output: - gpkg="data/eez/World_EEZ_v12_20231025_LR/eez_v12_lowres.gpkg", + zip_file=f"{EEZ_DATASET['folder']}/World_EEZ_{EEZ_DATASET['version']}_LR.zip", + gpkg=f"{EEZ_DATASET['folder']}/World_EEZ_{EEZ_DATASET['version']}_LR/eez_{EEZ_DATASET['version'].split('_')[0]}_lowres.gpkg", run: from uuid import uuid4 @@ -357,8 +538,8 @@ if config["enable"]["retrieve"]: org = str(uuid4())[:8] response = requests.post( - "https://www.marineregions.org/download_file.php", - params={"name": "World_EEZ_v12_20231025_LR.zip"}, + f"{EEZ_DATASET['url']}", + params={"name": f"World_EEZ_{EEZ_DATASET['version']}_LR.zip"}, data={ "name": name, "organisation": org, @@ -370,139 +551,193 @@ if config["enable"]["retrieve"]: }, ) - with open(params["zip_file"], "wb") as f: + with open(output["zip_file"], "wb") as f: f.write(response.content) - output_folder = Path(output.gpkg).parent.parent - unpack_archive(params["zip_file"], output_folder) - os.remove(params["zip_file"]) - + output_folder = Path(output["zip_file"]).parent + unpack_archive(output["zip_file"], output_folder) -if config["enable"]["retrieve"]: +elif (EEZ_DATASET := dataset_version("eez"))["source"] in ["archive"]: - rule retrieve_worldbank_urban_population: - params: - zip_file="API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2.zip", + rule retrieve_eez: + input: + zip_file=storage( + EEZ_DATASET["url"], + ), output: - gpkg="data/worldbank/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2.csv", + zip_file=f"{EEZ_DATASET['folder']}/World_EEZ_{EEZ_DATASET['version']}_LR.zip", + gpkg=f"{EEZ_DATASET['folder']}/World_EEZ_{EEZ_DATASET['version']}_LR/eez_{EEZ_DATASET['version'].split('_')[0]}_lowres.gpkg", run: - response = requests.get( - "https://api.worldbank.org/v2/en/indicator/SP.URB.TOTL.IN.ZS?downloadformat=csv", - ) + output_folder = Path(output["zip_file"]).parent + copy2(input["zip_file"], output["zip_file"]) + unpack_archive(output["zip_file"], output_folder) - with open(params["zip_file"], "wb") as f: - f.write(response.content) - output_folder = Path(output.gpkg).parent - unpack_archive(params["zip_file"], output_folder) - for f in os.listdir(output_folder): - if f.startswith( - "API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2_" - ) and f.endswith(".csv"): - os.rename(os.path.join(output_folder, f), output.gpkg) - break - os.remove(params["zip_file"]) +if (WB_URB_POP_DATASET := dataset_version("worldbank_urban_population"))["source"] in [ + "primary", + "archive", +]: + rule retrieve_worldbank_urban_population: + input: + zip=storage(WB_URB_POP_DATASET["url"]), + output: + zip=f"{WB_URB_POP_DATASET['folder']}/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2.zip", + csv=f"{WB_URB_POP_DATASET['folder']}/API_SP.URB.TOTL.IN.ZS_DS2_en_csv_v2.csv", + run: + copy2(input["zip"], output["zip"]) + unpack_archive(output["zip"], WB_URB_POP_DATASET["folder"]) + + # Filename contains some added numbers when downloaded, + # remove them to have a consistent filename across versions + target_filename = Path(output["csv"]) + origin_filename = next( + Path(WB_URB_POP_DATASET["folder"]).rglob( + target_filename.stem + "*" + target_filename.suffix + ) + ) + origin_filename.rename(output.csv) -if config["enable"]["retrieve"]: +if (CO2STOP_DATASET := dataset_version("co2stop"))["source"] in [ + "primary", + "archive", +]: rule retrieve_co2stop: - params: - zip_file="co2jrc_openformats.zip", + input: + zip_file=storage(CO2STOP_DATASET["url"]), output: - "data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Storage_Units.csv", - "data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps.csv", - "data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps_Temp.csv", - "data/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps1.csv", - "data/CO2JRC_OpenFormats/CO2Stop_Polygons Data/DaughterUnits_March13.kml", - "data/CO2JRC_OpenFormats/CO2Stop_Polygons Data/StorageUnits_March13.kml", + zip_file=f"{CO2STOP_DATASET['folder']}/co2jrc_openformats.zip", + storage_table=f"{CO2STOP_DATASET['folder']}/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Storage_Units.csv", + storage_map=f"{CO2STOP_DATASET['folder']}/CO2JRC_OpenFormats/CO2Stop_Polygons Data/StorageUnits_March13.kml", + traps_table1=f"{CO2STOP_DATASET['folder']}/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps.csv", + traps_table2=f"{CO2STOP_DATASET['folder']}/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps_Temp.csv", + traps_table3=f"{CO2STOP_DATASET['folder']}/CO2JRC_OpenFormats/CO2Stop_DataInterrogationSystem/Hydrocarbon_Traps1.csv", + traps_map=f"{CO2STOP_DATASET['folder']}/CO2JRC_OpenFormats/CO2Stop_Polygons Data/DaughterUnits_March13.kml", run: - response = requests.get( - "https://setis.ec.europa.eu/document/download/786a884f-0b33-4789-b744-28004b16bd1a_en?filename=co2jrc_openformats.zip", - ) - with open(params["zip_file"], "wb") as f: - f.write(response.content) - output_folder = Path(output[0]).parent.parent.parent - unpack_archive(params["zip_file"], output_folder) - os.remove(params["zip_file"]) - + copy2(input["zip_file"], output["zip_file"]) + unpack_archive(output["zip_file"], CO2STOP_DATASET["folder"]) -if config["enable"]["retrieve"]: +if (GEM_EUROPE_GAS_TRACKER_DATASET := dataset_version("gem_europe_gas_tracker"))[ + "source" +] in [ + "primary", + "archive", +]: rule retrieve_gem_europe_gas_tracker: + input: + xlsx=storage(GEM_EUROPE_GAS_TRACKER_DATASET["url"]), output: - "data/gem/Europe-Gas-Tracker-2024-05.xlsx", + xlsx="data/gem/Europe-Gas-Tracker-2024-05.xlsx", run: - # mirror of https://globalenergymonitor.org/wp-content/uploads/2024/05/Europe-Gas-Tracker-2024-05.xlsx - url = "https://tubcloud.tu-berlin.de/s/LMBJQCsN6Ez5cN2/download/Europe-Gas-Tracker-2024-05.xlsx" - response = requests.get(url) - with open(output[0], "wb") as f: - f.write(response.content) - + copy2(input["xlsx"], output["xlsx"]) -if config["enable"]["retrieve"]: +if (GEM_GSPT_DATASET := dataset_version("gem_gspt"))["source"] in [ + "primary", + "archive", +]: rule retrieve_gem_steel_plant_tracker: + input: + xlsx=storage(GEM_GSPT_DATASET["url"]), output: - "data/gem/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx", + xlsx=f"{GEM_GSPT_DATASET['folder']}/Global-Steel-Plant-Tracker.xlsx", run: - # mirror or https://globalenergymonitor.org/wp-content/uploads/2024/04/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx - url = "https://tubcloud.tu-berlin.de/s/Aqebo3rrQZWKGsG/download/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx" - response = requests.get(url) - with open(output[0], "wb") as f: - f.write(response.content) - - + copy2(input["xlsx"], output["xlsx"]) -if config["enable"]["retrieve"]: - # Some logic to find the correct file URL - # Sometimes files are released delayed or ahead of schedule, check which file is currently available - def check_file_exists(url): - response = requests.head(url) - return response.status_code == 200 +if (BFS_ROAD_VEHICLE_STOCK_DATASET := dataset_version("bfs_road_vehicle_stock"))[ + "source" +] in [ + "primary", + "archive", +]: - # Basic pattern where WDPA files can be found - url_pattern = ( - "https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_{bYYYY}_Public_shp.zip" - ) + rule retrieve_bfs_road_vehicle_stock: + input: + csv=storage(BFS_ROAD_VEHICLE_STOCK_DATASET["url"]), + output: + csv=f"{BFS_ROAD_VEHICLE_STOCK_DATASET['folder']}/vehicle_stock.csv", + run: + copy2(input["csv"], output["csv"]) - # 3-letter month + 4 digit year for current/previous/next month to test - current_monthyear = datetime.now().strftime("%b%Y") - prev_monthyear = (datetime.now() - timedelta(30)).strftime("%b%Y") - next_monthyear = (datetime.now() + timedelta(30)).strftime("%b%Y") - # Test prioritised: current month -> previous -> next - for bYYYY in [current_monthyear, prev_monthyear, next_monthyear]: - if check_file_exists(url := url_pattern.format(bYYYY=bYYYY)): - break - else: - # If None of the three URLs are working - url = False +if (BFS_GDP_AND_POPULATION_DATASET := dataset_version("bfs_gdp_and_population"))[ + "source" +] in [ + "primary", + "archive", +]: - # assert ( - # url - # ), f"No WDPA files found at {url_pattern} for bY='{current_monthyear}, {prev_monthyear}, or {next_monthyear}'" + rule retrieve_bfs_gdp_and_population: + input: + xlsx=storage(BFS_GDP_AND_POPULATION_DATASET["url"]), + output: + xlsx=f"{BFS_GDP_AND_POPULATION_DATASET['folder']}/gdp_and_population.xlsx", + run: + copy2(input["xlsx"], output["xlsx"]) + + +def get_wdpa_url(DATASET) -> str: + """ + Find the right URL for the WDPA / WDPA marine dataset based on the source type. + """ + if DATASET["source"] == "archive": + return DATASET["url"] + elif DATASET["source"] == "primary": + # Some logic to find the correct file URL from the WDPA website (primary source) + # Sometimes files are released delayed or ahead of schedule, check which file is currently available + def check_file_exists(url): + response = requests.head(url) + return response.status_code == 200 + + # Basic pattern where WDPA files can be found + url_pattern = DATASET["url"] + + # 3-letter month + 4 digit year for current/previous/next/pprevious/nnext months to test + # order reflects priority of testing + months = [ + datetime.now(), # current + (datetime.now() + relativedelta(months=-1)), # previous month + (datetime.now() + relativedelta(months=+1)), # next month + (datetime.now() + relativedelta(months=-2)), # two months ago + (datetime.now() + relativedelta(months=+2)), # two months ahead + ] + months = [m.strftime("%b%Y") for m in months] + + # Test prioritised: current month -> previous -> next + for bYYYY in months: + url = url_pattern.format(bYYYY=bYYYY) + if check_file_exists(url): + return url + + raise ValueError( + f"No {DATASET.dataset} files found at {url_pattern} for bY={months}." + ) + + +if (WDPA_DATASET := dataset_version("wdpa"))["source"] in [ + "primary", + "archive", +]: # Downloading protected area database from WDPA # extract the main zip and then merge the contained 3 zipped shapefiles # Website: https://www.protectedplanet.net/en/thematic-areas/wdpa - rule download_wdpa: + rule retrieve_wdpa: input: - zip_file=storage(url, keep_local=True) if url else [], - params: - zip_file="WDPA_shp.zip", - folder_name="WDPA", + zip_file=storage(get_wdpa_url(WDPA_DATASET)), output: - gpkg="data/WDPA.gpkg", + zip_file=f"{WDPA_DATASET['folder']}/WDPA_shp.zip", + gpkg=f"{WDPA_DATASET['folder']}/WDPA.gpkg", run: - # Copy file and ensure proper permissions - shcopy2(input.zip_file, params.zip_file) - output_folder = Path(output.gpkg).parent / params.folder_name - unpack_archive(params.zip_file, output_folder) + output_folder = Path(output["zip_file"]).parent + copy2(input["zip_file"], output["zip_file"]) + unpack_archive(output["zip_file"], output_folder) for i in range(3): # vsizip is special driver for directly working with zipped shapefiles in ogr2ogr @@ -511,206 +746,295 @@ if config["enable"]["retrieve"]: ) print(f"Adding layer {i+1} of 3 to combined output file.") shell("ogr2ogr -f gpkg -update -append {output.gpkg} {layer_path}") - os.remove(params.zip_file) - rule download_wdpa_marine: + + +if (WDPA_MARINE_DATASET := dataset_version("wdpa_marine"))["source"] in [ + "primary", + "archive", +]: + + rule retrieve_wdpa_marine: # Downloading Marine protected area database from WDPA # extract the main zip and then merge the contained 3 zipped shapefiles # Website: https://www.protectedplanet.net/en/thematic-areas/marine-protected-areas input: - zip_file=storage( - f"https://d1gam3xoknrgr2.cloudfront.net/current/WDPA_WDOECM_{bYYYY}_Public_marine_shp.zip", - keep_local=True, - ), - params: - zip_file="WDPA_WDOECM_marine.zip", - folder_name="WDPA_WDOECM_marine", + zip_file=storage(get_wdpa_url(WDPA_MARINE_DATASET)), output: - gpkg="data/WDPA_WDOECM_marine.gpkg", + zip_file=f"{WDPA_MARINE_DATASET['folder']}/WDPA_WDOECM_marine.zip", + gpkg=f"{WDPA_MARINE_DATASET['folder']}/WDPA_WDOECM_marine.gpkg", run: - shcopy2(input.zip_file, params.zip_file) - output_folder = Path(output.gpkg).parent / params.folder_name - unpack_archive(params.zip_file, output_folder) + output_folder = Path(output["zip_file"]).parent + copy2(input["zip_file"], output["zip_file"]) + unpack_archive(output["zip_file"], output_folder) for i in range(3): # vsizip is special driver for directly working with zipped shapefiles in ogr2ogr layer_path = f"/vsizip/{output_folder}/WDPA_WDOECM_{bYYYY}_Public_marine_shp_{i}.zip" print(f"Adding layer {i+1} of 3 to combined output file.") shell("ogr2ogr -f gpkg -update -append {output.gpkg} {layer_path}") - os.remove(params.zip_file) -if config["enable"]["retrieve"]: - - rule retrieve_monthly_co2_prices: +# Versioning not implemented as the dataset is used only for validation +# License - (c) EEX AG, all rights reserved. Personal copy for non-commercial use permitted +rule retrieve_monthly_co2_prices: + input: + storage( + "https://public.eex-group.com/eex/eua-auction-report/emission-spot-primary-market-auction-report-2019-data.xls", + ), + output: + "data/validation/emission-spot-primary-market-auction-report-2019-data.xls", + log: + "logs/retrieve_monthly_co2_prices.log", + resources: + mem_mb=5000, + retries: 2 + run: + copy2(input[0], output[0]) + + +# Versioning not implemented as the dataset is used only for validation +# License - custom; no restrictions on use and redistribution, attribution required +rule retrieve_monthly_fuel_prices: + output: + "data/validation/energy-price-trends-xlsx-5619002.xlsx", + log: + "logs/retrieve_monthly_fuel_prices.log", + resources: + mem_mb=5000, + retries: 2 + script: + "../scripts/retrieve_monthly_fuel_prices.py" + + +if (TYDNP_DATASET := dataset_version("tyndp"))["source"] in [ + "primary", + "archive", +] and not config["tyndp_scenario"]: + + rule retrieve_tyndp: input: - storage( - "https://public.eex-group.com/eex/eua-auction-report/emission-spot-primary-market-auction-report-2019-data.xls", - keep_local=True, - ), + line_data=storage(TYDNP_DATASET["url"] + "/Line-data.zip"), + nodes=storage(TYDNP_DATASET["url"] + "/Nodes.zip"), output: - "data/validation/emission-spot-primary-market-auction-report-2019-data.xls", + line_data_zip=f"{TYDNP_DATASET['folder']}/Line-data.zip", + nodes_zip=f"{TYDNP_DATASET['folder']}/Nodes.zip", + elec_reference_grid=f"{TYDNP_DATASET['folder']}/Line data/ReferenceGrid_Electricity.xlsx", + nodes=f"{TYDNP_DATASET['folder']}/Nodes/LIST OF NODES.xlsx", log: - "logs/retrieve_monthly_co2_prices.log", - resources: - mem_mb=5000, - retries: 2 + "logs/retrieve_tyndp.log", run: - move(input[0], output[0]) + for key in input.keys(): + # Keep zip file + copy2(input[key], output[f"{key}_zip"]) + + # unzip + output_folder = Path(output[f"{key}_zip"]).parent + unpack_archive(output[f"{key}_zip"], output_folder) + + # Remove __MACOSX directory if it exists + macosx_dir = output_folder / "__MACOSX" + rmtree(macosx_dir, ignore_errors=True) -if config["enable"]["retrieve"]: - rule retrieve_monthly_fuel_prices: +if (TYDNP_DATASET := dataset_version("tyndp_bundle"))["source"] in [ + "archive" +] and config["tyndp_scenario"]: + + rule retrieve_tyndp: + input: + zip_file=storage(TYDNP_DATASET["url"]), output: - "data/validation/energy-price-trends-xlsx-5619002.xlsx", - log: - "logs/retrieve_monthly_fuel_prices.log", - resources: - mem_mb=5000, - retries: 2 - script: - "../scripts/retrieve_monthly_fuel_prices.py" + dir=directory(TYDNP_DATASET["folder"]), + elec_reference_grid=f"{TYDNP_DATASET['folder']}/Line data/ReferenceGrid_Electricity.xlsx", + nodes=f"{TYDNP_DATASET['folder']}/Nodes/LIST OF NODES.xlsx", + h2_reference_grid=f"{TYDNP_DATASET['folder']}/Line data/ReferenceGrid_Hydrogen.xlsx", + demand_profiles=directory(f"{TYDNP_DATASET['folder']}/Demand Profiles"), + h2_imports=f"{TYDNP_DATASET['folder']}/Hydrogen/H2 IMPORTS GENERATORS PROPERTIES.xlsx", + offshore_nodes=f"{TYDNP_DATASET['folder']}/Offshore hubs/NODE.xlsx", + offshore_grid=f"{TYDNP_DATASET['folder']}/Offshore hubs/GRID.xlsx", + offshore_electrolysers=f"{TYDNP_DATASET['folder']}/Offshore hubs/ELECTROLYSER.xlsx", + offshore_generators=f"{TYDNP_DATASET['folder']}/Offshore hubs/GENERATOR.xlsx", + trajectories=f"{TYDNP_DATASET['folder']}/Investment Datasets/TRAJECTORY.xlsx", + run: + with ZipFile(input["zip_file"], "r") as zip_ref: + zip_ref.extractall(output["dir"]) + -if config["enable"]["retrieve"] and ( - config["electricity"]["base_network"] == "osm-prebuilt" -): - OSM_VERSION = config["electricity"]["osm-prebuilt-version"] - OSM_FILES = [ +if OSM_DATASET["source"] in ["archive"]: + + OSM_ARCHIVE_FILES = [ "buses.csv", "converters.csv", "lines.csv", "links.csv", "transformers.csv", + # Newer versions include the additional map.html file for visualisation + *(["map.html"] if float(OSM_DATASET["version"]) >= 0.6 else []), ] - if OSM_VERSION >= 0.6: - OSM_FILES.append("map.html") - OSM_ZENODO_IDS = { - 0.1: "12799202", - 0.2: "13342577", - 0.3: "13358976", - 0.4: "13759222", - 0.5: "13981528", - 0.6: "14144752", - } - - # update rule to use the correct version - rule retrieve_osm_prebuilt: + + rule retrieve_osm_archive: input: **{ - file: storage( - f"https://zenodo.org/records/{OSM_ZENODO_IDS[OSM_VERSION]}/files/{file}" - ) - for file in OSM_FILES + file: storage(f"{OSM_DATASET['url']}/files/{file}") + for file in OSM_ARCHIVE_FILES }, output: - **{file: f"data/osm-prebuilt/{OSM_VERSION}/{file}" for file in OSM_FILES}, + **{file: f"{OSM_DATASET['folder']}/{file}" for file in OSM_ARCHIVE_FILES}, log: - "logs/retrieve_osm_prebuilt.log", + "logs/retrieve_osm_archive.log", threads: 1 resources: mem_mb=500, run: for key in input.keys(): - move(input[key], output[key]) - validate_checksum(output[key], input[key]) + copy2(input[key], output[key]) +elif OSM_DATASET["source"] == "build": -if config["enable"]["retrieve"] and ( - config["electricity"]["base_network"] == "osm-raw" -): + OSM_RAW_JSON = [ + "cables_way.json", + "lines_way.json", + "routes_relation.json", + "substations_way.json", + "substations_relation.json", + ] - rule retrieve_osm_data: + rule retrieve_osm_data_raw: + params: + overpass_api=config_provider("overpass_api"), output: - cables_way="data/osm-raw/{country}/cables_way.json", - lines_way="data/osm-raw/{country}/lines_way.json", - routes_relation="data/osm-raw/{country}/routes_relation.json", - substations_way="data/osm-raw/{country}/substations_way.json", - substations_relation="data/osm-raw/{country}/substations_relation.json", + **{ + file.replace( + ".json", "" + ): f"{OSM_DATASET['folder']}/{{country}}/{file}" + for file in OSM_RAW_JSON + }, log: "logs/retrieve_osm_data_{country}.log", threads: 1 script: "../scripts/retrieve_osm_data.py" - -if config["enable"]["retrieve"] and ( - config["electricity"]["base_network"] == "osm-raw" -): - - rule retrieve_osm_data_all: + rule retrieve_osm_data_raw_all: input: expand( - "data/osm-raw/{country}/cables_way.json", - country=config_provider("countries"), - ), - expand( - "data/osm-raw/{country}/lines_way.json", - country=config_provider("countries"), - ), - expand( - "data/osm-raw/{country}/routes_relation.json", - country=config_provider("countries"), - ), - expand( - "data/osm-raw/{country}/substations_way.json", - country=config_provider("countries"), - ), - expand( - "data/osm-raw/{country}/substations_relation.json", + f"{OSM_DATASET['folder']}/{{country}}/{{file}}", country=config_provider("countries"), + file=OSM_RAW_JSON, ), -if config["enable"]["retrieve"]: +if (NATURA_DATASET := dataset_version("natura"))["source"] in ["archive"]: + + rule retrieve_natura: + input: + storage(NATURA_DATASET["url"]), + output: + f"{NATURA_DATASET["folder"]}/natura.tiff", + log: + "logs/retrieve_natura.log", + run: + copy2(input[0], output[0]) + +elif NATURA_DATASET["source"] == "build": + + rule build_natura_raster: + input: + online=storage(NATURA_DATASET["url"]), + cutout=lambda w: input_cutout(w), + output: + zip=f"{NATURA_DATASET["folder"]}/raw/natura.zip", + raw=directory(f"{NATURA_DATASET["folder"]}/raw"), + raster=f"{NATURA_DATASET["folder"]}/natura.tiff", + resources: + mem_mb=5000, + log: + "logs/build_natura.log", + script: + "../scripts/build_natura.py" + + +if (OSM_BOUNDARIES_DATASET := dataset_version("osm_boundaries"))["source"] in [ + "primary" +]: rule retrieve_osm_boundaries: output: - json="data/osm-boundaries/json/{country}_adm1.json", + json=f"{OSM_BOUNDARIES_DATASET["folder"]}/{country}_adm1.json", log: "logs/retrieve_osm_boundaries_{country}_adm1.log", threads: 1 script: "../scripts/retrieve_osm_boundaries.py" +elif (OSM_BOUNDARIES_DATASET := dataset_version("osm_boundaries"))["source"] in [ + "archive" +]: + + rule retrieve_osm_boundaries: + input: + storage( + f"{OSM_BOUNDARIES_DATASET['url']}", + ), + output: + json1=f"{OSM_BOUNDARIES_DATASET['folder']}/XK_adm1.json", + json2=f"{OSM_BOUNDARIES_DATASET['folder']}/UA_adm1.json", + json3=f"{OSM_BOUNDARIES_DATASET['folder']}/MD_adm1.json", + json4=f"{OSM_BOUNDARIES_DATASET['folder']}/BA_adm1.json", + zip_file=f"{OSM_BOUNDARIES_DATASET['folder']}/osm_boundaries.zip", + run: + output_folder = Path(output["zip_file"]).parent + copy2(input[0], output["zip_file"]) + unpack_archive(output["zip_file"], output_folder) + + +if ( + GEOTHERMAL_HEAT_UTILISATION_POTENTIALS_DATASET := dataset_version( + "geothermal_heat_utilisation_potentials" + ) +)["source"] in ["primary", "archive"]: + rule retrieve_geothermal_heat_utilisation_potentials: input: isi_heat_potentials=storage( - "https://fordatis.fraunhofer.de/bitstream/fordatis/341.5/11/Results_DH_Matching_Cluster.xlsx", - keep_local=True, + GEOTHERMAL_HEAT_UTILISATION_POTENTIALS_DATASET["url"] ), output: - "data/isi_heat_utilisation_potentials.xlsx", + isi_heat_potentials=f"{GEOTHERMAL_HEAT_UTILISATION_POTENTIALS_DATASET['folder']}/isi_heat_utilisation_potentials.xlsx", log: "logs/retrieve_geothermal_heat_utilisation_potentials.log", threads: 1 retries: 2 run: - move(input[0], output[0]) + copy2(input["isi_heat_potentials"], output["isi_heat_potentials"]) + + +if (LAU_REGIONS_DATASET := dataset_version("lau_regions"))["source"] in [ + "primary", + "archive", +]: rule retrieve_lau_regions: input: - lau_regions=storage( - "https://gisco-services.ec.europa.eu/distribution/v2/lau/download/ref-lau-2019-01m.geojson.zip", - keep_local=True, - ), + lau_regions=storage(LAU_REGIONS_DATASET["url"]), output: - lau_regions="data/lau_regions.zip", - log: - "logs/retrieve_lau_regions.log", + zip=f"{LAU_REGIONS_DATASET['folder']}/lau_regions.zip", log: "logs/retrieve_lau_regions.log", threads: 1 retries: 2 run: - move(input[0], output[0]) + copy2(input["lau_regions"], output["zip"]) rule retrieve_seawater_temperature: params: default_cutout=config_provider("atlite", "default_cutout"), + test_data_url=dataset_version("seawater_temperature")["url"], output: seawater_temperature="data/seawater_temperature_{year}.nc", log: @@ -761,71 +1085,109 @@ if config["enable"]["retrieve"]: move(input.ambient_temperature, output.ambient_temperature) -if config["enable"]["retrieve"]: +if (JRC_ARDECO_DATASET := dataset_version("jrc_ardeco"))["source"] in [ + "primary", +]: rule retrieve_jrc_ardeco: + input: + ardeco_gdp=storage( + f"{JRC_ARDECO_DATASET['url']}/SUVGDP?versions=2021&unit=EUR&format=csv-table" + ), + ardeco_pop=storage( + f"{JRC_ARDECO_DATASET['url']}/SNPTD?versions=2021&unit=EUR&format=csv-table" + ), output: - ardeco_gdp="data/jrc-ardeco/ARDECO-SUVGDP.2021.table.csv", - ardeco_pop="data/jrc-ardeco/ARDECO-SNPTD.2021.table.csv", + ardeco_gdp=f"{JRC_ARDECO_DATASET['folder']}/ARDECO-SUVGDP.2021.table.csv", + ardeco_pop=f"{JRC_ARDECO_DATASET['folder']}/ARDECO-SNPTD.2021.table.csv", run: - urls = { - "ardeco_gdp": "https://territorial.ec.europa.eu/ardeco-api-v2/rest/export/SUVGDP?versions=2021&unit=EUR&level_id=0&level_id=1&level_id=2&level_id=3&format=csv-table", - "ardeco_pop": "https://territorial.ec.europa.eu/ardeco-api-v2/rest/export/SNPTD?versions=2021&unit=NR&level_id=0&level_id=1&level_id=2&level_id=3&format=csv-table", - } + for key in input.keys(): + copy2(input[key], output[key]) + + +elif (JRC_ARDECO_DATASET := dataset_version("jrc_ardeco"))["source"] in ["archive"]: - for key, url in urls.items(): - response = requests.get(url) - output_path = output[key] if key in urls else None - if output_path: - with open(output_path, "wb") as f: - f.write(response.content) + rule retrieve_jrc_ardeco: + input: + ardeco_gdp=storage( + f"{JRC_ARDECO_DATASET['url']}/ARDECO-SUVGDP.2021.table.csv" + ), + ardeco_pop=storage( + f"{JRC_ARDECO_DATASET['url']}/ARDECO-SNPTD.2021.table.csv" + ), + output: + ardeco_gdp=f"{JRC_ARDECO_DATASET['folder']}/ARDECO-SUVGDP.2021.table.csv", + ardeco_pop=f"{JRC_ARDECO_DATASET['folder']}/ARDECO-SNPTD.2021.table.csv", + run: + for key in input.keys(): + copy2(input[key], output[key]) -if config["enable"]["retrieve"]: +if (AQUIFER_DATA_DATASET := dataset_version("aquifer_data"))["source"] in [ + "primary", + "archive", +]: rule retrieve_aquifer_data_bgr: input: - zip_file=storage( - "https://download.bgr.de/bgr/grundwasser/IHME1500/v12/shp/IHME1500_v12.zip" - ), + zip_file=storage(AQUIFER_DATA_DATASET["url"]), output: - aquifer_shapes_shp="data/bgr/ihme1500_aquif_ec4060_v12_poly.shp", - aquifer_shapes_shx="data/bgr/ihme1500_aquif_ec4060_v12_poly.shx", - aquifer_shapes_dbf="data/bgr/ihme1500_aquif_ec4060_v12_poly.dbf", - aquifer_shapes_cpg="data/bgr/ihme1500_aquif_ec4060_v12_poly.cpg", - aquifer_shapes_prj="data/bgr/ihme1500_aquif_ec4060_v12_poly.prj", - aquifer_shapes_sbn="data/bgr/ihme1500_aquif_ec4060_v12_poly.sbn", - aquifer_shapes_sbx="data/bgr/ihme1500_aquif_ec4060_v12_poly.sbx", - params: - filename_shp="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.shp", - filename_shx="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.shx", - filename_dbf="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.dbf", - filename_cpg="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.cpg", - filename_prj="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.prj", - filename_sbn="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.sbn", - filename_sbx="IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.sbx", - run: - with ZipFile(input.zip_file, "r") as zip_ref: - for fn, outpt in zip( - params, - output, - ): - zip_ref.extract(fn, Path(outpt).parent) - extracted_file = Path(outpt).parent / fn - extracted_file.rename(outpt) + zip_file=f"{AQUIFER_DATA_DATASET['folder']}/ihme1500_aquif_ec4060_v12_poly.zip", + aquifer_shapes=expand( + f"{AQUIFER_DATA_DATASET['folder']}/IHME1500_v12/shp/ihme1500_aquif_ec4060_v12_poly.{{ext}}", + ext=[ + "shp", + "shx", + "dbf", + "cpg", + "prj", + "sbn", + "sbx", + ], + ), + run: + copy2(input["zip_file"], output["zip_file"]) + unpack_archive( + output["zip_file"], + AQUIFER_DATA_DATASET["folder"], + ) + + +if (DH_AREAS_DATASET := dataset_version("dh_areas"))["source"] in [ + "primary", + "archive", +]: rule retrieve_dh_areas: input: - dh_areas=storage( - "https://fordatis.fraunhofer.de/bitstream/fordatis/341.5/2/dh_areas.gpkg", - keep_local=True, - ), + dh_areas=storage(DH_AREAS_DATASET["url"]), output: - dh_areas="data/dh_areas.gpkg", + dh_areas=f"{DH_AREAS_DATASET['folder']}/dh_areas.gpkg", log: "logs/retrieve_dh_areas.log", + run: + copy2(input["dh_areas"], output["dh_areas"]) + + +if (MOBILITY_PROFILES_DATASET := dataset_version("mobility_profiles"))["source"] in [ + "archive" +]: + + rule retrieve_mobility_profiles: + input: + kfz=storage(MOBILITY_PROFILES_DATASET["url"] + "/kfz.csv"), + pkw=storage(MOBILITY_PROFILES_DATASET["url"] + "/pkw.csv"), + output: + kfz=f"{MOBILITY_PROFILES_DATASET["folder"]}/kfz.csv", + pkw=f"{MOBILITY_PROFILES_DATASET["folder"]}/pkw.csv", threads: 1 - retries: 2 + resources: + mem_mb=1000, + log: + "logs/retrieve_mobility_profiles.log", + benchmark: + "benchmarks/retrieve_mobility_profiles" run: - move(input[0], output[0]) + copy2(input["kfz"], output["kfz"]) + copy2(input["pkw"], output["pkw"]) diff --git a/rules/sb.smk b/rules/sb.smk index f3a53a7d81..92667506e5 100644 --- a/rules/sb.smk +++ b/rules/sb.smk @@ -3,164 +3,187 @@ # SPDX-License-Identifier: MIT -import zipfile -from shutil import move from scripts._helpers import safe_pyear +from shutil import unpack_archive, rmtree, copy2 + # Retrieve ########## -if config["enable"]["retrieve"] and config["enable"].get("retrieve_cutout", True): +if (CUTOUT_ADDITIONAL_DATASET := dataset_version("cutout_additional"))["source"] in [ + "archive" +]: rule retrieve_additional_cutout: input: - storage("https://storage.googleapis.com/open-tyndp-data-store/{cutout}.nc"), + storage(CUTOUT_ADDITIONAL_DATASET["url"] + "{cutout}.nc"), output: - CDIR.joinpath("{cutout}.nc").as_posix(), + CUTOUT_DATASET["folder"] + "/{cutout}.nc", log: - Path("logs").joinpath(CDIR, "retrieve_cutout_{cutout}.log").as_posix(), + "logs/retrieve_additional_cutout/{cutout}.log", resources: mem_mb=5000, retries: 2 run: - move(input[0], output[0]) + copy2(input[0], output[0]) ruleorder: retrieve_additional_cutout > retrieve_cutout -if config["enable"]["retrieve"]: +if (PECD_DATASET := dataset_version("tyndp_pecd"))["source"] in ["archive"]: - rule retrieve_tyndp_bundle: + rule retrieve_tyndp_pecd: input: + # TODO Integrate into Zenodo tyndp data bundle zip_file=storage( - "https://zenodo.org/records/14230568/files/TYNDP_2024_data_bundle.zip" + PECD_DATASET["url"] + f"PECD_{PECD_DATASET["version"]}.zip" ), + dir=rules.retrieve_tyndp.output.dir, output: - dir=directory("data/tyndp_2024_bundle"), - elec_reference_grid="data/tyndp_2024_bundle/Line data/ReferenceGrid_Electricity.xlsx", - buses="data/tyndp_2024_bundle/Nodes/LIST OF NODES.xlsx", - h2_reference_grid="data/tyndp_2024_bundle/Line data/ReferenceGrid_Hydrogen.xlsx", - electricity_demand=directory("data/tyndp_2024_bundle/Demand Profiles"), - h2_imports="data/tyndp_2024_bundle/Hydrogen/H2 IMPORTS GENERATORS PROPERTIES.xlsx", - offshore_nodes="data/tyndp_2024_bundle/Offshore hubs/NODE.xlsx", - offshore_grid="data/tyndp_2024_bundle/Offshore hubs/GRID.xlsx", - offshore_electrolysers="data/tyndp_2024_bundle/Offshore hubs/ELECTROLYSER.xlsx", - offshore_generators="data/tyndp_2024_bundle/Offshore hubs/GENERATOR.xlsx", - trajectories="data/tyndp_2024_bundle/Investment Datasets/TRAJECTORY.xlsx", + dir=directory(PECD_DATASET["folder"]), + log: + "logs/retrieve_tyndp_pecd.log", run: - with zipfile.ZipFile(input.zip_file, "r") as zip_ref: - zip_ref.extractall(output.dir) + copy2(input["zip_file"], output["dir"] + ".zip") + unpack_archive(output["dir"] + ".zip", output["dir"]) + os.remove(output["dir"] + ".zip") - rule retrieve_tyndp_pecd_data_raw: - params: - # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/PECD/PECD_{pecd_version}.zip", - source="PECD raw", - input: - "data/tyndp_2024_bundle", - output: - dir=directory("data/tyndp_2024_bundle/PECD/PECD_{pecd_version}"), - log: - "logs/retrieve_tyndp_pecd_data_raw_{pecd_version}.log", - retries: 2 - wildcard_constraints: - pecd_version="(?!.*pre-built).*", # Cannot be pre-built version - script: - "../scripts/sb/retrieve_additional_tyndp_data.py" - use rule retrieve_tyndp_pecd_data_raw as retrieve_tyndp_hydro_inflows with: - params: +if (TYNDP_HYDRO_INFLOWS_DATASET := dataset_version("tyndp_hydro_inflows"))[ + "source" +] in ["archive"]: + + rule retrieve_tyndp_hydro_inflows: + input: # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/Hydro_Inflows.zip", - source="Hydro Inflows", + zip_file=storage(TYNDP_HYDRO_INFLOWS_DATASET["url"]), + dir=rules.retrieve_tyndp.output.dir, output: - dir=directory("data/tyndp_2024_bundle/Hydro Inflows"), + dir=directory(TYNDP_HYDRO_INFLOWS_DATASET["folder"]), log: "logs/retrieve_tyndp_hydro_inflows.log", + run: + copy2(input["zip_file"], output["dir"] + ".zip") + unpack_archive(output["dir"] + ".zip", output["dir"]) + os.remove(output["dir"] + ".zip") - use rule retrieve_tyndp_pecd_data_raw as retrieve_tyndp_pemmdb_data with: - params: + +if (PEMMDB_DATASET := dataset_version("tyndp_pemmdb"))["source"] in ["archive"]: + + rule retrieve_tyndp_pemmdb_data: + input: # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/PEMMDB.zip", - source="PEMMDB", + zip_file=storage(PEMMDB_DATASET["url"]), + dir=rules.retrieve_tyndp.output.dir, output: - dir=directory("data/tyndp_2024_bundle/PEMMDB2"), + dir=directory(PEMMDB_DATASET["folder"]), log: "logs/retrieve_tyndp_pemmdb_data.log", + run: + copy2(input["zip_file"], output["dir"] + ".zip") + unpack_archive(output["dir"] + ".zip", output["dir"]) + os.remove(output["dir"] + ".zip") - use rule retrieve_tyndp_pecd_data_raw as retrieve_tyndp_supply_tool with: - params: + +if (SUPPLY_TOOL_DATASET := dataset_version("tyndp_supply_tool"))["source"] in [ + "archive" +]: + + rule retrieve_tyndp_supply_tool: + input: # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/20240518-Supply-Tool.xlsm.zip", - source="Supply Tool", + zip_file=storage(SUPPLY_TOOL_DATASET["url"]), + dir=rules.retrieve_tyndp.output.dir, output: - dir=directory("data/tyndp_2024_bundle/Supply Tool"), - file="data/tyndp_2024_bundle/Supply Tool/20240518-Supply-Tool.xlsm", + dir=directory(SUPPLY_TOOL_DATASET["folder"]), + file=f"{SUPPLY_TOOL_DATASET["folder"]}/20240518-Supply-Tool.xlsm", log: "logs/retrieve_tyndp_supply_tool.log", + run: + copy2(input["zip_file"], output["dir"] + ".zip") + unpack_archive(output["dir"] + ".zip", output["dir"]) + os.remove(output["dir"] + ".zip") - if config["electricity"]["pecd_renewable_profiles"]["pre_built"]["retrieve"]: + # Remove __MACOSX directory if it exists + macosx_dir = f"{output["dir"]}/__MACOSX" + rmtree(macosx_dir, ignore_errors=True) - use rule retrieve_tyndp_pecd_data_raw as retrieve_tyndp_pecd_data_prebuilt with: - params: - url="https://storage.googleapis.com/open-tyndp-data-store/PECD/PECD_{pecd_prebuilt_version}.zip", - source="PECD prebuilt", - output: - dir=directory( - "data/tyndp_2024_bundle/PECD/PECD_{pecd_prebuilt_version}" - ), - log: - "logs/retrieve_tyndp_pecd_data_raw_{pecd_prebuilt_version}.log", - use rule retrieve_tyndp_pecd_data_raw as retrieve_tyndp_benchmark with: - params: +if (BENCHMARK_DATASET := dataset_version("tyndp_benchmark"))["source"] in ["archive"]: + + rule retrieve_tyndp_benchmark: + input: # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx", - source="Benchmarks", + file=storage(BENCHMARK_DATASET["url"]), + dir=rules.retrieve_tyndp.output.dir, output: - dir=directory("data/tyndp_2024_bundle/TYNDP-2024-Scenarios-Package"), - file="data/tyndp_2024_bundle/TYNDP-2024-Scenarios-Package/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx", + dir=directory(BENCHMARK_DATASET["folder"]), + file=f"{BENCHMARK_DATASET["folder"]}/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx", log: "logs/retrieve_tyndp_benchmark.log", + run: + copy2(input["file"], output["file"]) - use rule retrieve_tyndp_pecd_data_raw as retrieve_tyndp_vp_data with: - params: + +if (VIS_PLFM_DATASET := dataset_version("tyndp_vis_plfm"))["source"] in ["archive"]: + + rule retrieve_tyndp_vp_data: + input: # TODO Integrate into Zenodo tyndp data bundle - url="https://storage.googleapis.com/open-tyndp-data-store/250117-TYNDP-2024-Visualisation-Platform.zip", - source="Visualisation Platform", + zip_file=storage(VIS_PLFM_DATASET["url"]), + dir=rules.retrieve_tyndp.output.dir, output: - dir=directory("data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform"), - elec_demand="data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform/250117_TYNDP2024Scenarios_Electricity_Demand.xlsx", - elec_flex="data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform/250117_TYNDP2024Scenarios_Electricity_Flexibility.xlsx", - elec_supply="data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform/250117_TYNDP2024Scenarios_Electricity_SupplyMix.xlsx", + dir=directory(VIS_PLFM_DATASET["folder"]), + elec_demand=f"{VIS_PLFM_DATASET["folder"]}/250117_TYNDP2024Scenarios_Electricity_Demand.xlsx", + elec_flex=f"{VIS_PLFM_DATASET["folder"]}/250117_TYNDP2024Scenarios_Electricity_Flexibility.xlsx", + elec_supply=f"{VIS_PLFM_DATASET["folder"]}/250117_TYNDP2024Scenarios_Electricity_SupplyMix.xlsx", log: "logs/retrieve_tyndp_vp_data.log", - - rule retrieve_countries_centroids: - output: - "data/countries_centroids.geojson", - log: - "logs/retrieve_countries_centroids.log", run: - from scripts._helpers import progress_retrieve + copy2(input["zip_file"], output["dir"] + ".zip") + unpack_archive(output["dir"] + ".zip", output["dir"]) + os.remove(output["dir"] + ".zip") - progress_retrieve( - "https://cdn.jsdelivr.net/gh/gavinr/world-countries-centroids@v1.0.0/dist/countries.geojson", - output[0], - disable=True, - ) + +# Versioning not implemented as the dataset is used only for plotting +# License - MIT - Copyright (c) 2021 Gavin Rehkemper +# Website: https://github.com/gavinr/world-countries-centroids +rule retrieve_countries_centroids: + output: + "data/countries_centroids.geojson", + log: + "logs/retrieve_countries_centroids.log", + run: + from scripts._helpers import progress_retrieve + + progress_retrieve( + "https://cdn.jsdelivr.net/gh/gavinr/world-countries-centroids@v1.0.0/dist/countries.geojson", + output[0], + disable=True, + ) # Development ############# +if not "pre-built" in PECD_DATASET["version"]: + + def get_pecd_prebuilt_version(increment_minor=True): + prebuilt_prefix = f"{PECD_DATASET["version"]}+pre-built." + versions = ( + dataset_version("tyndp_pecd", all_versions=True) + .query("version.str.contains(@prebuilt_prefix, regex=False)") + .version.sort_values() + ) -if not config["electricity"]["pecd_renewable_profiles"]["pre_built"]["retrieve"]: + if versions.empty: + return "0.1" - def pecd_version(w): - version = config_provider("electricity", "pecd_renewable_profiles", "version")( - w - ) - return {"pecd_raw": f"data/tyndp_2024_bundle/PECD/PECD_{version}"} + major, minor = versions.iloc[-1].removeprefix(prebuilt_prefix).rsplit(".", 1) + + if increment_minor: + return f"{major}.{str(int(minor)+1)}" + else: + return f"{str(int(major)+1)}.0" rule prepare_pecd_release: params: @@ -171,15 +194,15 @@ if not config["electricity"]["pecd_renewable_profiles"]["pre_built"]["retrieve"] "electricity", "pecd_renewable_profiles", "available_years" ), input: - unpack(pecd_version), + pecd_raw=PECD_DATASET["folder"], output: pecd_prebuilt=directory( - "data/tyndp_2024_bundle/PECD/PECD_{pecd_prebuilt_version}" + f"{PECD_DATASET["folder"]}+pre-built.{get_pecd_prebuilt_version(increment_minor= True)}" ), log: - "logs/prepare_pecd_release_{pecd_prebuilt_version}.log", + "logs/prepare_pecd_release.log", benchmark: - "benchmarks/prepare_pecd_release_{pecd_prebuilt_version}" + "benchmarks/prepare_pecd_release" threads: 4 resources: mem_mb=1000, @@ -190,11 +213,35 @@ if not config["electricity"]["pecd_renewable_profiles"]["pre_built"]["retrieve"] # Build electricity ################### +if config["load"]["source"] == "tyndp": + + rule clean_tyndp_electricity_demand: + params: + planning_horizons=config_provider("scenario", "planning_horizons"), + snapshots=config_provider("snapshots"), + scenario=config_provider("tyndp_scenario"), + available_years=config_provider("load", "available_years_tyndp"), + input: + electricity_demand=rules.retrieve_tyndp.output.demand_profiles, + output: + electricity_demand_prepped=resources("electricity_demand_raw_tyndp.csv"), + log: + logs("clean_tyndp_electricity_demand.log"), + benchmark: + benchmarks("clean_tyndp_electricity_demand") + threads: 4 + resources: + mem_mb=4000, + conda: + "../envs/environment.yaml" + script: + "../scripts/sb/clean_tyndp_electricity_demand.py" + use rule build_electricity_demand as build_electricity_demand_tyndp with: input: unpack(input_elec_demand), - reported=resources("electricity_demand_raw_tyndp.csv"), + reported=rules.clean_tyndp_electricity_demand.output.electricity_demand_prepped, output: resources("electricity_demand_{planning_horizons}.csv"), log: @@ -203,16 +250,11 @@ use rule build_electricity_demand as build_electricity_demand_tyndp with: benchmarks("build_electricity_demand_{planning_horizons}") -def pecd_prebuilt_version(w): - pre_built_version = config_provider( - "electricity", "pecd_renewable_profiles", "pre_built", "pecd_prebuilt_version" - )(w) - pecd_raw_version = config_provider( - "electricity", "pecd_renewable_profiles", "version" - )(w) - return { - "pecd_prebuilt": f"data/tyndp_2024_bundle/PECD/PECD_{pecd_raw_version}+pre-built.{pre_built_version}" - } +def get_pecd_prebuilt(w): + if "pre-built" in PECD_DATASET["version"]: + return rules.retrieve_tyndp_pecd.output.dir + else: + return rules.prepare_pecd_release.output.pecd_prebuilt rule clean_pecd_data: @@ -229,8 +271,8 @@ rule clean_pecd_data: "electricity", "pecd_renewable_profiles", "pre_built", "cyears" ), input: - unpack(pecd_prebuilt_version), - offshore_buses="data/tyndp_2024_bundle/Offshore hubs/NODE.xlsx", + pecd_prebuilt=get_pecd_prebuilt, + offshore_buses=rules.retrieve_tyndp.output.offshore_nodes, onshore_buses=resources("busmap_base_s_all.csv"), output: pecd_data_clean=resources("pecd_data_{technology}_{planning_horizons}.csv"), @@ -299,7 +341,7 @@ rule build_pemmdb_data: ), tyndp_scenario=config_provider("tyndp_scenario"), input: - pemmdb_dir="data/tyndp_2024_bundle/PEMMDB2", + pemmdb_dir=rules.retrieve_tyndp_pemmdb_data.output.dir, carrier_mapping="data/tyndp_technology_map.csv", busmap=resources("busmap_base_s_all.csv"), output: @@ -320,7 +362,7 @@ rule build_tyndp_trajectories: params: tyndp_scenario=config_provider("tyndp_scenario"), input: - trajectories="data/tyndp_2024_bundle/Investment Datasets/TRAJECTORY.xlsx", + trajectories=rules.retrieve_tyndp.output.trajectories, carrier_mapping="data/tyndp_technology_map.csv", output: tyndp_trajectories=resources("tyndp_trajectories.csv"), @@ -341,7 +383,7 @@ rule clean_tyndp_hydro_inflows: "electricity", "pemmdb_hydro_profiles", "available_years" ), input: - hydro_inflows_dir="data/tyndp_2024_bundle/Hydro Inflows", + hydro_inflows_dir=rules.retrieve_tyndp_hydro_inflows.output.dir, busmap=resources("busmap_base_s_all.csv"), output: hydro_inflows_tyndp=resources( @@ -420,31 +462,6 @@ use rule build_electricity_demand_base as build_electricity_demand_base_tyndp wi benchmarks("build_electricity_demand_base_s_{planning_horizons}") -if config["load"]["source"] == "tyndp": - - rule clean_tyndp_electricity_demand: - params: - planning_horizons=config_provider("scenario", "planning_horizons"), - snapshots=config_provider("snapshots"), - scenario=config_provider("tyndp_scenario"), - available_years=config_provider("load", "available_years_tyndp"), - input: - electricity_demand="data/tyndp_2024_bundle/Demand Profiles", - output: - electricity_demand_prepped=resources("electricity_demand_raw_tyndp.csv"), - log: - logs("clean_tyndp_electricity_demand.log"), - benchmark: - benchmarks("clean_tyndp_electricity_demand") - threads: 4 - resources: - mem_mb=4000, - conda: - "../envs/environment.yaml" - script: - "../scripts/sb/clean_tyndp_electricity_demand.py" - - # Build sector ############## @@ -454,7 +471,7 @@ rule build_tyndp_gas_demand: scenario=config_provider("tyndp_scenario"), planning_horizons=config_provider("scenario", "planning_horizons"), input: - supply_tool="data/tyndp_2024_bundle/Supply Tool/20240518-Supply-Tool.xlsm", + supply_tool=rules.retrieve_tyndp_supply_tool.output.file, output: gas_demand=resources("gas_demand_tyndp_{planning_horizons}.csv"), threads: 1 @@ -475,7 +492,7 @@ rule build_tyndp_h2_demand: snapshots=config_provider("snapshots"), scenario=config_provider("tyndp_scenario"), input: - h2_demand="data/tyndp_2024_bundle/Demand Profiles", + h2_demand=rules.retrieve_tyndp.output.demand_profiles, output: h2_demand=resources("h2_demand_tyndp_{planning_horizons}.csv"), threads: 1 @@ -496,7 +513,7 @@ if config["sector"]["h2_topology_tyndp"]: snapshots=config_provider("snapshots"), scenario=config_provider("tyndp_scenario"), input: - tyndp_reference_grid="data/tyndp_2024_bundle/Line data/ReferenceGrid_Hydrogen.xlsx", + h2_reference_grid=rules.retrieve_tyndp.output.h2_reference_grid, output: h2_grid_prepped=resources("h2_reference_grid_tyndp_{planning_horizons}.csv"), interzonal_prepped=resources("h2_interzonal_tyndp_{planning_horizons}.csv"), @@ -514,8 +531,8 @@ if config["sector"]["h2_topology_tyndp"]: rule clean_tyndp_h2_imports: input: - import_potentials_raw="data/tyndp_2024_bundle/Hydrogen/H2 IMPORTS GENERATORS PROPERTIES.xlsx", - countries_centroids="data/countries_centroids.geojson", + import_potentials_raw=rules.retrieve_tyndp.output.h2_imports, + countries_centroids=rules.retrieve_countries_centroids.output, output: import_potentials_prepped=resources("h2_import_potentials_prepped.csv"), log: @@ -534,7 +551,7 @@ if config["sector"]["h2_topology_tyndp"]: params: scenario=config_provider("tyndp_scenario"), input: - import_potentials_prepped=resources("h2_import_potentials_prepped.csv"), + import_potentials_prepped=rules.clean_tyndp_h2_imports.output.import_potentials_prepped, output: import_potentials_filtered=resources( "h2_import_potentials_{planning_horizons}.csv" @@ -563,10 +580,10 @@ if config["sector"]["offshore_hubs_tyndp"]["enable"]: extendable_carriers=config_provider("electricity", "extendable_carriers"), h2_zones_tyndp=config_provider("sector", "h2_zones_tyndp"), input: - nodes="data/tyndp_2024_bundle/Offshore hubs/NODE.xlsx", - grid="data/tyndp_2024_bundle/Offshore hubs/GRID.xlsx", - electrolysers="data/tyndp_2024_bundle/Offshore hubs/ELECTROLYSER.xlsx", - generators="data/tyndp_2024_bundle/Offshore hubs/GENERATOR.xlsx", + nodes=rules.retrieve_tyndp.output.offshore_nodes, + grid=rules.retrieve_tyndp.output.offshore_grid, + electrolysers=rules.retrieve_tyndp.output.offshore_electrolysers, + generators=rules.retrieve_tyndp.output.offshore_generators, output: offshore_buses=resources("offshore_buses.csv"), offshore_grid=resources("offshore_grid.csv"), @@ -620,22 +637,6 @@ rule group_tyndp_conventionals: if config["foresight"] != "perfect": - rule plot_base_network: - params: - plotting=config_provider("plotting"), - input: - network=resources("networks/base.nc"), - regions_onshore=resources("regions_onshore.geojson"), - output: - map=resources("maps/power-network.pdf"), - threads: 1 - resources: - mem_mb=4000, - benchmark: - benchmarks("plot_base_network/base") - script: - "../scripts/plot_base_network.py" - rule plot_base_hydrogen_network: params: plotting=config_provider("plotting"), @@ -720,7 +721,7 @@ if config["benchmarking"]["enable"]: scenario=config_provider("tyndp_scenario"), snapshots=config_provider("snapshots"), input: - scenarios_figures="data/tyndp_2024_bundle/TYNDP-2024-Scenarios-Package/TYNDP_2024-Scenario-Report-Data-Figures_240522.xlsx", + scenarios_figures=rules.retrieve_tyndp_benchmark.output.file, output: benchmarks=RESULTS + "validation/resources/benchmarks_tyndp.csv", log: @@ -739,9 +740,9 @@ if config["benchmarking"]["enable"]: snapshots=config_provider("snapshots"), unit_conversion=config_provider("benchmarking", "unit_conversion"), input: - elec_demand="data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform/250117_TYNDP2024Scenarios_Electricity_Demand.xlsx", - elec_supplymix="data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform/250117_TYNDP2024Scenarios_Electricity_SupplyMix.xlsx", - elec_flex="data/tyndp_2024_bundle/TYNDP-2024-Visualisation-Platform/250117_TYNDP2024Scenarios_Electricity_Flexibility.xlsx", + elec_demand=rules.retrieve_tyndp_vp_data.output.elec_demand, + elec_supplymix=rules.retrieve_tyndp_vp_data.output.elec_supply, + elec_flex=rules.retrieve_tyndp_vp_data.output.elec_flex, output: RESULTS + "validation/resources/vp_data_tyndp.csv", log: @@ -927,7 +928,7 @@ def input_pemmdb_datas(w): rule build_pemmdb_and_trajectories: input: expand( - resources("pemmdb_capacities_{planning_horizons}.csv"), + rules.build_pemmdb_data.output.pemmdb_capacities, planning_horizons=input_pemmdb_datas, run=config["run"]["name"], ), diff --git a/rules/solve_myopic.smk b/rules/solve_myopic.smk index 41f915b8b6..9ec7a68fde 100644 --- a/rules/solve_myopic.smk +++ b/rules/solve_myopic.smk @@ -22,9 +22,6 @@ rule add_existing_baseyear: "networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc" ), powerplants=resources("powerplants_s_{clusters}.csv"), - busmap_s=resources("busmap_base_s.csv"), - busmap=resources("busmap_base_s_{clusters}.csv"), - clustered_pop_layout=resources("pop_layout_base_s_{clusters}.csv"), costs=lambda w: resources( f"costs_{config_provider("scenario", "planning_horizons",0)(w)}_processed.csv" ), @@ -100,14 +97,10 @@ rule add_brownfield: input: unpack(input_profile_tech_brownfield), unpack(input_profile_tech_brownfield_pecd), - simplify_busmap=resources("busmap_base_s.csv"), - cluster_busmap=resources("busmap_base_s_{clusters}.csv"), network=resources( "networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}.nc" ), network_p=solved_previous_horizon, #solved network at previous time step - costs=resources("costs_{planning_horizons}_processed.csv"), - cop_profiles=resources("cop_profiles_base_s_{clusters}_{planning_horizons}.nc"), carrier_mapping="data/tyndp_technology_map.csv", output: resources( @@ -147,7 +140,6 @@ rule solve_sector_network_myopic: network=resources( "networks/base_s_{clusters}_{opts}_{sector_opts}_{planning_horizons}_brownfield.nc" ), - costs=resources("costs_{planning_horizons}_processed.csv"), offshore_zone_trajectories=branch( config_provider("sector", "offshore_hubs_tyndp", "enable"), resources("offshore_zone_trajectories.csv"), diff --git a/scripts/_helpers.py b/scripts/_helpers.py index c5fd4d8442..ca744509fe 100644 --- a/scripts/_helpers.py +++ b/scripts/_helpers.py @@ -5,7 +5,6 @@ import contextlib import copy -import hashlib import logging import os import re @@ -27,14 +26,6 @@ import xarray as xr import yaml from snakemake.utils import update_config -from tenacity import ( - retry as tenacity_retry, -) -from tenacity import ( - retry_if_exception_type, - stop_after_attempt, - wait_exponential, -) from tqdm import tqdm logger = logging.getLogger(__name__) @@ -443,13 +434,6 @@ def aggregate_costs(n, flatten=False, opts=None, existing_only=False): return costs -@tenacity_retry( - stop=stop_after_attempt(3), - wait=wait_exponential(multiplier=1, min=4, max=10), - retry=retry_if_exception_type( - (requests.HTTPError, requests.ConnectionError, requests.Timeout) - ), -) def progress_retrieve(url, file, disable=False): headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"} @@ -878,78 +862,6 @@ def update_config_from_wildcards(config, w, inplace=True): return config -@tenacity_retry( - stop=stop_after_attempt(3), - wait=wait_exponential(multiplier=1, min=4, max=10), - retry=retry_if_exception_type( - (requests.HTTPError, requests.ConnectionError, requests.Timeout) - ), -) -def get_checksum_from_zenodo(file_url): - parts = file_url.split("/") - record_id = parts[parts.index("records") + 1] - filename = parts[-1] - - response = requests.get(f"https://zenodo.org/api/records/{record_id}", timeout=30) - # Raise HTTPError for transient errors - # 429: Too Many Requests (rate limiting) - # 500, 502, 503, 504: Server errors - if response.status_code in (429, 500, 502, 503, 504): - response.raise_for_status() - response.raise_for_status() - data = response.json() - - for file in data["files"]: - if file["key"] == filename: - return file["checksum"] - return None - - -def validate_checksum(file_path, zenodo_url=None, checksum=None): - """ - Validate file checksum against provided or Zenodo-retrieved checksum. - Calculates the hash of a file using 64KB chunks. Compares it against a - given checksum or one from a Zenodo URL. - - Parameters - ---------- - file_path : str - Path to the file for checksum validation. - zenodo_url : str, optional - URL of the file on Zenodo to fetch the checksum. - checksum : str, optional - Checksum (format 'hash_type:checksum_value') for validation. - - Raises - ------ - AssertionError - If the checksum does not match, or if neither `checksum` nor `zenodo_url` is provided. - - - Examples - -------- - >>> validate_checksum("/path/to/file", checksum="md5:abc123...") - >>> validate_checksum( - ... "/path/to/file", - ... zenodo_url="https://zenodo.org/records/12345/files/example.txt", - ... ) - - If the checksum is invalid, an AssertionError will be raised. - """ - assert checksum or zenodo_url, "Either checksum or zenodo_url must be provided" - if zenodo_url: - checksum = get_checksum_from_zenodo(zenodo_url) - hash_type, checksum = checksum.split(":") - hasher = hashlib.new(hash_type) - with open(file_path, "rb") as f: - for chunk in iter(lambda: f.read(65536), b""): # 64kb chunks - hasher.update(chunk) - calculated_checksum = hasher.hexdigest() - assert calculated_checksum == checksum, ( - "Checksum is invalid. This may be due to an incomplete download. Delete the file and re-execute the rule." - ) - - def get_snapshots( snapshots: dict, drop_leap_day: bool = False, freq: str = "h", **kwargs ) -> pd.DatetimeIndex: diff --git a/scripts/add_existing_baseyear.py b/scripts/add_existing_baseyear.py index 361fc3fb32..88a6243379 100644 --- a/scripts/add_existing_baseyear.py +++ b/scripts/add_existing_baseyear.py @@ -746,6 +746,38 @@ def add_heating_capacities_installed_before_baseyear( ], ) + efficiency = get_efficiency( + heat_system, "biomass", nodes, heating_efficiencies, costs + ) + + # prevents redundant addition of urban central biomass boiler which tends to crash + if ( + existing_capacities.loc[ + nodes, (heat_system.value, "biomass boiler") + ].sum() + > 0 + ): + n.add( + "Link", + nodes, + suffix=f" {heat_system} biomass boiler-{grouping_year}", + bus0=spatial.biomass.nodes, + bus1=nodes + " " + heat_system.value + " heat", + carrier=heat_system.value + " biomass boiler", + efficiency=efficiency, + capital_cost=efficiency + * costs.at["biomass boiler", "capital_cost"], + p_nom=( + existing_capacities.loc[ + nodes, (heat_system.value, "biomass boiler") + ] + * ratio + / efficiency + ), + build_year=int(grouping_year), + lifetime=costs.at["biomass boiler", "lifetime"], + ) + # delete links with p_nom=nan corresponding to extra nodes in country n.remove( "Link", diff --git a/scripts/base_network.py b/scripts/base_network.py index a77d6863a0..b8c860915d 100644 --- a/scripts/base_network.py +++ b/scripts/base_network.py @@ -676,19 +676,19 @@ def base_network( config, ): base_network = config["electricity"].get("base_network") - osm_prebuilt_version = config["electricity"].get("osm-prebuilt-version") - assert base_network in {"entsoegridkit", "osm-raw", "osm-prebuilt", "tyndp"}, ( - f"base_network must be either 'entsoegridkit', 'osm-raw', 'osm-prebuilt' or 'tyndp', but got '{base_network}'" + osm_version = config["data"]["osm"]["version"] + assert base_network in {"entsoegridkit", "osm", "tyndp"}, ( + f"base_network must be either 'entsoegridkit', 'osm' or 'tyndp', but got '{base_network}'" ) if base_network == "entsoegridkit": warnings.warn( - "The 'entsoegridkit' base network is deprecated and will be removed in future versions. Please use 'osm-raw' or 'osm-prebuilt' instead.", + "The 'entsoegridkit' base network is deprecated and will be removed in future versions. Please use 'osm' instead.", DeprecationWarning, ) logger_str = ( f"Creating base network using {base_network}" - + (f" v{osm_prebuilt_version}" if base_network == "osm-prebuilt" else "") + + (f" v{osm_version}" if base_network == "osm" else "") + "." ) logger.info(logger_str) @@ -710,7 +710,7 @@ def base_network( # Set electrical parameters of lines and links lines = _set_electrical_parameters_lines_eg(lines, config) links = _set_electrical_parameters_links_eg(links, config, links_p_nom) - elif base_network in {"osm-prebuilt", "osm-raw", "tyndp"}: + elif base_network in {"osm", "tyndp"}: links = _load_links_from_raw(buses, links) converters = _load_converters_from_raw(buses, converters) @@ -719,7 +719,7 @@ def base_network( links = _set_electrical_parameters_links_raw(links, config) else: raise ValueError( - "base_network must be either 'entsoegridkit', 'osm-raw', 'osm-prebuilt', or 'tyndp'" + "base_network must be either 'entsoegridkit', 'osm', or 'tyndp'" ) # Set electrical parameters of transformers and converters @@ -729,7 +729,7 @@ def base_network( n = pypsa.Network() n.name = ( f"PyPSA-Eur ({base_network}" - + (f" v{osm_prebuilt_version}" if base_network == "osm-prebuilt" else "") + + (f" v{osm_version}" if base_network == "osm" else "") + ")" ) diff --git a/scripts/build_biomass_potentials.py b/scripts/build_biomass_potentials.py index eeb54ae6df..a5373d10a0 100755 --- a/scripts/build_biomass_potentials.py +++ b/scripts/build_biomass_potentials.py @@ -67,9 +67,6 @@ def build_nuts_population_data(year=2013): index_col=1, )[str(year)] - # only countries - pop.drop("EU28", inplace=True) - # mapping from Cantons to NUTS3 cantons = pd.read_csv(snakemake.input.swiss_cantons) cantons = cantons.set_index(cantons.HASC.str[3:]).NUTS diff --git a/scripts/build_co2_sequestration_potentials.py b/scripts/build_co2_sequestration_potentials.py index a8334dc299..238839b3e8 100644 --- a/scripts/build_co2_sequestration_potentials.py +++ b/scripts/build_co2_sequestration_potentials.py @@ -7,7 +7,7 @@ database_en>`_. """ -from typing import Any, Union +from typing import Any import geopandas as gpd import numpy as np @@ -19,8 +19,8 @@ def convert_to_2d( - geom: Union[sg.base.BaseGeometry, Any], -) -> Union[sg.base.BaseGeometry, Any]: + geom: sg.base.BaseGeometry | Any, +) -> sg.base.BaseGeometry | Any: """ Remove the third dimension (z-coordinate) from a shapely geometry object. diff --git a/scripts/build_cop_profiles/base_cop_approximator.py b/scripts/build_cop_profiles/base_cop_approximator.py index a008136730..95436403ff 100644 --- a/scripts/build_cop_profiles/base_cop_approximator.py +++ b/scripts/build_cop_profiles/base_cop_approximator.py @@ -3,7 +3,6 @@ # SPDX-License-Identifier: MIT from abc import ABC, abstractmethod -from typing import Union import numpy as np import xarray as xr @@ -35,8 +34,8 @@ class BaseCopApproximator(ABC): def __init__( self, - sink_outlet_temperature_celsius: Union[xr.DataArray, np.array], - source_inlet_temperature_celsius: Union[xr.DataArray, np.array], + sink_outlet_temperature_celsius: xr.DataArray | np.ndarray, + source_inlet_temperature_celsius: xr.DataArray | np.ndarray, ): """ Initialize CopApproximator. @@ -51,7 +50,7 @@ def __init__( pass @property - def cop(self) -> Union[xr.DataArray, np.array]: + def cop(self) -> xr.DataArray | np.ndarray: """ Calculate the coefficient of performance (COP) for the system. @@ -70,7 +69,7 @@ def cop(self) -> Union[xr.DataArray, np.array]: return ret_val @abstractmethod - def _approximate_cop(self) -> Union[xr.DataArray, np.array]: + def _approximate_cop(self) -> xr.DataArray | np.ndarray: """ Approximate heat pump coefficient of performance (COP). @@ -83,8 +82,8 @@ def _approximate_cop(self) -> Union[xr.DataArray, np.array]: @staticmethod def celsius_to_kelvin( - t_celsius: Union[float, xr.DataArray, np.array], - ) -> Union[float, xr.DataArray, np.array]: + t_celsius: float | xr.DataArray | np.ndarray, + ) -> float | xr.DataArray | np.ndarray: """ Convert temperature from Celsius to Kelvin. @@ -106,9 +105,9 @@ def celsius_to_kelvin( @staticmethod def logarithmic_mean( - t_hot: Union[float, xr.DataArray, np.ndarray], - t_cold: Union[float, xr.DataArray, np.ndarray], - ) -> Union[float, xr.DataArray, np.ndarray]: + t_hot: float | xr.DataArray | np.ndarray, + t_cold: float | xr.DataArray | np.ndarray, + ) -> float | xr.DataArray | np.ndarray: """ Calculate the logarithmic mean temperature difference. diff --git a/scripts/build_cop_profiles/central_heating_cop_approximator.py b/scripts/build_cop_profiles/central_heating_cop_approximator.py index 10e0eb0ad3..1c060b7f11 100644 --- a/scripts/build_cop_profiles/central_heating_cop_approximator.py +++ b/scripts/build_cop_profiles/central_heating_cop_approximator.py @@ -3,8 +3,6 @@ # SPDX-License-Identifier: MIT -from typing import Union - import numpy as np import xarray as xr @@ -110,10 +108,10 @@ class CentralHeatingCopApproximator(BaseCopApproximator): def __init__( self, - sink_outlet_temperature_celsius: Union[xr.DataArray, np.array], - source_inlet_temperature_celsius: Union[xr.DataArray, np.array], - sink_inlet_temperature_celsius: Union[xr.DataArray, np.array], - source_outlet_temperature_celsius: Union[xr.DataArray, np.array], + sink_outlet_temperature_celsius: xr.DataArray | np.ndarray, + source_inlet_temperature_celsius: xr.DataArray | np.ndarray, + sink_inlet_temperature_celsius: xr.DataArray | np.ndarray, + source_outlet_temperature_celsius: xr.DataArray | np.ndarray, refrigerant: str, delta_t_pinch_point: float, isentropic_compressor_efficiency: float, @@ -163,7 +161,7 @@ def __init__( self.delta_t_pinch = delta_t_pinch_point self.min_delta_t_lift = min_delta_t_lift - def _approximate_cop(self) -> Union[xr.DataArray, np.array]: + def _approximate_cop(self) -> xr.DataArray | np.ndarray: """ Calculate the coefficient of performance (COP) for the system. @@ -203,7 +201,7 @@ def _approximate_cop(self) -> Union[xr.DataArray, np.array]: ) @property - def t_sink_mean_kelvin(self) -> Union[xr.DataArray, np.array]: + def t_sink_mean_kelvin(self) -> xr.DataArray | np.ndarray: """ Calculate the logarithmic mean temperature difference between the cold and hot sinks. @@ -218,7 +216,7 @@ def t_sink_mean_kelvin(self) -> Union[xr.DataArray, np.array]: ) @property - def t_source_mean_kelvin(self) -> Union[xr.DataArray, np.array]: + def t_source_mean_kelvin(self) -> xr.DataArray | np.ndarray: """ Calculate the logarithmic mean temperature of the heat source. @@ -232,7 +230,7 @@ def t_source_mean_kelvin(self) -> Union[xr.DataArray, np.array]: ) @property - def delta_t_mean_lift(self) -> Union[xr.DataArray, np.array]: + def delta_t_mean_lift(self) -> xr.DataArray | np.ndarray: """ Calculate the temperature lift as the difference between the logarithmic sink and source temperatures. @@ -245,7 +243,7 @@ def delta_t_mean_lift(self) -> Union[xr.DataArray, np.array]: return self.t_sink_mean_kelvin - self.t_source_mean_kelvin @property - def delta_t_lift(self) -> Union[xr.DataArray, np.array]: + def delta_t_lift(self) -> xr.DataArray | np.ndarray: """ Calculate the temperature lift as the difference between the sink and source temperatures. @@ -253,7 +251,7 @@ def delta_t_lift(self) -> Union[xr.DataArray, np.array]: return self.t_sink_out_kelvin - self.t_source_in_kelvin @property - def ideal_lorenz_cop(self) -> Union[xr.DataArray, np.array]: + def ideal_lorenz_cop(self) -> xr.DataArray | np.ndarray: """ Ideal Lorenz coefficient of performance (COP). @@ -268,7 +266,7 @@ def ideal_lorenz_cop(self) -> Union[xr.DataArray, np.array]: return self.t_sink_mean_kelvin / self.delta_t_mean_lift @property - def delta_t_refrigerant_source(self) -> Union[xr.DataArray, np.array]: + def delta_t_refrigerant_source(self) -> xr.DataArray | np.ndarray: """ Calculate the temperature difference between the refrigerant source inlet and outlet. @@ -283,7 +281,7 @@ def delta_t_refrigerant_source(self) -> Union[xr.DataArray, np.array]: ) @property - def delta_t_refrigerant_sink(self) -> Union[xr.DataArray, np.array]: + def delta_t_refrigerant_sink(self) -> xr.DataArray | np.ndarray: """ Temperature difference between the refrigerant and the sink based on approximation. @@ -296,7 +294,7 @@ def delta_t_refrigerant_sink(self) -> Union[xr.DataArray, np.array]: return self._approximate_delta_t_refrigerant_sink(self.refrigerant) @property - def ratio_evaporation_compression_work(self) -> Union[xr.DataArray, np.array]: + def ratio_evaporation_compression_work(self) -> xr.DataArray | np.ndarray: """ Calculate the ratio of evaporation to compression work based on approximation. @@ -309,7 +307,7 @@ def ratio_evaporation_compression_work(self) -> Union[xr.DataArray, np.array]: return self._ratio_evaporation_compression_work_approximation(self.refrigerant) @property - def delta_t_sink(self) -> Union[xr.DataArray, np.array]: + def delta_t_sink(self) -> xr.DataArray | np.ndarray: """ Calculate the temperature difference at the sink. @@ -321,8 +319,8 @@ def delta_t_sink(self) -> Union[xr.DataArray, np.array]: return self.t_sink_out_kelvin - self.t_sink_in_kelvin def _approximate_delta_t_refrigerant_source( - self, delta_t_source: Union[xr.DataArray, np.array] - ) -> Union[xr.DataArray, np.array]: + self, delta_t_source: xr.DataArray | np.ndarray + ) -> xr.DataArray | np.ndarray: """ Approximates the temperature difference between the refrigerant and the source. @@ -345,7 +343,7 @@ def _approximate_delta_t_refrigerant_sink( a: float = {"ammonia": 0.2, "isobutane": -0.0011}, b: float = {"ammonia": 0.2, "isobutane": 0.3}, c: float = {"ammonia": 0.016, "isobutane": 2.4}, - ) -> Union[xr.DataArray, np.array]: + ) -> xr.DataArray | np.ndarray: """ Approximates the temperature difference between the refrigerant and heat sink. @@ -394,7 +392,7 @@ def _ratio_evaporation_compression_work_approximation( a: float = {"ammonia": 0.0014, "isobutane": 0.0035}, b: float = {"ammonia": -0.0015, "isobutane": -0.0033}, c: float = {"ammonia": 0.039, "isobutane": 0.053}, - ) -> Union[xr.DataArray, np.array]: + ) -> xr.DataArray | np.ndarray: """ Calculate the ratio of evaporation to compression work approximation. diff --git a/scripts/build_cop_profiles/decentral_heating_cop_approximator.py b/scripts/build_cop_profiles/decentral_heating_cop_approximator.py index f49b27f73e..277d2d1fc4 100644 --- a/scripts/build_cop_profiles/decentral_heating_cop_approximator.py +++ b/scripts/build_cop_profiles/decentral_heating_cop_approximator.py @@ -3,8 +3,6 @@ # SPDX-License-Identifier: MIT -from typing import Union - import numpy as np import xarray as xr @@ -45,8 +43,8 @@ class DecentralHeatingCopApproximator(BaseCopApproximator): def __init__( self, - sink_outlet_temperature_celsius: Union[xr.DataArray, np.array], - source_inlet_temperature_celsius: Union[xr.DataArray, np.array], + sink_outlet_temperature_celsius: xr.DataArray | np.ndarray, + source_inlet_temperature_celsius: xr.DataArray | np.ndarray, source_type: str, ): """ @@ -70,7 +68,7 @@ def __init__( else: self.source_type = source_type - def _approximate_cop(self) -> Union[xr.DataArray, np.array]: + def _approximate_cop(self) -> xr.DataArray | np.ndarray: """ Compute the COP values using quadratic regression for air-/ground- source heat pumps. @@ -85,7 +83,7 @@ def _approximate_cop(self) -> Union[xr.DataArray, np.array]: elif self.source_type == "ground": return self._approximate_cop_ground_source() - def _approximate_cop_air_source(self) -> Union[xr.DataArray, np.array]: + def _approximate_cop_air_source(self) -> xr.DataArray | np.ndarray: """ Evaluate quadratic regression for an air-sourced heat pump. @@ -98,7 +96,7 @@ def _approximate_cop_air_source(self) -> Union[xr.DataArray, np.array]: """ return 6.81 - 0.121 * self.delta_t + 0.000630 * self.delta_t**2 - def _approximate_cop_ground_source(self) -> Union[xr.DataArray, np.array]: + def _approximate_cop_ground_source(self) -> xr.DataArray | np.ndarray: """ Evaluate quadratic regression for a ground-sourced heat pump. diff --git a/scripts/build_country_hdd.py b/scripts/build_country_hdd.py new file mode 100644 index 0000000000..5db7c0baeb --- /dev/null +++ b/scripts/build_country_hdd.py @@ -0,0 +1,51 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: MIT +""" +Build country-level heating degree days in Europe for each country. Used for rescaling heat demand in weather years not covered by energy balance statistics. + +Outputs +------- + +- ``data/country_runoff/build/unknown/era5-hdd-per-country.csv``: + + =================== ========== =========== ========================================================= + Field Dimensions Unit Description + =================== ========== =========== ========================================================= + index/time time day Datestamp, YYYY-MM-DD + ------------------- ---------- ----------- --------------------------------------------------------- + country ISO-3166 A2 Aggregated HDDs per country + =================== ========== =========== ========================================================= + +""" + +import logging + +import atlite +import geopandas as gpd +import pandas as pd + +from scripts._helpers import ( + configure_logging, + load_cutout, +) + +logger = logging.getLogger(__name__) + +if __name__ == "__main__": + if "snakemake" not in globals(): + from scripts._helpers import mock_snakemake + + snakemake = mock_snakemake("build_country_hdd") + configure_logging(snakemake) + + cutout: atlite.Cutout = load_cutout(snakemake.input.cutouts) + country_shapes = gpd.read_file(snakemake.input.country_shapes).set_index("name")[ + "geometry" + ] + + ds = cutout.heat_demand(shapes=country_shapes) + + df: pd.DataFrame = ds.to_pandas().astype(int) + + df.to_csv(snakemake.output.era5_hdd) diff --git a/scripts/build_country_runoff.py b/scripts/build_country_runoff.py new file mode 100644 index 0000000000..32e07e19be --- /dev/null +++ b/scripts/build_country_runoff.py @@ -0,0 +1,53 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: MIT +""" +Build daily hydro runoff for each country to fill missing EIA statistics for hydro generation. + +Outputs +------- + +- ``data/country_runoff/build/unknown/era5-runoff-per-country.csv``: + + =================== ========== =========== ========================================================= + Field Dimensions Unit Description + =================== ========== =========== ========================================================= + index/time time day Datestamp, YYYY-MM-DD + ------------------- ---------- ----------- --------------------------------------------------------- + country ISO-3166 A2 Daily total runoff (volume per area) per country + =================== ========== =========== ========================================================= + + +""" + +import logging + +import atlite +import geopandas as gpd +import pandas as pd + +from scripts._helpers import ( + configure_logging, + load_cutout, +) + +logger = logging.getLogger(__name__) + +if __name__ == "__main__": + if "snakemake" not in globals(): + from scripts._helpers import mock_snakemake + + snakemake = mock_snakemake("build_country_runoff") + configure_logging(snakemake) + + cutout: atlite.Cutout = load_cutout(snakemake.input.cutouts) + country_shapes = gpd.read_file(snakemake.input.country_shapes).set_index("name")[ + "geometry" + ] + + ds = cutout.runoff(shapes=country_shapes) + + df: pd.DataFrame = ds.to_pandas() + df = df.resample("D").sum().astype(int) + + df.to_csv(snakemake.output.era5_runoff) diff --git a/scripts/build_cutout.py b/scripts/build_cutout.py index 7d9992b25b..eea963de1a 100644 --- a/scripts/build_cutout.py +++ b/scripts/build_cutout.py @@ -71,8 +71,6 @@ import logging import atlite -import geopandas as gpd -import pandas as pd from scripts._helpers import configure_logging, set_scenario_config @@ -88,19 +86,12 @@ cutout_params = snakemake.params.cutouts[snakemake.wildcards.cutout] cutout_params["time"] = slice(*cutout_params["time"]) + cutout_params["x"] = slice(*cutout_params["x"]) + cutout_params["y"] = slice(*cutout_params["y"]) + prepare_kwargs = cutout_params.pop("prepare_kwargs", {}) - if {"x", "y", "bounds"}.isdisjoint(cutout_params): - # Determine the bounds from bus regions with a buffer of two grid cells - onshore = gpd.read_file(snakemake.input.regions_onshore) - offshore = gpd.read_file(snakemake.input.regions_offshore) - regions = pd.concat([onshore, offshore]) - d = max(cutout_params.get("dx", 0.25), cutout_params.get("dy", 0.25)) * 2 - cutout_params["bounds"] = regions.total_bounds + [-d, -d, d, d] - elif {"x", "y"}.issubset(cutout_params): - cutout_params["x"] = slice(*cutout_params["x"]) - cutout_params["y"] = slice(*cutout_params["y"]) - - logger.info(f"Preparing cutout with parameters {cutout_params}.") - features = cutout_params.pop("features", None) + logger.info(f"Creating cutout with parameters {cutout_params}.") cutout = atlite.Cutout(snakemake.output[0], **cutout_params) - cutout.prepare(features=features) + + logger.info(f"Preparing cutout the cutout with parameters {prepare_kwargs}.") + cutout.prepare(**prepare_kwargs) diff --git a/scripts/build_energy_totals.py b/scripts/build_energy_totals.py index 0cd3b3f03a..5430921a5d 100644 --- a/scripts/build_energy_totals.py +++ b/scripts/build_energy_totals.py @@ -359,6 +359,9 @@ def idees_per_country(ct: str, base_dir: str) -> pd.DataFrame: assert df.index[6] == "Natural gas" ct_totals["gas residential space efficiency"] = df.iloc[6] + assert df.index[7] == "Biomass" + ct_totals["biomass residential space efficiency"] = df.iloc[7] + ct_totals["total residential water efficiency"] = df.loc["Water heating"] assert df.index[18] == "Diesel oil" @@ -367,6 +370,9 @@ def idees_per_country(ct: str, base_dir: str) -> pd.DataFrame: assert df.index[19] == "Natural gas" ct_totals["gas residential water efficiency"] = df.iloc[19] + assert df.index[20] == "Biomass" + ct_totals["biomass residential water efficiency"] = df.iloc[20] + # services df = pd.read_excel(fn_tertiary, "SER_hh_fec", index_col=0) @@ -410,6 +416,9 @@ def idees_per_country(ct: str, base_dir: str) -> pd.DataFrame: assert df.index[7] == "Conventional gas heaters" ct_totals["gas services space efficiency"] = df.iloc[7] + assert df.index[8] == "Biomass" + ct_totals["biomass services space efficiency"] = df.iloc[8] + ct_totals["total services water efficiency"] = df.loc["Hot water"] assert df.index[20] == "Diesel oil" @@ -418,6 +427,9 @@ def idees_per_country(ct: str, base_dir: str) -> pd.DataFrame: assert df.index[21] == "Natural gas" ct_totals["gas services water efficiency"] = df.iloc[21] + assert df.index[22] == "Biomass" + ct_totals["biomass services water efficiency"] = df.iloc[22] + # agriculture, forestry and fishing start = "Detailed split of energy consumption (ktoe)" @@ -1172,7 +1184,7 @@ def build_transport_data( Notes ----- - The function first collects the number of passenger cars. - - For Switzerland, it reads the data from `data/gr-e-11.03.02.01.01-cc.csv`. + - For Switzerland, it reads the data from `data/*/vehicle_stock.csv`. - It fills missing data on the number of cars and fuel efficiency with average data. References @@ -1194,7 +1206,18 @@ def build_transport_data( if "CH" in countries: fn = snakemake.input.swiss_transport - swiss_cars = pd.read_csv(fn, index_col=0).loc[years, ["passenger cars"]] + + # Detect delimiter automatically; BFS files often use ';' + with open(fn) as f: + first_line = f.readline() + sep = ";" if ";" in first_line and "," not in first_line else "," + + swiss_cars = pd.read_csv(fn, index_col=0, sep=sep).loc[ + years, ["passenger cars"] + ] + + # Ensure index is integer years + swiss_cars.index = swiss_cars.index.astype(int) swiss_cars.index = pd.MultiIndex.from_product( [["CH"], swiss_cars.index], names=["country", "year"] diff --git a/scripts/build_mobility_profiles.py b/scripts/build_mobility_profiles.py new file mode 100644 index 0000000000..d3103edf93 --- /dev/null +++ b/scripts/build_mobility_profiles.py @@ -0,0 +1,154 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: MIT +""" +Create profiles for road transport demand using measured data from vehicle monitoring by the German Federal Highway Research Institute (BASt). + +This rule downloads the data files, extracts them, and then aggregates the data to weekly profiles for two vehicle types: +- "kfz": All motor vehicles (="Kraftfahrzeuge", i.e. cars, trucks, buses, motorcycles) +- "pkw": Passenger cars only (="Personenkraftwagen") + +Outputs +------- + +- ``data/mobility_profiles/build//kfz.csv``: Weekly profile for all motor vehicles (cars, trucks, buses, motorcycles). +- ``data/mobility_profiles/build//pkw.csv``: Weekly profile for passenger cars only. + +**kfz.csv** + + =================== ========== ========== ========================================================= + Field Dimensions Unit Description + =================== ========== ========== ========================================================= + day day day of week Day of the week (0=Monday, 6=Sunday) + ------------------- ---------- ----------- --------------------------------------------------------- + hour hour hour of day Hour of the day (0-23) + ------------------- ---------- ----------- --------------------------------------------------------- + count day, hour -- Aggregated vehicle counts for all motor vehicles + (across all aggregated years and street types) + ------------------- ---------- ---------- --------------------------------------------------------- + n_counts day, hour -- Number of data points that were aggregated. + =================== ========== ========== ========================================================= + +**pkw.csv** + =================== ========== ========== ========================================================= + Field Dimensions Unit Description + =================== ========== ========== ========================================================= + day day day of week Day of the week (0=Monday, 6=Sunday) + ------------------- ---------- ----------- --------------------------------------------------------- + hour hour hour of day Hour of the day (0-23) + ------------------- ---------- ----------- --------------------------------------------------------- + count day, hour -- Aggregated vehicle counts for passenger cars only + (across all aggregated years and street types) + ------------------- ---------- ---------- --------------------------------------------------------- + n_counts day, hour -- Number of data points that were aggregated. + =================== ========== ========== ========================================================= + +""" + +import logging +from pathlib import Path +from shutil import unpack_archive + +import pandas as pd + +from scripts._helpers import configure_logging, set_scenario_config + +logger = logging.getLogger(__name__) + +if __name__ == "__main__": + if "snakemake" not in globals(): + from scripts._helpers import mock_snakemake + + snakemake = mock_snakemake("build_mobility_profiles") + configure_logging(snakemake) + set_scenario_config(snakemake) + + # Zip files have been downloaded by snakemake as storage objects + # unzip them and move the extracted files into the `raw_files` folder + zip_files = [Path(fp) for fp in snakemake.input["zip_files"]] + output_folder = Path(snakemake.output["raw_files"]) + + output_files = [] + for zip_file in zip_files: + unpack_archive(zip_file, output_folder) + output_file = output_folder / zip_file.name.replace(".zip", ".txt") + output_files.append(output_file) + logger.info(f"Unpacked {zip_file} to {output_file}") + + # We use this to add some information on the files used to create the output file later + file_names = [f.name for f in zip_files] + + # Load each file as a dataframe and then concatenate them + # (faster this way) + output_files = sorted(output_files) + dfs = [] + for output_file in output_files: + logger.info(f"Processing {str(output_file.name)}") + + df = pd.read_csv( + output_file, + skiprows=0, + delimiter=";", + # Only load the columns we need: + # 'Datum' is the date (YYMMDD) + # 'Wotag' is the day of the week (1=Mon, 7=Sun) + # 'Stunde' is the hour of the day (1-24) + # 'KFZ|Pkw_R1' and 'KFZ|Pkw_R2' are the counts in each direction on the road + # + usecols=[ + "Datum", + "Wotag", + "Stunde", + "KFZ_R1", + "KFZ_R2", + "Pkw_R1", + "Pkw_R2", + ], + ) + + dfs.append(df) + vehicle_counts = pd.concat(dfs, ignore_index=True) + + # Turn 'Datum' into a datetime (YYYY-MM-DD) - we don't need it for the aggregation, but helpful for debugging/checks + vehicle_counts["date"] = pd.to_datetime("20" + vehicle_counts["Datum"].astype(str)) + + # Rename columns to English + vehicle_counts = vehicle_counts.rename( + columns={ + "Wotag": "day", + "Stunde": "hour", + } + ) + + # Aggregate data for both directions on the road + vehicle_counts["kfz"] = vehicle_counts["KFZ_R1"] + vehicle_counts["KFZ_R2"] + vehicle_counts["pkw"] = vehicle_counts["Pkw_R1"] + vehicle_counts["Pkw_R2"] + + # vehicles types to aggregate for and output files to write to + vehicle_types = { + "kfz": snakemake.output["kfz"], + "pkw": snakemake.output["pkw"], + } + for vehicle_type, output_file in vehicle_types.items(): + logger.info(f"Aggregating and writing {vehicle_type} data to {output_file}") + + aggregated_data = vehicle_counts.groupby(["day", "hour"], as_index=False).agg( + count=(vehicle_type, "sum"), n_counts=(vehicle_type, "count") + ) + + # Adjust day and hour to start from 0 (to match the expected data conventions) + aggregated_data["day"] -= 1 + aggregated_data["hour"] -= 1 + + aggregated_data.to_csv(output_file, index=False) + + # Add additional information to the beginning of the file + # this information and format is similar to the original data format used by PyPSA-Eur previously + with open(output_file, "r+") as file: + content = file.read() + file.seek(0, 0) + file.write( + f"# File generated for type: {vehicle_type} using data for: {', '.join(file_names)}\n" + ) + file.write(f"# Time of generation: {pd.Timestamp.now()}\n") + file.write(content) diff --git a/scripts/build_natura.py b/scripts/build_natura.py new file mode 100644 index 0000000000..94f16a9b64 --- /dev/null +++ b/scripts/build_natura.py @@ -0,0 +1,126 @@ +# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors +# +# SPDX-License-Identifier: MIT +""" +Rasters the vector data of the `Natura 2000. + +`_ natural protection areas onto all +cutout regions. + +Relevant Settings +----------------- + +.. code:: yaml + + renewable: + {technology}: + cutout: + +.. seealso:: + Documentation of the configuration file ``config/config.yaml`` at + :ref:`renewable_cf` + +Inputs +------ + +- ``data/bundle/natura/Natura2000_end2015.shp``: `Natura 2000 `_ natural protection areas. + + .. image:: img/natura.png + :scale: 33 % + +Outputs +------- + +- ``resources/natura.tiff``: Rasterized version of `Natura 2000 `_ natural protection areas to reduce computation times. + + .. image:: img/natura.png + :scale: 33 % + +Description +----------- +""" + +import logging +import shutil +from pathlib import Path + +import atlite +import geopandas as gpd +import rasterio as rio +from _helpers import configure_logging, set_scenario_config +from rasterio.features import geometry_mask +from rasterio.warp import transform_bounds + +logger = logging.getLogger(__name__) + + +def determine_cutout_xXyY(cutout_name): + """ + Determine the full extent of a cutout. + + Since the coordinates of the cutout data are given as the + center of the grid cells, the extent of the cutout is + calculated by adding/subtracting half of the grid cell size. + + + Parameters + ---------- + cutout_name : str + Path to the cutout. + + Returns + ------- + A list of extent coordinates in the order [x, X, y, Y]. + """ + cutout = atlite.Cutout(cutout_name) + assert cutout.crs.to_epsg() == 4326 + x, X, y, Y = cutout.extent + dx, dy = cutout.dx, cutout.dy + return [x - dx / 2.0, X + dx / 2.0, y - dy / 2.0, Y + dy / 2.0] + + +def get_transform_and_shape(bounds, res): + left, bottom = [(b // res) * res for b in bounds[:2]] + right, top = [(b // res + 1) * res for b in bounds[2:]] + shape = int((top - bottom) // res), int((right - left) / res) + transform = rio.Affine(res, 0, left, 0, -res, top) + return transform, shape + + +if __name__ == "__main__": + if "snakemake" not in globals(): + from _helpers import mock_snakemake + + snakemake = mock_snakemake("build_natura_raster") + configure_logging(snakemake) + set_scenario_config(snakemake) + + # Move the downloaded archive and unpack it + shutil.move(snakemake.input["online"], snakemake.output["zip"]) + shutil.unpack_archive(snakemake.output["zip"], snakemake.output["raw"]) + + # Find the shapefile in the unpacked nested directory + shapefile = list(Path(snakemake.output["raw"]).rglob("*.shp"))[0] + + x, X, y, Y = determine_cutout_xXyY(snakemake.input["cutout"]) + bounds = transform_bounds(4326, 3035, x, y, X, Y) + transform, out_shape = get_transform_and_shape(bounds, res=100) + + # adjusted boundaries + shapes = gpd.read_file(shapefile).to_crs(3035) + raster = ~geometry_mask(shapes.geometry, out_shape, transform) + raster = raster.astype(rio.uint8) + + with rio.open( + snakemake.output["raster"], + "w", + driver="GTiff", + dtype=rio.uint8, + count=1, + transform=transform, + crs=3035, + compress="lzw", + width=raster.shape[1], + height=raster.shape[0], + ) as dst: + dst.write(raster, indexes=1) diff --git a/scripts/build_powerplants.py b/scripts/build_powerplants.py index 993fe5ebe0..4a8009349a 100755 --- a/scripts/build_powerplants.py +++ b/scripts/build_powerplants.py @@ -154,9 +154,14 @@ def replace_natural_gas_fueltype(df): n = pypsa.Network(snakemake.input.network) countries = snakemake.params.countries + # Steps copied from PPM: Usually run by PPM when using pm.powerplants(...) from cache ppl = ( - pm.powerplants(from_url=True) - .powerplant.fill_missing_decommissioning_years() + pd.read_csv(snakemake.input.powerplants, index_col=0, header=[0]) + .pipe(pm.collection.parse_string_to_dict, ["projectID", "EIC"]) + .pipe(pm.collection.set_column_name, "Matched Data") + ) + ppl = ( + ppl.powerplant.fill_missing_decommissioning_years() .powerplant.convert_country_to_alpha2() .query('Fueltype not in ["Solar", "Wind"] and Country in @countries') .assign(Technology=replace_natural_gas_technology) diff --git a/scripts/build_surface_water_heat_potentials/approximators/river_water_heat_approximator.py b/scripts/build_surface_water_heat_potentials/approximators/river_water_heat_approximator.py index 5a9caa9424..b23f291144 100644 --- a/scripts/build_surface_water_heat_potentials/approximators/river_water_heat_approximator.py +++ b/scripts/build_surface_water_heat_potentials/approximators/river_water_heat_approximator.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: MIT import warnings -from typing import Union import geopandas as gpd import numpy as np @@ -29,7 +28,7 @@ def __init__( self, volume_flow: xr.DataArray, ambient_temperature: xr.DataArray, - region: Union[shapely.geometry.polygon.Polygon, gpd.GeoSeries], + region: shapely.geometry.polygon.Polygon | gpd.GeoSeries, max_relative_volume_flow: float = 1.0, delta_t_max: float = 1, min_outlet_temperature: float = 1, diff --git a/scripts/build_surface_water_heat_potentials/approximators/sea_water_heat_approximator.py b/scripts/build_surface_water_heat_potentials/approximators/sea_water_heat_approximator.py index a0b74dceb0..6ff15dc744 100644 --- a/scripts/build_surface_water_heat_potentials/approximators/sea_water_heat_approximator.py +++ b/scripts/build_surface_water_heat_potentials/approximators/sea_water_heat_approximator.py @@ -2,7 +2,6 @@ # # SPDX-License-Identifier: MIT import logging -from typing import Union import geopandas as gpd import shapely @@ -30,7 +29,7 @@ class SeaWaterHeatApproximator(SurfaceWaterHeatApproximator): def __init__( self, water_temperature: xr.DataArray, - region: Union[shapely.geometry.polygon.Polygon, gpd.GeoSeries], + region: shapely.geometry.polygon.Polygon | gpd.GeoSeries, min_inlet_temperature: float = 1, ) -> None: # buffer the region geometry by half the data resolution diff --git a/scripts/build_surface_water_heat_potentials/approximators/surface_water_heat_approximator.py b/scripts/build_surface_water_heat_potentials/approximators/surface_water_heat_approximator.py index ed4bb4bc32..41c8f283ea 100644 --- a/scripts/build_surface_water_heat_potentials/approximators/surface_water_heat_approximator.py +++ b/scripts/build_surface_water_heat_potentials/approximators/surface_water_heat_approximator.py @@ -4,7 +4,6 @@ import logging from abc import ABC from functools import cached_property -from typing import Union import geopandas as gpd import numpy as np @@ -33,7 +32,7 @@ def __init__( self, volume_flow: xr.DataArray, water_temperature: xr.DataArray, - region: Union[shapely.geometry.polygon.Polygon, gpd.GeoSeries], + region: shapely.geometry.polygon.Polygon | gpd.GeoSeries, max_relative_volume_flow: float = 1.0, delta_t_max: float = 4, min_outlet_temperature: float = 1, diff --git a/scripts/build_tyndp_network.py b/scripts/build_tyndp_network.py index 8751017029..96e3ce7978 100644 --- a/scripts/build_tyndp_network.py +++ b/scripts/build_tyndp_network.py @@ -412,7 +412,7 @@ def build_links( ) # Build links - links = build_links(snakemake.input.reference_grid, buses) + links = build_links(snakemake.input.elec_reference_grid, buses) # Build placeholder lines, converters and transformers as empty DataFrames lines = gpd.GeoDataFrame(columns=LINES_COLUMNS, geometry="geometry").set_index( diff --git a/scripts/definitions/heat_system.py b/scripts/definitions/heat_system.py index 3e682eea6f..6dc043f51a 100644 --- a/scripts/definitions/heat_system.py +++ b/scripts/definitions/heat_system.py @@ -285,3 +285,16 @@ def oil_boiler_costs_name(self) -> str: The name for the oil boiler costs. """ return "decentral oil boiler" + + @property + def biomass_boiler_costs_name(self) -> str: + """ + Generates the name for the biomass boiler costs based on the heat system. + Used to retrieve data from `technology-data `. + + Returns + ------- + str + The name for the biomass boiler costs. + """ + return "biomass boiler" diff --git a/scripts/plot_balance_map.py b/scripts/plot_balance_map.py index 1c3be2e7fa..a6f1d9403a 100644 --- a/scripts/plot_balance_map.py +++ b/scripts/plot_balance_map.py @@ -3,7 +3,7 @@ # # SPDX-License-Identifier: MIT """ -Create energy balance maps for the defined carriers. +Create static energy balance maps for the defined carriers using`n.plot()`. """ import geopandas as gpd @@ -32,7 +32,7 @@ snakemake = mock_snakemake( "plot_balance_map", - clusters="10", + clusters="50", opts="", sector_opts="", planning_horizons="2050", @@ -44,18 +44,22 @@ update_config_from_wildcards(snakemake.config, snakemake.wildcards) config = snakemake.params.plotting - carrier = snakemake.wildcards.carrier imports_as_flows = config["balance_map"]["imports_as_flows"] n = pypsa.Network(snakemake.input.network) if imports_as_flows: n.buses.loc[:, "carrier"] = n.buses.carrier.str.replace("import ", "") sanitize_carriers(n, snakemake.config) - pypsa.set_option("params.statistics.round", 3) + pypsa.set_option("params.statistics.round", 8) pypsa.set_option("params.statistics.drop_zero", True) pypsa.set_option("params.statistics.nice_names", False) regions = gpd.read_file(snakemake.input.regions).set_index("name") + carrier = snakemake.wildcards.carrier + settings = snakemake.params.settings + carrier = carrier.replace( + "_", " " + ) # needed for slurm environment where [space] is not allowed # fill empty colors or "" with light grey mask = n.carriers.color.isna() | n.carriers.color.eq("") @@ -67,8 +71,8 @@ # get balance map plotting parameters boundaries = config["map"]["boundaries"] - config = config["balance_map"][carrier] - conversion = config["unit_conversion"] + unit_conversion = settings["unit_conversion"] + branch_color = settings.get("branch_color") or "darkseagreen" if carrier not in n.buses.carrier.unique(): raise ValueError( @@ -97,7 +101,7 @@ eb.loc[components] = eb.loc[components].drop(index=carriers_in_eb, level="carrier") eb = eb.dropna() - bus_sizes = eb.groupby(level=["bus", "carrier"]).sum().div(conversion) + bus_sizes = eb.groupby(level=["bus", "carrier"]).sum().div(unit_conversion) bus_sizes = bus_sizes.sort_values(ascending=False) # Get colors for carriers @@ -118,7 +122,9 @@ boundaries = list(np.add(boundaries, [0, 0, -7, 0])) # line and links widths according to optimal capacity - flow = n.statistics.transmission(groupby=False, bus_carrier=carrier).div(conversion) + flow = n.statistics.transmission(groupby=False, bus_carrier=carrier).div( + unit_conversion + ) if not flow.empty: flow_reversed_mask = flow.index.get_level_values(1).str.contains("reversed") @@ -133,9 +139,9 @@ link_widths = flow.get("Link", fallback).abs() # define maximal size of buses and branch width - bus_size_factor = config["bus_factor"] - branch_width_factor = config["branch_factor"] - flow_size_factor = config["flow_factor"] + bus_size_factor = settings["bus_factor"] + branch_width_factor = settings["branch_factor"] + flow_size_factor = settings["flow_factor"] # get prices per region as colormap buses = n.buses.query("carrier in @carrier").index @@ -157,10 +163,10 @@ shift = 0 vmin, vmax = regions.price.min() - shift, regions.price.max() + shift - if config["vmin"] is not None: - vmin = config["vmin"] - if config["vmax"] is not None: - vmax = config["vmax"] + if settings["vmin"] is not None: + vmin = settings["vmin"] + if settings["vmax"] is not None: + vmax = settings["vmax"] crs = load_projection(snakemake.params.plotting) @@ -182,6 +188,7 @@ link_widths=link_widths * branch_width_factor, line_flow=line_flow * flow_size_factor if line_flow is not None else None, link_flow=link_flow * flow_size_factor if link_flow is not None else None, + link_color=branch_color, transformer_flow=transformer_flow * flow_size_factor if transformer_flow is not None else None, @@ -195,7 +202,7 @@ regions.to_crs(crs.proj4_init).plot( ax=ax, column="price", - cmap=config["cmap"], + cmap=settings["cmap"], vmin=vmin, vmax=vmax, edgecolor="None", @@ -206,8 +213,8 @@ # Add colorbar norm = plt.Normalize(vmin=vmin, vmax=vmax) - sm = plt.cm.ScalarMappable(cmap=config["cmap"], norm=norm) - price_unit = config["region_unit"] + sm = plt.cm.ScalarMappable(cmap=settings["cmap"], norm=norm) + price_unit = settings["region_unit"] cbr = fig.colorbar( sm, ax=ax, @@ -277,8 +284,8 @@ def get_total_abs(carrier, sign): ) # Add bus legend - legend_bus_sizes = config["bus_sizes"] - carrier_unit = config["unit"] + legend_bus_sizes = settings["bus_sizes"] + unit = settings["unit"] if legend_bus_sizes is not None: add_legend_semicircles( ax, @@ -286,7 +293,7 @@ def get_total_abs(carrier, sign): s * bus_size_factor * SEMICIRCLE_CORRECTION_FACTOR for s in legend_bus_sizes ], - [f"{s} {carrier_unit}" for s in legend_bus_sizes], + [f"{s} {unit}" for s in legend_bus_sizes], patch_kw={"color": "#666"}, legend_kw={ "bbox_to_anchor": (0, 1), @@ -295,12 +302,12 @@ def get_total_abs(carrier, sign): ) # Add branch legend - legend_branch_sizes = config["branch_sizes"] + legend_branch_sizes = settings["branch_sizes"] if legend_branch_sizes is not None: add_legend_lines( ax, [s * branch_width_factor for s in legend_branch_sizes], - [f"{s} {carrier_unit}" for s in legend_branch_sizes], + [f"{s} {unit}" for s in legend_branch_sizes], patch_kw={"color": "#666"}, legend_kw={"bbox_to_anchor": (0.25, 1), **legend_kwargs}, ) diff --git a/scripts/plot_balance_map_interactive.py b/scripts/plot_balance_map_interactive.py new file mode 100644 index 0000000000..14078bb182 --- /dev/null +++ b/scripts/plot_balance_map_interactive.py @@ -0,0 +1,258 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: MIT +""" +Create interactive energy balance maps for the defined carriers using `n.explore()`. +""" + +import geopandas as gpd +import matplotlib.colors as mcolors +import matplotlib.pyplot as plt +import pydeck as pdk +import pypsa +from pypsa.plot.maps.interactive import PydeckPlotter +from pypsa.statistics import get_transmission_carriers + +from scripts._helpers import ( + configure_logging, + set_scenario_config, + update_config_from_wildcards, +) +from scripts.add_electricity import sanitize_carriers + +VALID_MAP_STYLES = PydeckPlotter.VALID_MAP_STYLES + + +def scalar_to_rgba( + value: float, + *, + norm: mcolors.Normalize, + cmap: mcolors.Colormap, + alpha: float = 1.0, +) -> list[int]: + """ + Map a scalar float value to an RGBA color encoded as 8-bit integers. + + Parameters + ---------- + value : float + Scalar input to map through the normalization and colormap. + norm : matplotlib.colors.Normalize + Normalization defining vmin and vmax used for scaling. + cmap : matplotlib.colors.Colormap + Colormap used to convert normalized values to RGBA colors. + alpha : float, optional (default = 1.0) + Opacity in the range [0, 1]. Overrides the colormap's alpha. + + Returns + ------- + List[int] + A list ``[R, G, B, A]`` where each channel is an integer in the 0–255 range. + """ + + # Clamp to normalization bounds + p = max(norm.vmin, min(norm.vmax, value)) + + # Convert to RGBA floats (0–1) + r, g, b, _ = cmap(norm(p)) + + # Clamp and apply alpha + a = alpha if 0.0 <= alpha <= 1.0 else 1.0 + + # Convert to 8-bit integers + return [ + int(r * 255), + int(g * 255), + int(b * 255), + int(a * 255), + ] + + +if __name__ == "__main__": + if "snakemake" not in globals(): + from scripts._helpers import mock_snakemake + + snakemake = mock_snakemake( + "plot_balance_map_interactive", + clusters=50, + opts="", + sector_opts="", + planning_horizons="2050", + carrier="H2", + ) + + configure_logging(snakemake) + set_scenario_config(snakemake) + update_config_from_wildcards(snakemake.config, snakemake.wildcards) + + # Interactive map settings + settings = snakemake.params.settings + unit_conversion = settings["unit_conversion"] + cmap = settings["cmap"] + region_alpha = settings["region_alpha"] + region_unit = settings["region_unit"] + branch_color = settings["branch_color"] + arrow_size_factor = settings["arrow_size_factor"] + bus_size_max = settings["bus_size_max"] + branch_width_max = settings["branch_width_max"] + map_style = settings.get("map_style") + map_style = VALID_MAP_STYLES.get(map_style, "road") + tooltip = settings["tooltip"] + + # Import + n = pypsa.Network(snakemake.input.network) + sanitize_carriers(n, snakemake.config) + pypsa.options.params.statistics.round = 8 + pypsa.options.params.statistics.drop_zero = True + pypsa.options.params.statistics.nice_names = False + + regions = gpd.read_file(snakemake.input.regions).set_index("name") + carrier = snakemake.wildcards.carrier + carrier = carrier.replace("_", " ") + + # Fill missing carrier colors + missing_color = "#808080" + b_missing = n.carriers.query("color == '' or color.isnull()").index + n.carriers.loc[b_missing, "color"] = missing_color + + transmission_carriers = get_transmission_carriers(n, bus_carrier=carrier).rename( + {"name": "carrier"} + ) + components = transmission_carriers.unique("component") + carriers = transmission_carriers.unique("carrier") + + ### Pie charts + eb = n.statistics.energy_balance( + bus_carrier=carrier, + groupby=["bus", "carrier"], + ) + + # Only carriers that are also in the energy balance + carriers_in_eb = carriers[carriers.isin(eb.index.get_level_values("carrier"))] + + eb.loc[components] = eb.loc[components].drop(index=carriers_in_eb, level="carrier") + eb = eb.dropna() + bus_size = eb.groupby(level=["bus", "carrier"]).sum() + + # line and links widths according to optimal capacity + flow = n.statistics.transmission(groupby=False, bus_carrier=carrier) + if not flow.empty: + flow_reversed_mask = flow.index.get_level_values(1).str.contains("reversed") + flow_reversed = flow[flow_reversed_mask].rename( + lambda x: x.replace("-reversed", "") + ) + flow = flow[~flow_reversed_mask].subtract(flow_reversed, fill_value=0) + + # only line first index + line_flow = ( + flow.loc[flow.index.get_level_values(0).str.contains("Line")] + .copy() + .droplevel(0) + ) + link_flow = ( + flow.loc[flow.index.get_level_values(0).str.contains("Link")] + .copy() + .droplevel(0) + ) + + branch_components = ["Link"] + if carrier == "AC": + branch_components = ["Line", "Link"] + + ### Prices + buses = n.buses.query("carrier in @carrier").index + demand = ( + n.statistics.energy_balance( + bus_carrier=carrier, aggregate_time=False, groupby=["bus", "carrier"] + ) + .clip(lower=0) + .groupby("bus") + .sum() + .reindex(buses) + .rename(n.buses.location) + .T + ) + + weights = n.snapshot_weightings.generators + price = ( + weights + @ n.buses_t.marginal_price.reindex(buses, axis=1).rename( + n.buses.location, axis=1 + ) + / weights.sum() + ) + + if carrier == "co2 stored" and "CO2Limit" in n.global_constraints.index: + co2_price = n.global_constraints.loc["CO2Limit", "mu"] + price = price - co2_price + + # if only one price is available, use this price for all regions + if price.size == 1: + regions["price"] = price.values[0] + shift = round(abs(price.values[0]) / 20, 0) + else: + regions["price"] = price.reindex(regions.index).fillna(0) + shift = 0 + + vmin, vmax = regions.price.min() - shift, regions.price.max() + shift + if settings["vmin"] is not None: + vmin = settings["vmin"] + if settings["vmax"] is not None: + vmax = settings["vmax"] + + # Map colors + norm = mcolors.Normalize(vmin=vmin, vmax=vmax) + cmap = plt.get_cmap(cmap) + + regions["color"] = regions["price"].apply( + scalar_to_rgba, + norm=norm, + cmap=cmap, + alpha=region_alpha, + ) + + # Create tooltips + regions["tooltip_html"] = ( + "" + + regions.index + + "
" + + "Weighted price: " + + regions["price"].round(2).astype(str) + + " " + + region_unit + ) + # regions["tooltip_html"] = regions["price"].round(2).astype(str) + # Create layer + regions_layer = pdk.Layer( + "GeoJsonLayer", + regions, + stroked=True, + filled=True, + get_fill_color="color", + get_line_color=[255, 255, 255, 255], + line_width_min_pixels=1, + pickable=True, + auto_highlight=True, + ) + + map = n.explore( + branch_components=branch_components, + bus_size=bus_size.div(unit_conversion), + bus_split_circle=True, + line_width=line_flow.div(unit_conversion), + line_flow=line_flow.div(unit_conversion), + line_color="rosybrown", + link_width=link_flow.div(unit_conversion), + link_flow=link_flow.div(unit_conversion), + link_color=branch_color, + arrow_size_factor=arrow_size_factor, + tooltip=tooltip, + auto_scale=True, + branch_width_max=branch_width_max, + bus_size_max=bus_size_max, + map_style=map_style, + ) + + map.layers.insert(0, regions_layer) + + map.to_html(snakemake.output[0], offline=True) diff --git a/scripts/plot_heat_source_map.py b/scripts/plot_heat_source_map.py index 159b0575f7..aeffd5a921 100644 --- a/scripts/plot_heat_source_map.py +++ b/scripts/plot_heat_source_map.py @@ -46,7 +46,6 @@ """ import logging -from typing import Optional import folium import geopandas as gpd @@ -67,7 +66,7 @@ def plot_heat_source_map( longitude_name: str = "longitude", latitude_name: str = "latitude", onshore_region_name: str = "name", - title: Optional[str] = None, + title: str | None = None, cmap: str = "viridis", aggregate_type: str = "mean", # 'mean' for temperature, 'sum' for energy ) -> folium.Map: diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index d387058e6a..af38c4a82d 100755 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1127,9 +1127,9 @@ def add_biomass_to_methanol(n, costs): + costs.at["biomass-to-methanol", "CO2 stored"], p_nom_extendable=True, capital_cost=costs.at["biomass-to-methanol", "capital_cost"] - / costs.at["biomass-to-methanol", "efficiency"], + * costs.at["biomass-to-methanol", "efficiency"], marginal_cost=costs.loc["biomass-to-methanol", "VOM"] - / costs.at["biomass-to-methanol", "efficiency"], + * costs.at["biomass-to-methanol", "efficiency"], ) @@ -1152,11 +1152,11 @@ def add_biomass_to_methanol_cc(n, costs): * costs.at["biomass-to-methanol", "capture rate"], p_nom_extendable=True, capital_cost=costs.at["biomass-to-methanol", "capital_cost"] - / costs.at["biomass-to-methanol", "efficiency"] + * costs.at["biomass-to-methanol", "efficiency"] + costs.at["biomass CHP capture", "capital_cost"] * costs.at["biomass-to-methanol", "CO2 stored"], marginal_cost=costs.loc["biomass-to-methanol", "VOM"] - / costs.at["biomass-to-methanol", "efficiency"], + * costs.at["biomass-to-methanol", "efficiency"], ) diff --git a/scripts/retrieve_corine_dataset_primary.py b/scripts/retrieve_corine_dataset_primary.py new file mode 100644 index 0000000000..9d9e4bf173 --- /dev/null +++ b/scripts/retrieve_corine_dataset_primary.py @@ -0,0 +1,158 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: MIT +""" +To download CORINE dataset from the primary data source - https://land.copernicus.eu/en/products/corine-land-cover/clc-2012 + +Usage Instructions: + 1. Login using EU login at https://land.copernicus.eu/user/login and create an API key + 2. Copy API key into the config.default.yaml -> (save from portal) + # secrets: + # corine: '' +""" + +import json +import logging +import time +from json.decoder import JSONDecodeError +from pathlib import Path +from shutil import copy2, unpack_archive + +import jwt +import requests + +from scripts._helpers import configure_logging, set_scenario_config + +logger = logging.getLogger(__name__) + + +def load_access_token(apikey): + # Login using EU login at https://land.copernicus.eu/user/login and create an API key + # Copy API key into the config.default.yaml -> (save from portal) + # secrets: + # corine: '' + try: + service_key = json.loads(apikey) + private_key = service_key["private_key"].encode("utf-8") + claim_set = { + "iss": service_key["client_id"], + "sub": service_key["user_id"], + "aud": service_key["token_uri"], + "iat": int(time.time()), + "exp": int(time.time() + 3600), # max 1 hour + } + assertion = jwt.encode(claim_set, private_key, algorithm="RS256") + + token_request = requests.post( + service_key["token_uri"], + headers={ + "Accept": "application/json", + "Content-Type": "application/x-www-form-urlencoded", + }, + data={ + "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer", + "assertion": assertion, + }, + ) + token_request.raise_for_status() + data = token_request.json() + access_token = data.get("access_token") + except JSONDecodeError as e: + raise ValueError( + "Missing or invalid access_token for corine. Check usage instructions in the scripts/retrieve_corine_dataset_primary.py script before proceeding" + ) from e + + return access_token + + +if __name__ == "__main__": + if "snakemake" not in globals(): + from scripts._helpers import mock_snakemake + + snakemake = mock_snakemake("retrieve_corine_dataset_primary") + + configure_logging(snakemake) + set_scenario_config(snakemake) + + apikey = snakemake.params["apikey"] + output_zip_file = snakemake.output["zip"] + tif_file = snakemake.output["tif_file"] + access_token = load_access_token(apikey) + + if access_token: + HEADERS = { + "Accept": "application/json", + "Content-Type": "application/json", + "Authorization": f"Bearer {access_token}", + } + + requests.post( + "https://land.copernicus.eu/api/@datarequest_post", + headers=HEADERS, + json={ + "Datasets": [ + { + "DatasetID": "a5ee71470be04d66bcff498f94ceb5dc", + "FileID": "9f992dad-d129-408e-be66-821adbd52a46", + } + ] + }, + ) + + status_url = ( + "https://land.copernicus.eu/api/@datarequest_search?status=Finished_ok" + ) + + download_link = None + + logger.info("Waiting for the download to be prepared...") + + # Wait up to 20 minutes, checking every 60 seconds + for attempt in range(20): + time.sleep(60) # avoid 429 Too Many Requests + response = requests.get(status_url, headers=HEADERS) + + if response.status_code != 200: + logger.info( + f"Attempt {attempt + 1}: Status check failed — {response.status_code}" + ) + continue + + results = response.json() + + for result in results: + if results[result].get("Status") == "Finished_ok": + download_link = results[result].get("DownloadURL") + + if download_link: + file_response = requests.get( + download_link, + headers={ + "Authorization": f"Bearer {access_token}", + "User-Agent": "curl/7.81.0", + }, + allow_redirects=False, + ) + if file_response.status_code == 200: + with open(output_zip_file, "wb") as f: + f.write(file_response.content) + logger.info(f"File saved as {output_zip_file}") + + output_folder = Path(output_zip_file).parent + unpack_archive(output_zip_file, output_folder) + + # unpack the actual dataset inside the downloaded zip - + # with new versions, the folder structures and naming convention might change requiring a revisit here + unpack_archive( + f"{output_folder}/Results/u2018_clc2012_v2020_20u1_raster100m.zip", + f"{output_folder}/Results/", + ) + copy2( + f"{output_folder}/Results/u2018_clc2012_v2020_20u1_raster100m/DATA/U2018_CLC2012_V2020_20u1.tif", + tif_file, + ) + break + + else: + logger.info(f"Access error {file_response.status_code}") + break diff --git a/scripts/retrieve_cost_data.py b/scripts/retrieve_cost_data.py deleted file mode 100644 index aeb8fbbb3b..0000000000 --- a/scripts/retrieve_cost_data.py +++ /dev/null @@ -1,44 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to PyPSA-Eur -# -# SPDX-License-Identifier: MIT -""" -Retrieve cost data from ``technology-data``. -""" - -import logging -from pathlib import Path - -from scripts._helpers import configure_logging, progress_retrieve, set_scenario_config - -logger = logging.getLogger(__name__) - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_cost_data", year=2030) - rootpath = ".." - else: - rootpath = "." - configure_logging(snakemake) - set_scenario_config(snakemake) - - version = snakemake.params.version - if "/" in version: - baseurl = f"https://raw.githubusercontent.com/{version}/outputs/" - else: - baseurl = f"https://raw.githubusercontent.com/PyPSA/technology-data/{version}/outputs/" - filepath = Path(snakemake.output[0]) - url = baseurl + filepath.name - - print(url) - - to_fn = Path(rootpath) / filepath - - print(to_fn) - - logger.info(f"Downloading technology data from '{url}'.") - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - progress_retrieve(url, to_fn, disable=disable_progress) - - logger.info(f"Technology data available at at {to_fn}") diff --git a/scripts/retrieve_databundle.py b/scripts/retrieve_databundle.py deleted file mode 100644 index bd096277c9..0000000000 --- a/scripts/retrieve_databundle.py +++ /dev/null @@ -1,61 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to PyPSA-Eur -# -# SPDX-License-Identifier: MIT -""" -.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3517934.svg - :target: https://doi.org/10.5281/zenodo.3517934 - -The data bundle contains common GIS datasets like NUTS3 shapes, EEZ shapes, -CORINE Landcover, Natura 2000 and also electricity specific summary statistics -like historic per country yearly totals of hydro generation, GDP and population -data on NUTS3 levels and energy balances. - -This rule downloads the data bundle from `zenodo -`_ and extracts it in the ``data`` -sub-directory, such that all files of the bundle are stored in the -``data/bundle`` subdirectory. -""" - -import logging -import tarfile -from pathlib import Path - -from scripts._helpers import ( - configure_logging, - progress_retrieve, - set_scenario_config, - validate_checksum, -) - -logger = logging.getLogger(__name__) - - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_databundle") - rootpath = ".." - else: - rootpath = "." - configure_logging(snakemake) - set_scenario_config(snakemake) - - url = "https://zenodo.org/records/15143557/files/bundle.tar.xz" - - tarball_fn = Path(f"{rootpath}/bundle.tar.xz") - to_fn = Path(rootpath) / Path(snakemake.output[0]).parent.parent - - logger.info(f"Downloading databundle from '{url}'.") - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - progress_retrieve(url, tarball_fn, disable=disable_progress) - - validate_checksum(tarball_fn, url) - - logger.info("Extracting databundle.") - tarfile.open(tarball_fn).extractall(to_fn) - - logger.info("Unlinking tarball.") - tarball_fn.unlink() - - logger.info(f"Databundle available in '{to_fn}'.") diff --git a/scripts/retrieve_eurostat_data.py b/scripts/retrieve_eurostat_data.py deleted file mode 100644 index a248072f4e..0000000000 --- a/scripts/retrieve_eurostat_data.py +++ /dev/null @@ -1,52 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to PyPSA-Eur -# -# SPDX-License-Identifier: MIT -""" -Retrieve and extract eurostat energy balances data. -""" - -import logging -import tempfile -import zipfile -from pathlib import Path - -from scripts._helpers import configure_logging, progress_retrieve, set_scenario_config - -logger = logging.getLogger(__name__) - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_eurostat_data") - rootpath = ".." - else: - # set to root path of repo or snakemake module - rootpath = Path(snakemake.output[0]).parent.parent.parent - - configure_logging(snakemake) - set_scenario_config(snakemake) - - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - url_eurostat = ( - # "https://ec.europa.eu/eurostat/documents/38154/4956218/Balances-April2023.zip" # link down - "https://tubcloud.tu-berlin.de/s/prkJpL7B9M3cDPb/download/Balances-April2023.zip" - ) - - to_fn = Path(f"{rootpath}/data/eurostat/Balances-April2023/") - - logger.info(f"Downloading Eurostat data from '{url_eurostat}'.") - - with tempfile.NamedTemporaryFile(suffix=".zip", delete=False) as tarball: - tmp_name = tarball.name - - logger.info(f"Using temporary file: {tmp_name}") - progress_retrieve(url_eurostat, tmp_name, disable=disable_progress) - - logger.info("Extracting Eurostat data.") - with zipfile.ZipFile(tmp_name, "r") as zip_ref: - zip_ref.extractall(to_fn) - - logger.info(f"Eurostat data available in '{to_fn}'.") - - Path(tmp_name).unlink(missing_ok=True) diff --git a/scripts/retrieve_eurostat_household_data.py b/scripts/retrieve_eurostat_household_data.py deleted file mode 100644 index febdadeb91..0000000000 --- a/scripts/retrieve_eurostat_household_data.py +++ /dev/null @@ -1,54 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to PyPSA-Eur -# -# SPDX-License-Identifier: MIT -""" -Retrieve and extract eurostat household energy balances data. -""" - -import gzip -import logging -import shutil -import tempfile -from pathlib import Path - -from scripts._helpers import configure_logging, progress_retrieve, set_scenario_config - -logger = logging.getLogger(__name__) - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_eurostat_data") - rootpath = ".." - else: - rootpath = Path(snakemake.output[0]).parent.parent.parent - configure_logging(snakemake) - set_scenario_config(snakemake) - - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - - url_eurostat_household = "https://ec.europa.eu/eurostat/databrowser-backend/api/extraction/1.0/LIVE/false/sdmx/csv/nrg_d_hhq__custom_11480365?startPeriod=2013&endPeriod=2022&i&compressed=true" - to_fn = Path( - f"{rootpath}/data/eurostat/eurostat-household_energy_balances-february_2024.csv" - ) - - logger.info( - f"Downloading Eurostats' disaggregated household energy balances data from '{url_eurostat_household}'." - ) - - with tempfile.NamedTemporaryFile(suffix=".gz", delete=False) as tarball: - tmp_name = tarball.name - - logger.info(f"Using temporary file: {tmp_name}") - progress_retrieve(url_eurostat_household, tmp_name, disable=disable_progress) - - logger.info("Extracting Eurostat's disaggregated household energy balance data.") - with gzip.open(tmp_name, "rb") as f_in, open(to_fn, "wb") as f_out: - shutil.copyfileobj(f_in, f_out) - - logger.info( - f"Eurostat's disaggregated household energy balance data available in '{to_fn}'." - ) - - Path(tmp_name).unlink(missing_ok=True) diff --git a/scripts/retrieve_gas_infrastructure_data.py b/scripts/retrieve_gas_infrastructure_data.py deleted file mode 100644 index 55d2b529a3..0000000000 --- a/scripts/retrieve_gas_infrastructure_data.py +++ /dev/null @@ -1,51 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to PyPSA-Eur -# -# SPDX-License-Identifier: MIT -""" -Retrieve gas infrastructure data from -https://zenodo.org/records/4767098/files/IGGIELGN.zip. -""" - -import logging -import zipfile -from pathlib import Path - -from scripts._helpers import ( - configure_logging, - progress_retrieve, - set_scenario_config, - validate_checksum, -) - -logger = logging.getLogger(__name__) - - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_gas_network_data") - rootpath = ".." - else: - rootpath = "." - configure_logging(snakemake) - set_scenario_config(snakemake) - - url = "https://zenodo.org/records/4767098/files/IGGIELGN.zip" - - # Save locations - zip_fn = Path(f"{rootpath}/IGGIELGN.zip") - to_fn = Path(rootpath) / Path(snakemake.output[0]).parent.parent - - logger.info(f"Downloading databundle from '{url}'.") - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - progress_retrieve(url, zip_fn, disable=disable_progress) - - validate_checksum(zip_fn, url) - - logger.info("Extracting databundle.") - zipfile.ZipFile(zip_fn).extractall(to_fn) - - zip_fn.unlink() - - logger.info(f"Gas infrastructure data available in '{to_fn}'.") diff --git a/scripts/retrieve_jrc_idees.py b/scripts/retrieve_jrc_idees.py deleted file mode 100644 index 0859118f30..0000000000 --- a/scripts/retrieve_jrc_idees.py +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to PyPSA-Eur -# -# SPDX-License-Identifier: MIT -""" -Retrieve and extract JRC IDEES 2021 data. -""" - -import logging -import zipfile - -from scripts._helpers import configure_logging, progress_retrieve, set_scenario_config - -logger = logging.getLogger(__name__) - -# Define the base URL -url_jrc = "https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/JRC-IDEES/JRC-IDEES-2021_v1/JRC-IDEES-2021.zip" - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_jrc_idees") - rootpath = ".." - else: - rootpath = "." - - configure_logging(snakemake) - set_scenario_config(snakemake) - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - - to_fn = snakemake.output[0] - to_fn_zp = to_fn + ".zip" - - # download .zip file - logger.info(f"Downloading JRC IDEES from '{url_jrc}'.") - progress_retrieve(url_jrc, to_fn_zp, disable=disable_progress) - - # extract - logger.info("Extracting JRC IDEES data.") - with zipfile.ZipFile(to_fn_zp, "r") as zip_ref: - zip_ref.extractall(to_fn) - - logger.info(f"JRC IDEES data available in '{to_fn}'.") diff --git a/scripts/retrieve_osm_data.py b/scripts/retrieve_osm_data.py index 1fe7a43ac0..6e397abdd2 100644 --- a/scripts/retrieve_osm_data.py +++ b/scripts/retrieve_osm_data.py @@ -17,11 +17,6 @@ import requests -from scripts._helpers import ( # set_scenario_config,; update_config_from_wildcards,; update_config_from_wildcards, - configure_logging, - set_scenario_config, -) - logger = logging.getLogger(__name__) @@ -35,6 +30,10 @@ def retrieve_osm_data( "substations_way", "substations_relation", ], + url="https://overpass-api.de/api/interpreter", + max_tries=3, + timeout=600, + user_agent="", ): """ Retrieve OSM data for the specified country and save it to the specified @@ -55,9 +54,18 @@ def retrieve_osm_data( "substations_way", "substations_relation", ]. + url : str, optional + The URL of the overpass API endpoint. The default is + "https://overpass-api.de/api/interpreter". + max_tries : int, optional + The maximum number of attempts to retrieve the data in case of failure. The + default is 3. + timeout : int, optional + The timeout in seconds for the overpass API requests. The default is 600. + user_agent : str + The User-Agent string to include in the request headers for fair use policy compliance. + """ - # Overpass API endpoint URL - overpass_url = "https://overpass-api.de/api/interpreter" features_dict = { "cables_way": ['way["power"="cable"]'], @@ -69,6 +77,8 @@ def retrieve_osm_data( wait_time = 5 + headers = {"User-Agent": user_agent} + for f in features: if f not in features_dict: logger.info( @@ -78,8 +88,8 @@ def retrieve_osm_data( f"Invalid feature: {f}. Supported features: {list(features_dict.keys())}" ) - retries = 3 - for attempt in range(retries): + max_tries = 3 + for attempt in range(max_tries): logger.info( f" - Fetching OSM data for feature '{f}' in {country} (Attempt {attempt + 1})..." ) @@ -87,7 +97,7 @@ def retrieve_osm_data( # Build the overpass query op_area = f'area["ISO3166-1"="{country}"]' op_query = f""" - [out:json]; + [out:json][timeout:{timeout}]; {op_area}->.searchArea; ( {" ".join(f"{i}(area.searchArea);" for i in features_dict[f])} @@ -96,7 +106,7 @@ def retrieve_osm_data( """ try: # Send the request - response = requests.post(overpass_url, data=op_query) + response = requests.post(url, data=op_query, headers=headers) response.raise_for_status() # Raise HTTPError for bad responses filepath = output[f] @@ -113,13 +123,13 @@ def retrieve_osm_data( logger.debug( f"Response text: {response.text if response else 'No response'}" ) - if attempt < retries - 1: + if attempt < max_tries - 1: wait_time += 15 logger.info(f"Waiting {wait_time} seconds before retrying...") time.sleep(wait_time) else: logger.error( - f"Failed to retrieve data for feature '{f}' in country {country} after {retries} attempts." + f"Failed to retrieve data for feature '{f}' in country {country} after {max_tries} attempts." ) except Exception as e: # For now, catch any other exceptions and log them. Treat this @@ -127,13 +137,13 @@ def retrieve_osm_data( logger.error( f"Unexpected error for feature '{f}' in country {country}: {e}" ) - if attempt < retries - 1: + if attempt < max_tries - 1: wait_time += 10 logger.info(f"Waiting {wait_time} seconds before retrying...") time.sleep(wait_time) else: logger.error( - f"Failed to retrieve data for feature '{f}' in country {country} after {retries} attempts." + f"Failed to retrieve data for feature '{f}' in country {country} after {max_tries} attempts." ) @@ -141,12 +151,40 @@ def retrieve_osm_data( if "snakemake" not in globals(): from scripts._helpers import mock_snakemake - snakemake = mock_snakemake("retrieve_osm_data", country="BE") - configure_logging(snakemake) - set_scenario_config(snakemake) + snakemake = mock_snakemake( + "retrieve_osm_data_raw", + country="BE", + ) + + overpass_api = snakemake.params.overpass_api + url = overpass_api["url"] + max_tries = overpass_api["max_tries"] + timeout = overpass_api["timeout"] + + # Build User-Agent header + ua_cfg = overpass_api["user_agent"] + project = ua_cfg["project_name"] + email = ua_cfg["email"] + website = ua_cfg["website"] + + user_agent = f"{project} (Contact: {email}; Website: {website})" # Retrieve the OSM data country = snakemake.wildcards.country output = snakemake.output - retrieve_osm_data(country, output) + retrieve_osm_data( + country, + output, + features=[ + "cables_way", + "lines_way", + "routes_relation", + "substations_way", + "substations_relation", + ], + url=url, + max_tries=max_tries, + timeout=timeout, + user_agent=user_agent, + ) diff --git a/scripts/retrieve_seawater_temperature.py b/scripts/retrieve_seawater_temperature.py index c6f63df33c..84646fd153 100644 --- a/scripts/retrieve_seawater_temperature.py +++ b/scripts/retrieve_seawater_temperature.py @@ -68,7 +68,7 @@ if snakemake.params.default_cutout == "be-03-2013-era5": logger.info("Retrieving test-cutout seawater temperature data.") - url = "https://zenodo.org/records/15828866/files/seawater_temperature.nc" + url = snakemake.params.test_data_url response = requests.get(url, stream=True) response.raise_for_status() diff --git a/scripts/sb/build_tyndp_h2_network.py b/scripts/sb/build_tyndp_h2_network.py index 403dfaf9b9..0f1fae9805 100644 --- a/scripts/sb/build_tyndp_h2_network.py +++ b/scripts/sb/build_tyndp_h2_network.py @@ -135,9 +135,9 @@ def load_h2_grid(fn): cyear = get_snapshots(snakemake.params.snapshots)[0].year # Load and prep H2 reference grid and interzonal pipeline capacities - h2_grid = load_h2_grid(fn=snakemake.input.tyndp_reference_grid) + h2_grid = load_h2_grid(fn=snakemake.input.h2_reference_grid) interzonal = load_h2_interzonal_connections( - fn=snakemake.input.tyndp_reference_grid, scenario=scenario, pyear=pyear + fn=snakemake.input.h2_reference_grid, scenario=scenario, pyear=pyear ) # Save prepped H2 grid and interzonal diff --git a/scripts/sb/prepare_pecd_release.py b/scripts/sb/prepare_pecd_release.py index 8ff0b26ae6..4127e2c9bd 100644 --- a/scripts/sb/prepare_pecd_release.py +++ b/scripts/sb/prepare_pecd_release.py @@ -77,7 +77,6 @@ def _usecols(name): snakemake = mock_snakemake( "prepare_pecd_release", clusters="all", - pecd_prebuilt_version="3.1+pre-built.0.1", ) configure_logging(snakemake) # pylint: disable=possibly-used-before-assignment set_scenario_config(snakemake) @@ -98,7 +97,6 @@ def _usecols(name): # Input and output directories and prebuilt version dir_pecd = snakemake.input.pecd_raw prebuilt_dir = snakemake.output.pecd_prebuilt - prebuilt_version = snakemake.wildcards.pecd_prebuilt_version # Iterate over available planning years ####################################### @@ -119,7 +117,7 @@ def _usecols(name): "ascii": False, "unit": " nodes", "total": len(pecd_files), - "desc": f"Building PECD prebuilt version {prebuilt_version} for year {year}", + "desc": f"Building PECD prebuilt for year {year}", } func = partial( diff --git a/scripts/sb/retrieve_additional_tyndp_data.py b/scripts/sb/retrieve_additional_tyndp_data.py deleted file mode 100644 index 68514302a0..0000000000 --- a/scripts/sb/retrieve_additional_tyndp_data.py +++ /dev/null @@ -1,77 +0,0 @@ -# SPDX-FileCopyrightText: Contributors to Open-TYNDP -# -# SPDX-License-Identifier: MIT -""" -Retrieves additional TYNDP data not included in the Zenodo TYNDP data bundle. -Downloads the zip file from Google Drive and extracts it in the ``data/tyndp_2024_bundle`` -subdirectory, such that all files of the TYNDP bundle are stored in it. -The original data is published by ENTSO-E and ENTSOG under Creative Commons Attribution 4.0 International License (CC-BY 4.0) -and can be found under https://2024.entsos-tyndp-scenarios.eu/download/. - -Currently, this is used for the following additional datasets: -* TYNDP PECD data (raw or prebuilt): The TYNDP PECD v3.1 data contains input data for the 2024 TYNDP scenario building process. -* TYNDP hydro inflows: The TYNDP hydro inflow data from PEMMDB v2.4 contains hydro inflow data for different hydro technologies: - * Run of River, - * Pondage, - * Reservoir, - * PS Open, - * PS Closed -* TYNDP PEMMDB data: The TYNDP PEMMDB v2.4 data contains capacity input data and must-run and availability profiles for generation technologies, - reserves, DSR, batteries and electrolysers. -* TYNDP Scenarios Report Data Figures: The TYNDP Scenarios Report Data Figures file contains the data and calculation - used to produce the figures in the Scenarios Report. - -**Outputs** - -- ``data/tyndp_2024_bundle/``: Additional input dataset for TYNDP 2024 scenario building - -""" - -import logging -import os -import shutil -import zipfile -from pathlib import Path - -from scripts._helpers import configure_logging, progress_retrieve, set_scenario_config - -logger = logging.getLogger(__name__) - -# TODO: retrieve_additional_tyndp_data needs to be deprecated once all TYNDP data is added to the TYNDP data bundle - - -def retrieve_bundle(url: str, source: str, to_dir: str, disable_progress: bool = False): - to_fn = Path(to_dir, Path(url).name) - - # download data - logger.info(f"Downloading TYNDP {source} data from '{url}'.") - progress_retrieve(url, to_fn, disable=disable_progress) - - # extract if needed - if ( - zipfile.is_zipfile(to_fn) and to_fn.suffix.lower() != ".xlsx" - ): # xlsx are valid zip files - logger.info(f"Extracting TYNDP {source} data.") - with zipfile.ZipFile(to_fn, "r") as zip_ref: - zip_ref.extractall(to_dir) - os.remove(to_fn) - shutil.rmtree(Path(to_dir, "__MACOSX"), ignore_errors=True) - - -if __name__ == "__main__": - if "snakemake" not in globals(): - from scripts._helpers import mock_snakemake - - snakemake = mock_snakemake("retrieve_tyndp_hydro_inflow") - - configure_logging(snakemake) - set_scenario_config(snakemake) - disable_progress = snakemake.config["run"].get("disable_progressbar", False) - - url = snakemake.params.url - source = snakemake.params.source - to_dir = snakemake.output.dir - - retrieve_bundle(url, source, to_dir, disable_progress) - - logger.info(f"TYNDP {source} data available in '{to_dir}'.") diff --git a/scripts/solve_network.py b/scripts/solve_network.py index 39bcd31b6c..f5542e5e13 100644 --- a/scripts/solve_network.py +++ b/scripts/solve_network.py @@ -525,7 +525,7 @@ def prepare_network( n.set_snapshots(n.snapshots[:nhours]) n.snapshot_weightings[:] = 8760.0 / nhours - if foresight == "myopic": + if foresight == "myopic" and planning_horizons: add_land_use_constraint(n, planning_horizons, renewable_carriers) if foresight == "perfect": @@ -1392,138 +1392,154 @@ def check_objective_value(n: pypsa.Network, solving: dict) -> None: ) -def solve_network( - n: pypsa.Network, +def collect_kwargs( config: dict, - params: dict, solving: dict, - rule_name: str | None = None, planning_horizons: str | None = None, - offshore_zone_trajectories_fn: str | None = None, - renewable_carriers_tyndp: list[str] = [], - **kwargs, -) -> None: + log_fn: str | None = None, + mode: str = "single", +) -> tuple[dict, dict]: """ - Solve network optimization problem. + Prepare keyword arguments separated for model creation and model solving. Parameters ---------- - n : pypsa.Network - The PyPSA network instance - config : Dict + config : dict Configuration dictionary containing solver settings - params : Dict - Dictionary of solving parameters - solving : Dict + solving : dict Dictionary of solving options and configuration - rule_name : str, optional - Name of the snakemake rule being executed planning_horizons : str, optional The current planning horizon year or None in perfect foresight - offshore_zone_trajectories_fn : str, optional - Path to DataFrame containing the offshore zone potentials trajectories - renewable_carriers_tyndp : list[str], optional - List of TYNDP renewable carriers - **kwargs - Additional keyword arguments passed to the solver + log_fn : str, optional + Path to solver log file + mode : str, optional + Optimization mode: 'single', 'rolling_horizon', or 'iterative' + Default is 'single' Returns ------- - n : pypsa.Network - Solved network instance - status : str - Solution status - condition : str - Termination condition - - Raises - ------ - RuntimeError - If solving status is infeasible or warning - ObjectiveValueError - If objective value differs from expected value + tuple[dict, dict] + Two dictionaries: (model_kwargs, solve_kwargs) + - model_kwargs: Arguments for n.optimize.create_model() + - solve_kwargs: Arguments for n.optimize.solve_model() + For 'rolling_horizon' and 'iterative' modes, returns merged kwargs + with additional mode-specific parameters """ set_of_options = solving["solver"]["options"] cf_solving = solving["options"] - kwargs["multi_investment_periods"] = config["foresight"] == "perfect" - kwargs["solver_options"] = ( - solving["solver_options"][set_of_options] if set_of_options else {} - ) - kwargs["solver_name"] = solving["solver"]["name"] - kwargs["extra_functionality"] = partial( - extra_functionality, - planning_horizons=planning_horizons, - offshore_zone_trajectories_fn=offshore_zone_trajectories_fn, - renewable_carriers_tyndp=renewable_carriers_tyndp, - ) - kwargs["transmission_losses"] = cf_solving.get("transmission_losses", False) - kwargs["linearized_unit_commitment"] = cf_solving.get( + # Model creation kwargs + model_kwargs = {} + model_kwargs["multi_investment_periods"] = config["foresight"] == "perfect" + model_kwargs["transmission_losses"] = cf_solving.get("transmission_losses", False) + model_kwargs["linearized_unit_commitment"] = cf_solving.get( "linearized_unit_commitment", False ) - kwargs["assign_all_duals"] = cf_solving.get("assign_all_duals", False) - kwargs["io_api"] = cf_solving.get("io_api", None) + + # Solve kwargs + solver_name = solving["solver"]["name"] + solver_options = solving["solver_options"][set_of_options] if set_of_options else {} + + solve_kwargs = {} + solve_kwargs["solver_name"] = solver_name + solve_kwargs["solver_options"] = solver_options + solve_kwargs["assign_all_duals"] = cf_solving.get("assign_all_duals", False) + solve_kwargs["io_api"] = cf_solving.get("io_api", None) + solve_kwargs["keep_files"] = cf_solving.get("keep_files", False) + + if log_fn: + solve_kwargs["log_fn"] = log_fn oetc = solving.get("oetc", None) if oetc: oetc["credentials"] = OetcCredentials( email=os.environ["OETC_EMAIL"], password=os.environ["OETC_PASSWORD"] ) - oetc["solver"] = kwargs["solver_name"] - oetc["solver_options"] = kwargs["solver_options"] + oetc["solver"] = solver_name + oetc["solver_options"] = solver_options oetc_settings = OetcSettings(**oetc) oetc_handler = OetcHandler(oetc_settings) - kwargs["remote"] = oetc_handler + solve_kwargs["remote"] = oetc_handler - kwargs["model_kwargs"] = cf_solving.get("model_kwargs", {}) - kwargs["keep_files"] = cf_solving.get("keep_files", False) - - if kwargs["solver_name"] == "gurobi": + if solver_name == "gurobi": logging.getLogger("gurobipy").setLevel(logging.CRITICAL) - rolling_horizon = cf_solving.pop("rolling_horizon", False) - skip_iterations = cf_solving.pop("skip_iterations", False) - if not n.lines.s_nom_extendable.any(): - skip_iterations = True - logger.info("No expandable lines found. Skipping iterative solving.") + # Handle special modes + if mode == "rolling_horizon": + all_kwargs = {**model_kwargs, **solve_kwargs} + all_kwargs["horizon"] = cf_solving.get("horizon", 365) + all_kwargs["overlap"] = cf_solving.get("overlap", 0) + return all_kwargs, {} - # add to network for extra_functionality - n.config = config - n.params = params + elif mode == "iterative": + all_kwargs = {**model_kwargs, **solve_kwargs} + all_kwargs["track_iterations"] = cf_solving["track_iterations"] + all_kwargs["min_iterations"] = cf_solving["min_iterations"] + all_kwargs["max_iterations"] = cf_solving["max_iterations"] - if rolling_horizon and rule_name == "solve_operations_network": - kwargs["horizon"] = cf_solving.get("horizon", 365) - kwargs["overlap"] = cf_solving.get("overlap", 0) - n.optimize.optimize_with_rolling_horizon(**kwargs) - status, condition = "", "" - elif skip_iterations: - status, condition = n.optimize(**kwargs) - else: - kwargs["track_iterations"] = cf_solving["track_iterations"] - kwargs["min_iterations"] = cf_solving["min_iterations"] - kwargs["max_iterations"] = cf_solving["max_iterations"] - if cf_solving["post_discretization"].pop("enable"): + if cf_solving["post_discretization"].get("enable", False): logger.info("Add post-discretization parameters.") - kwargs.update(cf_solving["post_discretization"]) - status, condition = n.optimize.optimize_transmission_expansion_iteratively( - **kwargs - ) + all_kwargs.update(cf_solving["post_discretization"]) - if not rolling_horizon: - if status != "ok": - logger.warning( - f"Solving status '{status}' with termination condition '{condition}'" - ) - check_objective_value(n, solving) + return all_kwargs, {} - if "warning" in condition: - raise RuntimeError("Solving status 'warning'. Discarding solution.") + return model_kwargs, solve_kwargs - if "infeasible" in condition: - labels = n.model.compute_infeasibilities() - logger.info(f"Labels:\n{labels}") - n.model.print_infeasibilities() - raise RuntimeError("Solving status 'infeasible'. Infeasibilities computed.") + +def create_optimization_model( + n: pypsa.Network, + config: dict, + params: dict, + model_kwargs: dict, + solve_kwargs: dict, + planning_horizons: str | None = None, + offshore_zone_trajectories_fn: str | None = None, + renewable_carriers_tyndp: list[str] = [], +) -> None: + """ + Prepare optimization problem by creating model and adding extra functionality. + + This function: + 1. Attaches config and params to network for extra_functionality + 2. Creates the optimization model + 3. Adds extra functionality (custom constraints) + + Parameters + ---------- + n : pypsa.Network + The PyPSA network instance + config : dict + Configuration dictionary containing solver settings + params : dict + Dictionary of solving parameters + model_kwargs : dict + Arguments for n.optimize.create_model() + solve_kwargs : dict + Arguments for n.optimize.solve_model() + planning_horizons : str, optional + The current planning horizon year or None in perfect foresight + offshore_zone_trajectories_fn : str, optional + Path to DataFrame containing the offshore zone potentials trajectories + renewable_carriers_tyndp : list[str], optional + List of TYNDP renewable carriers + """ + # Add config and params to network for extra_functionality + n.config = config + n.params = params + + # Create optimization model + logger.info("Creating optimization model...") + n.optimize.create_model(**model_kwargs) + + # Add extra functionality (custom constraints) + logger.info("Adding extra functionality (custom constraints)...") + extra_functionality( + n, + n.snapshots, + planning_horizons, + offshore_zone_trajectories_fn, + renewable_carriers_tyndp, + ) if __name__ == "__main__": @@ -1543,12 +1559,15 @@ def solve_network( update_config_from_wildcards(snakemake.config, snakemake.wildcards) solve_opts = snakemake.params.solving["options"] + cf_solving = snakemake.params.solving["options"] np.random.seed(solve_opts.get("seed", 123)) + # Load network n = pypsa.Network(snakemake.input.network) planning_horizons = snakemake.wildcards.get("planning_horizons", None) + # Prepare network (settings before solving) prepare_network( n, solve_opts=snakemake.params.solving["options"], @@ -1559,26 +1578,108 @@ def solve_network( limit_max_growth=snakemake.params.get("sector", {}).get("limit_max_growth"), ) + # Determine solve mode + rolling_horizon = cf_solving.get("rolling_horizon", False) + skip_iterations = cf_solving.get("skip_iterations", False) + + if not n.lines.s_nom_extendable.any(): + skip_iterations = True + logger.info("No expandable lines found. Skipping iterative solving.") + logging_frequency = snakemake.config.get("solving", {}).get( "mem_logging_frequency", 30 ) + + # Solve network based on mode with memory_logger( filename=getattr(snakemake.log, "memory", None), interval=logging_frequency ) as mem: - solve_network( - n, - config=snakemake.config, - params=snakemake.params, - solving=snakemake.params.solving, - planning_horizons=planning_horizons, - rule_name=snakemake.rule, - log_fn=snakemake.log.solver, - offshore_zone_trajectories_fn=snakemake.input.offshore_zone_trajectories, - renewable_carriers_tyndp=snakemake.params.renewable_carriers_tyndp, - ) + if rolling_horizon and snakemake.rule == "solve_operations_network": + logger.info("Using rolling horizon optimization...") + all_kwargs, _ = collect_kwargs( + snakemake.config, + snakemake.params.solving, + planning_horizons, + log_fn=snakemake.log.solver, + mode="rolling_horizon", + ) + + n.config = snakemake.config + n.params = snakemake.params + all_kwargs["extra_functionality"] = partial( + extra_functionality, + planning_horizons=planning_horizons, + offshore_zone_trajectories_fn=snakemake.input.offshore_zone_trajectories, + renewable_carriers_tyndp=snakemake.params.renewable_carriers_tyndp, + ) + n.optimize.optimize_with_rolling_horizon(**all_kwargs) + status, condition = "", "" + + elif skip_iterations: + logger.info("Using single-pass optimization...") + model_kwargs, solve_kwargs = collect_kwargs( + snakemake.config, + snakemake.params.solving, + planning_horizons, + log_fn=snakemake.log.solver, + mode="single", + ) + create_optimization_model( + n, + config=snakemake.config, + params=snakemake.params, + model_kwargs=model_kwargs, + solve_kwargs=solve_kwargs, + planning_horizons=planning_horizons, + offshore_zone_trajectories_fn=snakemake.input.offshore_zone_trajectories, + renewable_carriers_tyndp=snakemake.params.renewable_carriers_tyndp, + ) + + logger.info("Solving model...") + status, condition = n.optimize.solve_model(**solve_kwargs) + + else: + logger.info("Using iterative transmission expansion optimization...") + + all_kwargs, _ = collect_kwargs( + snakemake.config, + snakemake.params.solving, + planning_horizons, + log_fn=snakemake.log.solver, + mode="iterative", + ) + + n.config = snakemake.config + n.params = snakemake.params + all_kwargs["extra_functionality"] = partial( + extra_functionality, + planning_horizons=planning_horizons, + offshore_zone_trajectories_fn=snakemake.input.offshore_zone_trajectories, + renewable_carriers_tyndp=snakemake.params.renewable_carriers_tyndp, + ) + status, condition = n.optimize.optimize_transmission_expansion_iteratively( + **all_kwargs + ) logger.info(f"Maximum memory usage: {mem.mem_usage}") + # Check results + if not rolling_horizon: + if status != "ok": + logger.warning( + f"Solving status '{status}' with termination condition '{condition}'" + ) + check_objective_value(n, snakemake.params.solving) + + if "warning" in condition: + raise RuntimeError("Solving status 'warning'. Discarding solution.") + + if "infeasible" in condition: + labels = n.model.compute_infeasibilities() + logger.info(f"Labels:\n{labels}") + n.model.print_infeasibilities() + raise RuntimeError("Solving status 'infeasible'. Infeasibilities computed.") + n.meta = dict(snakemake.config, **dict(wildcards=dict(snakemake.wildcards))) n.export_to_netcdf(snakemake.output.network) diff --git a/scripts/solve_operations_network.py b/scripts/solve_operations_network.py index 828e22b23a..89dd9c716c 100644 --- a/scripts/solve_operations_network.py +++ b/scripts/solve_operations_network.py @@ -11,12 +11,16 @@ import numpy as np import pypsa +from scripts._benchmark import memory_logger from scripts._helpers import ( configure_logging, set_scenario_config, update_config_from_wildcards, ) -from scripts.solve_network import prepare_network, solve_network +from scripts.solve_network import ( + collect_kwargs, + prepare_network, +) logger = logging.getLogger(__name__) @@ -39,26 +43,56 @@ update_config_from_wildcards(snakemake.config, snakemake.wildcards) solve_opts = snakemake.params.options + cf_solving = snakemake.params.solving["options"] np.random.seed(solve_opts.get("seed", 123)) n = pypsa.Network(snakemake.input.network) + planning_horizons = snakemake.wildcards.get("planning_horizons", None) + # Fix capacities from previous optimization n.optimize.fix_optimal_capacities() - n = prepare_network( + + # Prepare network (settings before solving) + prepare_network( n, - solve_opts, - config=snakemake.config, + solve_opts=snakemake.params.solving["options"], + foresight=snakemake.params.foresight, renewable_carriers=snakemake.params.renewable_carriers, + planning_horizons=planning_horizons, + co2_sequestration_potential=snakemake.params["co2_sequestration_potential"], + limit_max_growth=snakemake.params.get("sector", {}).get("limit_max_growth"), ) - n = solve_network( - n, - config=snakemake.config, - params=snakemake.params, - solving=snakemake.params.solving, + + # Check if rolling horizon is enabled + rolling_horizon = cf_solving.get("rolling_horizon", False) + mode = "rolling_horizon" if rolling_horizon else "single" + + # Collect solver arguments + all_kwargs, _ = collect_kwargs( + snakemake.config, + snakemake.params.solving, + planning_horizons, log_fn=snakemake.log.solver, - rule_name=snakemake.rule, + mode=mode, ) + logging_frequency = snakemake.config.get("solving", {}).get( + "mem_logging_frequency", 30 + ) + + # Solve network + with memory_logger( + filename=getattr(snakemake.log, "memory", None), interval=logging_frequency + ) as mem: + if rolling_horizon: + logger.info("Solving operations network with rolling horizon...") + n.optimize.optimize_with_rolling_horizon(**all_kwargs) + else: + logger.info("Solving operations network...") + n.optimize(**all_kwargs) + + logger.info(f"Maximum memory usage: {mem.mem_usage}") + n.meta = dict(snakemake.config, **dict(wildcards=dict(snakemake.wildcards))) - n.export_to_netcdf(snakemake.output[0]) + n.export_to_netcdf(snakemake.output.network) diff --git a/test/conftest.py b/test/conftest.py index 51914d905e..284ee5e750 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -7,13 +7,11 @@ from functools import reduce from shutil import unpack_archive from urllib.request import urlretrieve -from uuid import uuid4 import geopandas as gpd import pandas as pd import pypsa import pytest -import requests import yaml @@ -139,25 +137,10 @@ def download_natural_earth(tmpdir): @pytest.fixture(scope="function") def download_eez(tmpdir): - name = str(uuid4())[:8] - org = str(uuid4())[:8] + url = "https://data.pypsa.org/workflows/eur/eez/v12_20231025/World_EEZ_v12_20231025_LR.zip" zipped_filename = "World_EEZ_v12_20231025_LR.zip" - response = requests.post( - "https://www.marineregions.org/download_file.php", - params={"name": zipped_filename}, - data={ - "name": name, - "organisation": org, - "email": f"{name}@{org}.org", - "country": "Germany", - "user_category": "academia", - "purpose_category": "Research", - "agree": "1", - }, - ) zipped_filename_path = pathlib.Path(tmpdir, zipped_filename) - with open(zipped_filename_path, "wb") as f: - f.write(response.content) + urlretrieve(url, zipped_filename_path) unpack_archive(zipped_filename_path, tmpdir) output_path = pathlib.Path( tmpdir, "World_EEZ_v12_20231025_LR", "eez_v12_lowres.gpkg" diff --git a/utils/create_zenodo_deposition_cli.py b/utils/create_zenodo_deposition_cli.py new file mode 100644 index 0000000000..ebfc404b23 --- /dev/null +++ b/utils/create_zenodo_deposition_cli.py @@ -0,0 +1,763 @@ +# SPDX-FileCopyrightText: Contributors to PyPSA-Eur +# +# SPDX-License-Identifier: MIT + +import csv +import json +import logging +import os +import re +from datetime import datetime +from pathlib import Path +from typing import Annotated + +import requests +import typer +from dotenv import load_dotenv +from tqdm import tqdm +from tqdm.utils import CallbackIOWrapper + +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +load_dotenv() # Load environment variables from .env file if it exists + +app = typer.Typer() + +API_URLS = { + "sandbox": "https://sandbox.zenodo.org/api", + "production": "https://zenodo.org/api", +} + +ZENODO_API_URL = None +ZENODO_API_KEY = None +VERSIONS_CSV = Path("data/versions.csv") + + +def get_access_token(sandbox: bool): + """ + Prompt user for Zenodo API access token if undefined. + """ + global ZENODO_API_KEY + key_name = None + if sandbox: + key_name = "ZENODO_SANDBOX_API_KEY" + else: + key_name = "ZENODO_API_KEY" + + # Get the Zenodo API key from environment variables + ZENODO_API_KEY = os.getenv(key_name) + + # Let user know that they first need to set the API key + if not ZENODO_API_KEY: + typer.secho( + f"No Zenodo API key found in environment variables.\n" + f"Please set the environment variable {key_name} before running this script.\n" + f" * Option 1: Set the environment variables directly, e.g. 'export {key_name}='\n" + f" * Option 2: Create a `.env` file in the current directory with the following content:\n" + f" {key_name}=''\n" + "Make sure to replace '' with your actual Zenodo API token.\n" + "Visit (https://zenodo.org/account/settings/applications/tokens/) to generate a new token.", + fg=typer.colors.RED, + ) + raise typer.Exit() + + +def read_versions_csv() -> list[dict]: + """ + Read the versions CSV file and return its contents as a list of dictionaries. + + Returns + ------- + list of dict + List of rows from the versions CSV file. + """ + if not VERSIONS_CSV.exists(): + raise FileNotFoundError( + f"Versions CSV file not found at {VERSIONS_CSV}. Please create and populate it first." + ) + rows = [] + with open(VERSIONS_CSV, newline="") as f: + for row in csv.DictReader(f): + # Fix tags column to always be a list + row["tags"] = ( + json.loads(row["tags"].replace("'", '"')) if row["tags"] else [] + ) + rows.append(row) + return rows + + +def write_versions_csv(rows: list[dict]): + """ + Write a list of dictionaries to the versions CSV file. + + Parameters + ---------- + rows : list of dict + The rows to write to the CSV file. + """ + + for row in rows: + # Ensure tags are always a JSON string with single quotes + row["tags"] = json.dumps(row["tags"]).replace('"', "'") + + with open(VERSIONS_CSV, "w", newline="") as f: + writer = csv.DictWriter( + f, + fieldnames=["dataset", "source", "version", "tags", "url", "note"], + quotechar='"', + quoting=csv.QUOTE_ALL, + ) + writer.writeheader() + writer.writerows(rows) + + +def prompt_choice(options: list[str], prompt_text: str) -> str: + """ + Prompt the user to select an option from a list by number, + + Parameters + ---------- + options : list of str + The available options. + prompt_text : str + The prompt to display. + + Returns + ------- + str + The selected or custom value. + """ + display_options = options.copy() + + # List options with prepended numbers + typer.echo(prompt_text) + for idx, option in enumerate(display_options, 1): + typer.echo(f"{idx}: {option}") + + while True: + # Prompt user for choice + if len(display_options) == 1: + # Only one option, use as default + choice = typer.prompt("Select (1)", default="1") + else: + choice = typer.prompt(f"Select (1-{len(display_options)})") + + # Valid choice + if choice.isdigit() and 1 <= int(choice) <= len(display_options): + return display_options[int(choice) - 1] + + # Invalid choice; prompt user again + typer.echo("Invalid selection. Please enter a number from the list.") + + +def get_latest_versions(rows, source): + """ + Get the latest versions for a given source. + + Parameters + ---------- + rows : list of dict + The rows from the versions CSV. + source : str + The source to filter by. + + Returns + ------- + list of dict + The filtered and sorted latest versions. + """ + latest = [ + row + for row in rows + if row["source"] == source and "latest" in row["tags"] and row.get("url") + ] + return sorted(latest, key=lambda r: r["dataset"]) + + +def get_dataset_versions(rows, dataset, source): + """ + Get all versions for a given dataset. + + Parameters + ---------- + rows : list of dict + The rows from the versions CSV. + dataset : str + The dataset name. + + Returns + ------- + list of str + The versions for the dataset. + """ + return [ + row["version"] + for row in rows + if row["dataset"] == dataset and row["source"] == source + ] + + +def get_potential_datasets(): + """ + Get all dataset folders that have an archive subfolder and are thus potential candidates for a new upload. + + Returns + ------- + list of str + The dataset names that have an archive subfolder. + """ + # Find all dataset folders in the 'data' directory; + # indicated by the presence of an 'archive' subfolder with contents + return sorted(set(f.parts[-3] for f in Path().rglob("data/*/archive/*/"))) + + +def get_archive_folders(dataset): + """ + Get all archive folders for a dataset. + + Parameters + ---------- + dataset : str + The dataset name. + + Returns + ------- + list of str + The archive folder names. + """ + archive_path = Path(f"data/{dataset}/archive") + if not archive_path.exists(): + return [] + return sorted([f.name for f in archive_path.iterdir() if f.is_dir()]) + + +def create_zenodo_deposition(metadata: dict, files: list[Path]) -> requests.Response: + """ + Create a new Zenodo deposition with the specified metadata and files. + + Parameters + ---------- + metadata : dict, optional + The metadata for the deposition. + files : list of Path, optional + The files to upload to the deposition. + + Returns + ------- + Response + The response from the Zenodo API after creating the deposition. + """ + logger.debug("Creating new Zenodo deposition") + r = requests.post( + f"{ZENODO_API_URL}/deposit/depositions", + params={"access_token": ZENODO_API_KEY}, + json={}, + headers={"Content-Type": "application/json"}, + ) + logger.debug(f"Response from Zenodo API: {r.status_code} {r.text}") + r.raise_for_status() + bucket_url = r.json()["links"]["bucket"] + deposition_url = r.json()["links"]["self"] + + logger.debug(f"Adding metadata to the deposition at {deposition_url}") + logger.debug(f"Metadata: {json.dumps(metadata, indent=2)}") + # Update metadata of the deposition + r = requests.put( + deposition_url, + params={"access_token": ZENODO_API_KEY}, + data=json.dumps({"metadata": metadata}), + headers={"Content-Type": "application/json"}, + ) + + r.raise_for_status() + + # Upload files one-by-one to the bucket + for file in files: + with open(file, "rb") as fp: + # Progressbar on request.puts https://gist.github.com/tyhoff/b757e6af83c1fd2b7b83057adf02c139 + with tqdm( + total=file.stat().st_size, + unit="B", + unit_scale=True, + unit_divisor=1024, + desc=f"Uploading {file.name}", + ) as pbar: + wrapped_file = CallbackIOWrapper(pbar.update, fp, "read") + upload_response = requests.put( + f"{bucket_url}/{file.name}", + data=wrapped_file, + params={"access_token": ZENODO_API_KEY}, + ) + upload_response.raise_for_status() + # Add done to the progress bar + pbar.update(file.stat().st_size) + + return r + + +def publish_zenodo_deposition(deposition_id: int) -> requests.Response: + """ + Publish a Zenodo deposition. + + Parameters + ---------- + deposition_id : int + The ID of the deposition to publish. + + Returns + ------- + Response + The response from the Zenodo API after publishing the deposition. + """ + r = requests.post( + f"{ZENODO_API_URL}/deposit/depositions/{deposition_id}/actions/publish", + params={"access_token": ZENODO_API_KEY}, + ) + r.raise_for_status() + return r + + +def add_version_row( + rows, dataset, source, version, tags, url, note, remove_latest=True +): + """ + Add a new version row to the list of rows. + + Parameters + ---------- + rows : list of dict + The existing rows from the versions CSV. + dataset : str + The dataset name. + source : str + The source of the dataset, likely "archive". + version : str + The version name. + tags : list of str + The tags for the new version. + url : str + The Zenodo URL. + note : str + A note for the new version. + remove_latest : bool, optional + Whether to remove the 'latest' tag from the existing latest version (default is True). + + Returns + ------- + list of dict + The updated rows. + """ + + # Find the index of the row of the latest version for the dataset + latest_index = next( + ( + i + for i, row in enumerate(rows) + if row["dataset"] == dataset + and "latest" in row["tags"] + and row["source"] == source + ), + None, + ) + + # If a latest version exists, remove the 'latest' tag from it + if latest_index is not None and remove_latest: + rows[latest_index]["tags"] = [ + tag for tag in (rows[latest_index]["tags"]) if tag != "latest" + ] + + # Add the new version row with 'latest' and 'supported' tags ... + new_row = { + "dataset": dataset, + "source": source, + "version": version, + "tags": tags, + "url": url, + "note": note, + } + + # ... either behind the latest version or at the end of the list + if latest_index is not None: + # Insert the new row after the latest version + rows.insert(latest_index + 1, new_row) + else: + # Append to the end if no latest version exists + rows.append(new_row) + + return rows + + +def get_deposition_by_url(record_id, api_url, api_key) -> dict: + """ + Retrieve a Zenodo deposition by its API URL. + + Parameters + ---------- + url : str + The Zenodo deposition API URL. + + Returns + ------- + dict + The deposition metadata as a dictionary. + """ + r = requests.get( + f"{api_url}/records/{record_id}", # Use /records/ for Zenodo API instead of /deposit/depositions/ endpoint, to enable access to records that are not owned by the user + params={"access_token": api_key}, + headers={"Content-Type": "application/json"}, + ) + r.raise_for_status() + return r.json() + + +def extract_zenodo_deposition_url(record_url: str) -> tuple[str, str]: + """ + Given a Zenodo record or record file URL, return the corresponding deposition API URL. + + Parameters + ---------- + record_url : str + The Zenodo record or record file URL. + + Returns + ------- + str + Zenodo record ID. + str or None + The Zenodo deposition API URL, or None if extraction fails. + """ + # Match both sandbox and production, with or without /files/... + m = re.match( + r"https://(?:sandbox\.)?zenodo\.org/records/(\d+)(/files/.*)?", record_url + ) + if not m: + raise ValueError(f"Invalid Zenodo record URL format: {record_url}. ") + record_id = m.group(1) + + return (record_id, f"{ZENODO_API_URL}/{record_id}") + + +@app.command() +def main( + sandbox: Annotated[ + bool, + typer.Option( + help="Use Zenodo sandbox environment instead of production.", + ), + ] = False, + debug: Annotated[bool, typer.Option(help="Enable debug mode.")] = False, +): + """ + Guide the user through creating a new Zenodo deposition or version. + """ + global ZENODO_API_URL + ZENODO_API_URL = API_URLS["sandbox"] if sandbox else API_URLS["production"] + + if sandbox: + typer.secho( + "************************\n" + "***** SANDBOX MODE *****\n" + "************************\n", + fg=typer.colors.YELLOW, + ) + if debug: + logging.basicConfig(level=logging.DEBUG) + typer.secho("Debug mode enabled.", fg=typer.colors.YELLOW) + + typer.secho("=" * 80, fg=typer.colors.CYAN) + typer.echo( + "This script helps you create/upload a new dataset version on Zenodo.\n" + "To create/upload a new dataset version:\n" + " * Place the dataset that you want to upload into the 'data//archive/' folder.\n" + " * If this is a new dataset, create the folder 'data//archive/' first.\n" + "Sticking with this naming convention is important for PyPSA-Eur and for this script to work properly.\n" + "You can pause here and create the folder and move the files into it if you haven't done so yet.\n" + ) + typer.secho("=" * 80, fg=typer.colors.CYAN) + get_access_token(sandbox) + + action = prompt_choice( + ["release", "create"], + "\nSelect whether you want to (release) a new version to an existing dataset or (create) a new dataset?", + ) + rows = read_versions_csv() + + # All datasets that are recorded in the data/versions.csv and have a 'latest' tag + latest = get_latest_versions(rows, "archive") + + # Logic is slightly different for 'release' and 'create': + if action == "release": + if not latest: + typer.secho( + "No datasets with source 'archive' and a Zenodo URL found.", + fg=typer.colors.RED, + ) + raise typer.Exit() + + dataset_names = [row["dataset"] for row in latest] + dataset_name = prompt_choice( + dataset_names, "\nSelect a dataset to create a new version release for" + ) + elif action == "create": + dataset_names = get_potential_datasets() + dataset_names = [ + ds for ds in dataset_names if ds not in {l["dataset"] for l in latest} + ] + if not dataset_names: + typer.secho( + "No new datasets found in 'data' that contain an 'archive' subfolder. " + "Please create a dataset folder with an 'archive' subfolder first in 'data//archive/'.", + fg=typer.colors.RED, + ) + raise typer.Exit() + dataset_name = prompt_choice(dataset_names, "\nSelect a new dataset to upload") + + # Get potential folders for new version + typer.echo("Fetching new version folders...") + potential_folders = get_archive_folders(dataset_name) + + if not potential_folders: + typer.secho( + f"No archive folders found in data/{dataset_name}/archive. Please create a folder with the new version files first.", + fg=typer.colors.RED, + ) + raise typer.Exit() + + # Exclude all folders for which version entres already exist + known_versions = get_dataset_versions(rows, dataset_name, "archive") + potential_folders = [ + folder for folder in potential_folders if folder not in known_versions + ] + + if not potential_folders: + typer.secho( + f"All folders in 'data/{dataset_name}/archive already have versions in data/versions.csv. " + f"To create a new version, please create a new folder with a new version name that includes the new files.", + fg=typer.colors.RED, + ) + raise typer.Exit() + + # Ask user which files from which folder to upload and how to call the new version + folder_to_upload = prompt_choice( + potential_folders, "\nSelect a folder to upload as new version" + ) + version_name = typer.prompt( + "\nSpecify name for new version", default=folder_to_upload + ) + + if action == "release": + # Retrieve information from previous version for the datset from Zenodo + row = next(r for r in latest if r["dataset"] == dataset_name) + record_id, deposition_url = extract_zenodo_deposition_url(row["url"]) + + if not deposition_url: + typer.secho( + f"Could not extract Zenodo deposition API URL from:\n{row['url']}\n" + "Please check the URL format in your versions.csv.", + fg=typer.colors.RED, + ) + raise typer.Exit() + + typer.echo( + f"Retrieving existing deposition metadata from Zenodo for dataset '{dataset_name}' at {deposition_url}." + ) + existing_deposition = get_deposition_by_url( + record_id, + ZENODO_API_URL, + ZENODO_API_KEY, + ) + + metadata = existing_deposition.get("metadata", {}) + if not metadata: + typer.secho( + "No metadata found in the existing deposition. Please check the Zenodo record.", + fg=typer.colors.RED, + ) + raise typer.Exit() + + if "creators" not in metadata: + typer.secho( + "No creators found in the existing deposition metadata. " + "Please add them manually via the Zenodo web interface before publishing the new version.", + fg=typer.colors.YELLOW, + ) + metadata["creators"] = [{"name": "", "affiliation": ""}] + + if "description" not in metadata: + metadata["description"] = typer.prompt( + "No description found in the existing deposition metadata. Please provide a new description." + ) + + if "upload_type" not in metadata: + metadata["upload_type"] = typer.prompt( + "No upload type found in the existing deposition metadata. Please specify", + default="dataset", + ) + + if "license" not in metadata: + metadata["license"] = typer.prompt( + "No license found in the existing deposition metadata. Please specify", + default="cc-by-4.0", + ) + + if "access_right" not in metadata: + metadata["access_right"] = typer.prompt( + "No access right found in the existing deposition metadata. Please specify", + default="open", + ) + + new_metadata = { + "title": metadata["title"], + "creators": metadata["creators"], + "version": version_name, + "publication_date": datetime.now().strftime("%Y-%m-%d"), + "description": metadata["description"], + "license": metadata["license"], + "upload_type": metadata["upload_type"], + "access_right": metadata["access_right"], + "related_identifiers": [ + { + "scheme": "doi", + "identifier": metadata["doi"], + "relation": "isNewVersionOf", + "resource_type": metadata["upload_type"], + } + ], + } + elif action == "create": + # Create new metadata based on user input + typer.echo( + "\nCreating a new deposition requires metadata input.\n" + "Please provide the following information for the new dataset." + "You can also leave fields empty for now and fill them in later on Zenodo before publishing the dataset." + ) + title = typer.prompt("Title of the new dataset") + description = typer.prompt("Description of the new dataset") + license = typer.prompt( + "License for the new dataset (e.g. CC-BY-4.0). Only standard licenses supported - use webinterface for custom license", + default="cc-by-4.0", + ) + upload_type = typer.prompt("Upload type for the new dataset", default="dataset") + access_right = typer.prompt("Access right for the new dataset", default="open") + # Prompt for creators and their affiliation (a list of dictionaries with keys "name" and "affiliation") until the user is done + typer.echo( + "Please provide the creators of the new dataset.\n" + "You need to provide at least on creator. You can add multiple creators.\n\n" + "Leave the name blank when you are done to continue." + ) + creators = [] + while True: + name = typer.prompt("Creator name (leave blank to finish)", default="") + if not name and len(creators) > 0: + break + affiliation = typer.prompt("Affiliation (or leave empty)", default="") + + creator = {"name": name} + # If affiliation is provided, add it to the creator dictionary + if affiliation: + creator["affiliation"] = affiliation + + if name: + creators.append(creator) + + # Create the new metadata dictionary + new_metadata = { + "title": title, + "description": description, + "version": version_name, + "publication_date": datetime.now().strftime("%Y-%m-%d"), + "license": license, + "upload_type": upload_type, + "access_right": access_right, + "creators": creators, + } + + typer.echo(f"New metadata created: {new_metadata}") + + # Create the new deposition and upload files + typer.echo( + "ℹ️ Creating new Zenodo deposition with metadata:\n" + + json.dumps(new_metadata, indent=2) + ) + deposition = create_zenodo_deposition( + # Provide new metadata baed on the parent deposition + metadata=new_metadata, + # all files in the folder + files=[ + f + for f in (Path(f"data/{dataset_name}/archive/{folder_to_upload}").glob("*")) + if f.is_file() + ], + ) + + # Last confirmation before publishing + typer.echo( + f"✅ Created new deposition ready for publishing.\n" + f"🔗 You can now review it and make changes at: {deposition.json()['links']['html']}" + ) + + confirm = typer.confirm("\nAre you ready to publish the dataset now?", default=True) + if confirm: + published_deposition = publish_zenodo_deposition(deposition.json()["id"]) + published_deposition.raise_for_status() + typer.secho( + f"✅ Dataset '{dataset_name}' with version {version_name} has been successfully published.\n" + f"🔗 Link to new dataset: {published_deposition.json()['links']['html']}.", + ) + else: + published_deposition = None + typer.secho( + f"❌ New dataset version not published. " + f"️️🔗 You can publish it later using the Zenodo web interface at: {deposition.json()['links']['html']}", + ) + + # Update the versions CSV file + typer.confirm( + "\nProceed with updating the 'data/versions.csv' file with the new version information?", + default=True, + abort=True, + ) + + previous_version = [row for row in latest if row["dataset"] == dataset_name] + previous_version = previous_version[0] if previous_version else {} + + # We store different information depending on whether the deposition was published or not + if published_deposition: + tags = ["latest", "supported"] + elif not published_deposition: + tags = ["draft", "supported"] + + if published_deposition: + link = published_deposition.json()["links"]["html"] + else: + link = deposition.json()["links"]["html"] + + if previous_version: + note = previous_version["note"] + else: + note = typer.prompt( + "\nPlease provide a note for the new version in 'data/versions.csv' (or leave empty)", + default="", + ) + + rows = add_version_row( + rows, + dataset_name, + "archive", + version_name, + tags=tags, + url=link, + note=note, + remove_latest=True if published_deposition else False, + ) + write_versions_csv(rows) + typer.secho( + f"✅ 'data/versions.csv' has been updated with: '{dataset_name}', 'archive', '{version_name}', '{tags}, '{link}', '{note}'", + ) + + typer.echo("\n🎉 All done. 🎉") + + +if __name__ == "__main__": + app()