GithubHelp home page GithubHelp logo

miguelongonzalez / wasar Goto Github PK

View Code? Open in Web Editor NEW
11.0 1.0 1.0 12.14 MB

Python package for analyzing A-DInSAR time series.

License: GNU General Public License v3.0

Python 100.00%
environment hydrogeology insar gis wavelet

wasar's Introduction

Wasar: Analysis of A-DInSAR time series.

image DOI

This package allows to analyze the ground deformation of a region and to compare it with other climatic variables, such as groundwater levels or rainfall. In addition, the inclusion of wavelet tools allows to analyze the main periodicities of the model variables and estimate cause-effect processes.

Introduction

Many regions worldwide are affected by ground subsidence phenomena. Abusive water withdrawal from aquifers is one the main factors than can lead to this kind of processes. Although ground motion monitoring can be performed with in-situ instruments, one of the most widely used techniques in the last decades is the Advanced Differential Interferometry Synthetic Aperture Radar (A-DInSAR). The A-DInSAR technique consists on the superposition of numerous SAR images of the same region of the Earth, thus obtaining an image of the ground motion occurring between the SAR images acquisitions. Analyzing multiple time series of ground movement in a given region, and comparing them with groundwater level variatons (or other variables), are the manin purposes of the present program.

Install

Released source packages are available on PyPi. You can simply install it as:

pip install wasar

Since geopandas dependencies could cause conflicts with other spatial packages, it's highly recommended to create first a new environment, as well as taking a look at the geopandas installation guidelines.

An optional package must be installed for the use of wavelet analysis. It's rpy2 package, and it can be simply installed via pip:

pip install rpy2


In case you find problems installing geopandas, here we leave the procedure we have used to install geopandas from the Anaconda Powershell Prompt:

  1. Create a new environment (in this example with the name enviname):

conda create --name enviname

  1. Activate the new environment:

conda activate enviname

  1. Install geopandas:

conda install -c conda-forge python=3.9 fiona shapely rasterio pyproj pandas jupyterlab jupyter geopandas

  1. Open a new jupyter notebook from your working directory:

jupyter notebook --notebook-dir=c:\working_directory

Dependencies

  • geopandas
  • pandas
  • matplotlib
  • folium

Contact

We are Miguel González Jiménez and Carolina Guardiola Albert. You can contact us just via GitHub or through our e-mails: [email protected] and [email protected].

Get started

In the example folder you can find several tutorials that will help you to get started with the program. Also, the functions, classes and modules are fully explained in Spanish, so if you have doubts about their behavior, just use the built-in help, the ? mark or the tab button in Jupyter Notebook.

Example: help(wasar.Dataset.find_element) or wasar.Dataset.find_element? or wasar.Dataset.find_element + . + press tab

Licence

This project is licensed under the terms of the GNU General Public License v3.0

How to cite wasar

If you use the program, please cite it as follows:

Example

>>> import wasar
>>> Model = wasar.example.get_model()

>>> mymap = Model.mapa(LayerControl=False)
>>> Model.get('Asc').mapa(m=mymap)

map

A very useful tool of wasar are wavelet tools, which allow to perform frequency analysis of the time series.

The following example shows the common periodicities between a rainfall station and a piezometer, being the annual frequency the main common one.

>>> from wasar import Wavelet
>>> Doñana = wasar.example.get_model()

>>> piezometer = Doñana.get('Piezo_bbdd').take('104080065')
>>> piezometer = piezometer.pivot(index='Fechas',columns='Nombre', values='Valores')

>>> rainfall = Doñana.get('P').take('Almonte')

>>> Wavelet('M', piezometer, rainfall, dt=2, dj=1/20, lowerPeriod=2, upperPeriod=30)

wavelet

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.