Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/actions/before-script/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ runs:

cd "$GITHUB_WORKSPACE/submodules/wind_power_timeseries"
poetry install
pip install metocean-api==1.1.14
cd "$GITHUB_WORKSPACE"
Comment thread
Zetison marked this conversation as resolved.

cd "$GITHUB_WORKSPACE/submodules/Tecnalia_Solar-Energy-Model"
Expand Down Expand Up @@ -70,6 +71,7 @@ runs:
poetry install
Set-Location (Join-Path $env:GITHUB_WORKSPACE "submodules\wind_power_timeseries")
poetry install
pip install metocean-api==1.1.14
Set-Location (Join-Path $env:GITHUB_WORKSPACE "submodules\Tecnalia_Solar-Energy-Model")
poetry install
Set-Location (Join-Path $env:GITHUB_WORKSPACE "submodules\Tecnalia_Building-Stock-Energy-Model")
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ jobs:
Add-Content $env:GITHUB_ENV "SSL_CERT_FILE=$ca"
- name: Run Julia tests inside the testenv-enviornment in Miniconda (Linux)
if: runner.os == 'Linux'
env:
CDSAPI_URL: https://cds.climate.copernicus.eu/api
CDSAPI_KEY: ${{ secrets.CDSAPI_KEY }}
run: |
source "$HOME/miniconda/etc/profile.d/conda.sh"
conda init bash
Expand All @@ -75,6 +78,9 @@ jobs:
shell: bash
- name: Run Julia tests inside the testenv-environment in Miniconda (Windows)
if: runner.os == 'Windows'
env:
CDSAPI_URL: https://cds.climate.copernicus.eu/api
CDSAPI_KEY: ${{ secrets.CDSAPI_KEY }}
run: |
$conda = Join-Path $env:USERPROFILE "miniconda\Scripts\conda.exe"
& $conda "shell.powershell" "hook" | Out-String | Invoke-Expression
Expand Down
9 changes: 8 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# Release notes

## Version 0.1.0 (2026-04-15)
## Version 0.1.0 (2026-04-25)

### Add Building node

* Added a `Building` node to the package, which provides sampling routines for building heat demand profiles based on temperature data.
A function `heat_demand_profile` is included to generate the heat demand profile from temperature data downloaded using hindcast data.
A function `get_met_data` is included to handle data retrieval, caching, and storage (using the python [`metocean_api`](https://metocean-api.readthedocs.io/en/latest/) library) for the meteorological data used in the `heat_demand_profile` function.
This function enables implementation of meteorological data dependent nodes.

### Add PV node

Expand Down
8 changes: 4 additions & 4 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ EMIExt = "EnergyModelsInvestments"
CSV = "0.10.16"
DataFrames = "1.8.1"
Dates = "1.10"
EnergyModelsBase = "0.9.0"
EnergyModelsHeat = "0.1.1"
EnergyModelsInvestments = "0.8.1"
EnergyModelsRenewableProducers = "0.6.5"
EnergyModelsBase = "0.10"
EnergyModelsHeat = "0.2"
EnergyModelsInvestments = "0.9"
EnergyModelsRenewableProducers = "0.7"
HTTP = "1.11"
JSON = "1.5.0"
JuMP = "1.23"
Expand Down
3 changes: 2 additions & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ makedocs(
"WindPower"=>"nodes/windpower.md",
"PV"=>"nodes/pv.md",
"PVandCSP"=>"nodes/pvandcsp.md",
"MultipleBuildingTypes"=>"nodes/multiplebuildingtypes.md",
"Buildings"=>"nodes/multiplebuildingtypes.md",
],
"Resources" => Any["ResourceBio"=>"resources/resourcebio.md"],
"Utility functions" => Any["Reference"=>"util-fun/reference.md"],
Expand All @@ -55,6 +55,7 @@ makedocs(
"Library" => Any[
"Public"=>"library/public.md",
"Internals"=>String[
"library/internals/types-EMLI.md",
"library/internals/methods-EMLI.md",
"library/internals/methods-EMB.md",
"library/internals/methods-EMR.md",
Expand Down
4 changes: 3 additions & 1 deletion docs/src/how-to/utilize.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,9 @@ cd ../..
!!! note "Environments"
If you are a developer, you probably want to install the python modules in a separate environment which can be done with, *e.g.*, [miniconda](https://www.anaconda.com/docs/getting-started/miniconda/install).

Enable these by starting a julia session in the main folder
### [Enable python modules](@id how_to-utilize-use_nodes-enable_python_modules)

The python modules above (and other modules) can be enabled by starting a julia session in the main folder

```PowerShell
julia --project=.
Expand Down
18 changes: 10 additions & 8 deletions docs/src/library/internals/methods-EMLI.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@ Pages = ["methods-EMLI.md"]
## [Utility methods](@id lib-int-met-util)

```@docs
EnergyModelsLanguageInterfaces.cleanup_libraries
EnergyModelsLanguageInterfaces.getfirst
EnergyModelsLanguageInterfaces.get_python_function
EnergyModelsLanguageInterfaces.moisture
EnergyModelsLanguageInterfaces.bio_type
EnergyModelsLanguageInterfaces.electricity_resource
EnergyModelsLanguageInterfaces.pvgis_profile
EnergyModelsLanguageInterfaces.get_pvgis_data
EMLI.cleanup_libraries
EMLI.getfirst
EMLI.get_python_function
EMLI.moisture
EMLI.bio_type
EMLI.electricity_resource
EMLI.pvgis_profile
EMLI.get_pvgis_data
EMLI.get_met_data
EMLI.heat_demand_profile
```

## [Macros](@id lib-int-mac-util)
Expand Down
13 changes: 13 additions & 0 deletions docs/src/library/internals/types-EMLI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# [Types](@id lib-int-types)

## [Index](@id lib-int-types-idx)

```@index
Pages = ["types-EMLI.md"]
```

## [Nodal supertypes](@id lib-int-types-node)

```@docs
EMLI.AbstractBuildings
```
57 changes: 38 additions & 19 deletions docs/src/library/public.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,30 @@
## [New resource types](@id lib-pub-resource_types)

```@docs
EnergyModelsLanguageInterfaces.ResourceBio
EMLI.ResourceBio
```

## [New parameter types](@id lib-pub-parameter_types)

```@docs
EnergyModelsLanguageInterfaces.PVParameters
EMLI.PVParameters
```

## [New nodal types](@id lib-pub-nodal_types)

```@docs
EnergyModelsLanguageInterfaces.WindPower
EnergyModelsLanguageInterfaces.PV
EnergyModelsLanguageInterfaces.CSPandPV
EnergyModelsLanguageInterfaces.MultipleBuildingTypes
EnergyModelsLanguageInterfaces.BioCHP
EMLI.WindPower
EMLI.PV
EMLI.CSPandPV
EMLI.Building
EMLI.MultipleBuildingTypes
EMLI.BioCHP
```

## [Sampling constructors](@id lib-pub-sampling_constructors)

```@docs
EnergyModelsLanguageInterfaces.WindPower(
EMLI.WindPower(
::Any,
::TimeStruct.TimeProfile,
::Dict,
Expand All @@ -35,7 +36,7 @@ EnergyModelsLanguageInterfaces.WindPower(
::TimeStruct.TimeProfile,
::Dict{<:EnergyModelsBase.Resource,<:Real},
)
EnergyModelsLanguageInterfaces.PV(
EMLI.PV(
::Any,
::TimeProfile,
::TimeProfile,
Expand All @@ -44,22 +45,40 @@ EnergyModelsLanguageInterfaces.PV(
::DateTime,
::DateTime,
::PVParameters;
data::Vector{<:Data} = Data[],
data::Vector{<:ExtensionData} = ExtensionData[],
data_path::String = "pvgis_cache",
filename_hint::String = "",
)
EnergyModelsLanguageInterfaces.CSPandPV(
EMLI.CSPandPV(
::Any,
::Dict,
::DateTime,
::DateTime,
::Dict{String,<:EnergyModelsBase.Resource};
data::Vector{<:Data} = Data[],
data::Vector{<:ExtensionData} = ExtensionData[],
method::String = "Ninja",
data_path::String = "",
source::String = "NORA3",
)
EnergyModelsLanguageInterfaces.MultipleBuildingTypes(
EMLI.Building(
::Any,
::Dict{<:Resource,<:TimeProfile},
::Dict{<:Resource,<:TimeProfile},
::Dict{<:Resource,<:TimeProfile},
::Dict{<:Resource,<:Real},
::DateTime,
::DateTime,
::Real,
::Real,
::Resource,
::Function;
data::Vector{<:ExtensionData} = ExtensionData[],
data_path::String = joinpath(tempdir(), "building"),
source::String = "NORA3",
reload_csv::Bool = true,
save_csv::Bool = true,
)
EMLI.MultipleBuildingTypes(
::Any,
::Dict,
::DateTime,
Expand All @@ -69,24 +88,24 @@ EnergyModelsLanguageInterfaces.MultipleBuildingTypes(
::TimeStruct.TimeStructure,
::Dict{<:EnergyModelsBase.Resource,<:TimeStruct.TimeProfile},
::Dict{<:EnergyModelsBase.Resource,<:TimeStruct.TimeProfile};
data::Vector{<:EnergyModelsBase.Data} = EnergyModelsBase.Data[],
data::Vector{<:ExtensionData} = ExtensionData[],
data_location::String = joinpath(tempdir(), "buildings"),
overwrite_saved_data::Bool = false,
)
EnergyModelsLanguageInterfaces.BioCHP(
EMLI.BioCHP(
::Any,
::TimeStruct.TimeProfile,
::Dict{<:EnergyModelsLanguageInterfaces.ResourceBio,<:Real},
::Dict{<:EMLI.ResourceBio,<:Real},
::Dict{<:EnergyModelsHeat.ResourceHeat,<:Real},
::EnergyModelsBase.Resource;
data::Vector{<:EnergyModelsBase.Data} = EnergyModelsBase.Data[],
data::Vector{<:ExtensionData} = ExtensionData[],
libpath::String = joinpath(@__DIR__, "..", "..", "CHP_modelling", "build", "lib", "libbioCHP_wrapper.so"),
)
```

## [Utility functions](@id lib-pub-util_fun)

```@docs
EnergyModelsLanguageInterfaces.call_python_function
EnergyModelsLanguageInterfaces.fetch_element
EMLI.call_python_function
EMLI.fetch_element
```
Loading
Loading