https://github.com/brews/dlong
Prototype framework for projected socio-economic climate damages
https://github.com/brews/dlong
example package python toy
Last synced: 9 months ago
JSON representation
Prototype framework for projected socio-economic climate damages
- Host: GitHub
- URL: https://github.com/brews/dlong
- Owner: brews
- License: apache-2.0
- Created: 2022-10-13T17:13:50.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-21T23:11:28.000Z (10 months ago)
- Last Synced: 2025-04-17T01:27:37.931Z (10 months ago)
- Topics: example, package, python, toy
- Language: Python
- Homepage:
- Size: 101 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/brews/dlong/actions/workflows/pythonpackage.yml)
[](https://codecov.io/gh/brews/dlong)
# dlong
Prototype framework for projected socio-economic climate damages
> [!CAUTION]
> This is a prototype. It is likely to change in breaking ways. It might delete all your data. Don't use it in production.
## Examples
```python
import dlong
from dlong.types import ClimateData
import xarray as xr
# First, let's make some demo data.
# Say 3 years of annual temperature data across 3 regions:
region = [1, 2, 3]
year = [2019, 2020, 2021]
input_temperature = xr.DataArray(
[[1.0, 2.0, 3.0], [2.0, 3.0, 4.0], [3.0, 4.0, 5.0]],
coords=[region, year],
dims=["region", "year"],
)
# And here are coefficients for a quadratic damage function. Different for
# each region.
damage_coefficients = xr.Dataset(
data_vars={
"beta0": (["region"], [1, 1, 1]),
"beta1": (["region"], [1, 2, 3]),
"beta2": (["region"], [4, 5, 6]),
},
coords={"region": (["region"], region)},
)
# Put it all together to describe climate data, a damage function, and
# a strategy for discounting damages.
climate = ClimateData(temperature=input_temperature)
damage_model = dlong.QuadraticDamageModel(coefs=damage_coefficients)
discount_strategy = dlong.FractionalDiscount(rate=0.02, reference_year=2020)
# We could use these individually, or combine them into a "recipe" to output
# discounted damages. The idea is that these components are compositable
# so components can be customized and run in large batches.
recipe = dlong.ExampleRecipe(
climate=climate, damage_function=damage_model, discount=discount_strategy
)
damages = recipe.discounted_damages()
#
#array([[ 6.12 , 19. , 39.21568627],
# [ 25.5 , 52. , 87.25490196],
# [ 65.28 , 109. , 162.74509804]])
#Coordinates:
#* region (region) int64 1 2 3
#* year (year) int64 2019 2020 2021
```
## Installation
```shell
pip install dlong
```
`dlong` currently requires Python > 3.8 and the `xarray` package.
Install the unreleased bleeding-edge version of the package with:
```shell
pip install git+https://github.com/brews/dlong
```
## Support
Source code is available online at https://github.com/brews/dlong/. This software is Open Source and available under the Apache License, Version 2.0.
## Development
Please file bugs in the [bug tracker](https://github.com/brews/dlong/issues).
Want to contribute? Great! Fork the main branch and file a pull request when you're ready. Please be sure to write unit tests and follow [pep8](https://www.python.org/dev/peps/pep-0008/). Fork away!