Giter VIP home page Giter VIP logo

geoh2-data-prep's Introduction

GeoH2-data-prep

Spatial data preparation tools for GeoH2 users. The GeoH2 library requires spatial hexagon files for the area of interest with several spatial parameters attached as an input. These scripts are built to assist in creating these input data. They allow users to move from raw data inputs to a GeoH2-ready hexagon input by interfacing with the Global Land Availability of Energy Systems (GLAES) and Spatially Integrated Development of Energy and Resources (SPIDER).

Please note that when using this codebase, users may need to modify the filenames and paths included in the scripts should new releases of the suggested data be made or should the user choose to use different/supplementary data sources.


1 Installation instructions

1.1 Clone the repository

First, clone the repository:

/your/path % git clone https://github.com/alycialeonard/GeoH2-data-prep.git

After cloning, navigate to the top-level folder of the repo

1.2 Install Python dependencies

The Python package requirements to use these tools are in the requirements.yml file. You can install these requirements in a new environment using mamba package and environment manager (installation instructions here):

.../GeoH2-data-prep % mamba env create -f requirements.yml

Then activate this new environment using

.../GeoH2-data-prep % mamba activate geoh2-data-prep

You are now ready to run the scripts in this repository.

1.3 Install Glaes and SPIDER

These pre-processing scripts interface with the Glaes and SPIDER packages. Please also install these packages and create separate environments for each as described in the instructions available at the links below.


2 Usage instructions

2.1 Download input data

Before running the preparation scripts, the data must be downloaded.

Download these files and place them in the Raw_Spatial_Data folder. For OpenStreetMap files, please extract the .shp.zip folder for each country to a subfolder OSM\[CountryName] under Raw_Spatial_Data.

2.2 Define countries to study

These tools can allow you to prepare data for multiple countries at once. To define what countries to look at, modify the list country_names in spatial_data_prep.py, make_spider_configs.py, combine_glaes_spider.py, and Inputs_Glaes/workflow.py to contain the names of all the countries for which you want to prepare data. Note that the spellings used for country names must match those used in the Natural Earth country boundaries shapefile.

2.3 Run initial data prep

From GeoH2-data-prep, run spatial_data_prep.py:

.../GeoH2-data-prep % python spatial_data_prep.py

This will pre-process the raw data and place the prepared versions in the Inputs_Glaes and Inputs_Spider folders.

2.4 Run Glaes

Take the contents of the Inputs_Glaes folder and copy them into your Glaes repository at the top level. You can then move to your glaes directory, activate your glaes environment, and run the script workflow.py:

.../glaes % python workflow.py

This will produce files with the format Country_turbine_placements.shp and Country_pv_placements.shp under the folder processed. Copy the folder processed from the Glaes repository back to this repository, under Inputs_Glaes/processed.

2.5 Run Spider

Take the contents of the Inputs_Spider folder and copy them into your spider repository under /prep You can then move to this directory, activate your spider environment, and run the spider CLI. Take the following command, replace the Country with the name of the country you are studying without spaces or periods, and paste it in your terminal:

.../prep % gdal_rasterize data/Country.gpkg -burn 1 -tr 0.1 0.1 data/blank.tif && gdalwarp -t_srs EPSG:4088 data/blank.tif data/blank_proj.tif && spi --config=configs/Country_config.yml processed/Country_hex.geojson

This command must be issued for each country to be studied. You can "daisy chain" the commands for multiple countries together using the && operator. This will produce a set of hexagon tiles for each country using the parameters in the config file. They will be saved in the folder processed. Copy this folder back to this repository under Inputs_Spider\processed.

2.6 Combine Glaes and Spider results for GeoH2

The spatial data can then be combined into a final hexagon file for use in GeoH2 using the combine_glaes_spider.py script:

.../GeoH2-data-prep % python combine_glaes_spider.py

This will save a file with the format Country_hex_final.geojson to the folder Inputs_GeoH2\Data. This can then be pasted into a copy of the GeoH2 repository as your baseline input data for modelling.


Citation

If you decide to use this library and/or GeoH2, please kindly cite us using the following:

Halloran, C., Leonard, A., Salmon, N., Müller, L., & Hirmer, S. (2024). GeoH2 model: Geospatial cost optimization of green hydrogen production including storage and transportation. Pre-print submitted to MethodsX: https://doi.org/10.5281/zenodo.10568855. Model available on Github: https://github.com/ClimateCompatibleGrowth/GeoH2.

@techreport{halloran2024geoh2,
author  = {Halloran, C and Leonard, A and Salmon, N and Müller, L and Hirmer, S},
title   = {GeoH2 model: Geospatial cost optimization of green hydrogen production including storage and
transportation},
type = {Pre-print submitted to MethodsX},
year    = {2024},
doi = {10.5281/zenodo.10568855},
note = {Model available on Github at https://github.com/ClimateCompatibleGrowth/GeoH2.}
}

geoh2-data-prep's People

Contributors

alycialeonard avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.