Skip to content

Commit

Permalink
Merge branch 'main' into 22_improve_reslc_py
Browse files Browse the repository at this point in the history
  • Loading branch information
rogerkuou committed Jan 14, 2025
2 parents 9931838 + 44495a2 commit 98b97bf
Show file tree
Hide file tree
Showing 54 changed files with 2,882 additions and 57 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This workflow will install Python dependencies with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Build
name: Build and pytest

on:
push:
Expand All @@ -20,15 +20,17 @@ jobs:
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build
python -m pip install ".[dev,docs,demo]"
- name: Build the package
run: python -m build
- name: Test with pytest
run: python -m pytest
35 changes: 35 additions & 0 deletions .github/workflows/build_group.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Build and test for the private repository for TUDelft Radar group
# Only test on PR for dev branch, not triggered for draft PR

name: Build and pytest

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches: [ "dev" ]

jobs:
build:

runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest']
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build
python -m pip install ".[dev,docs]"
- name: Build the package
run: python -m build
- name: Test with pytest
run: python -m pytest
28 changes: 28 additions & 0 deletions .github/workflows/doc_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Deploy documentation when new release created

name: Deploy docs

on:
release:
types:
- published


jobs:
build:
name: Deploy docs
runs-on: ubuntu-latest
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install .[docs]
- name: Deploy docs
run: mkdocs gh-deploy --force
15 changes: 15 additions & 0 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Lint and format check
# For dev branch on private repo, only test on PR, not triggered for draft PR

name: Ruff
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main", "dev" ]
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/ruff-action@v3
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# DePSI Contributing Guidelines


We welcome any kind of contribution to our software, from a simple comment
or question to a full fledged [pull request](https://help.github.com/articles/about-pull-requests/).
Please read and follow our [Code of Conduct](./CODE_OF_CONDUCT.md).

A contribution can be one of the following cases:

- you have a question;
- you think you may have found a bug (including unexpected behavior);
- you want to make some kind of change to the code base (e.g. to fix a bug, to add a new feature, to update documentation).

The sections below outline the steps in each case.

## You have a question

- use the search functionality in [GitHub issue](https://github.com/TUDelftGeodesy/DePSI/issues)
to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, create a new issue;
- add the "question" label; include other labels when relevant.

## You think you may have found a bug

- use the search functionality in [GitHub issue](https://github.com/TUDelftGeodesy/DePSI/issues) to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, create a new issue, making sure to provide enough information to the rest of the community to understand the cause and context of the problem. Depending on the issue, you may want to include:
- the [SHA hashcode](https://help.github.com/articles/autolinked-references-and-urls/#commit-shas>) of the commit that is causing your problem;
- some identifying information (name and version number) for dependencies you're using;
- information about the operating system;
- add relevant labels to the newly created issue.

## You want to make some kind of change to the code base

- (**important**) announce your plan to the rest of the community *before you start working*. This announcement should be in the form of a (new) issue;
- (**important**) wait until some kind of consensus is reached about your idea being a good idea;
- if needed, fork the repository to your own Github profile and create your own feature branch off of the latest master commit. While working on your feature branch, make sure to stay up to date with the master branch by pulling in changes, possibly from the 'upstream' repository (follow the instructions from GitHub: [instruction 1: configuring a remote for a fork](https://help.github.com/articles/configuring-a-remote-for-a-fork/) and [instruction 2: syncing a fork](https://help.github.com/articles/syncing-a-fork/));
- install the pre-commit hooks by running `pre-commit install` in the project root directory;
- make sure the existing tests still work by running, e.g. `pytest tests`;
- add your own tests (if necessary);
- update or expand the documentation;
- make sure the linting tests pass by running `ruff` in the project root directory: `ruff check .`;
- [push](http://rogerdudler.github.io/git-guide/) your feature branch to (your fork of) the DePSI repository on GitHub;
- create the pull request, e.g. following [the instructions: creating a pull request](https://help.github.com/articles/creating-a-pull-request/).

In case you feel like you've made a valuable contribution, but you don't know how to write or run tests for it, or how to generate the documentation: don't let this discourage you from making the pull request; we can help you! Just go ahead and submit the pull request, but keep in mind that you might be asked to append additional commits to your pull request.

47 changes: 13 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,24 @@
# PyDePSI (Tentative name)

This is repository is WIP, where we are developing a Python package for inteferometric SAR processing. The software will be inspired by the MATLAB software DePSI, but implemented in Python and include recent developments in the field.
# DePSI

## Installation for development
DePSI (van Leijen, 2014) is an open source software for processing Persistent Scatterer Interferometry (PS-InSAR) data, originally implemented in MATLAB. From 2024, TUDelft and Netherlands eScience Center are collaborating to develop a Python version of DePSI, with recent advances in PS-InSAR.

It is assumed that you have `mamba` installed. If not, you can find the installation instructions [here](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). Other package managers like `conda` or `venv` can be used as well.
## Developer Guide

Clone this repository and `cd` into it:
Please refer to the [Developer Guide](docs/dev_guide.md) for installation instructions, testing, and other development-related information.

```bash
git clone [email protected]:MotionbyLearning/PyDePSI.git
cd PyDePSI
```

Create a new conda environment (here we give an example name `pydepsi-dev`) with `mamba`.:

```bash
mamba create -c conda-forge -n pydepsi-dev python=3.12
```

Here we use Python 3.12 since we aim to support python 3.10 and above.

Activate the environment:
## Useful reading material

```bash
mamba activate pydepsi-dev
```
- [Python packaging user guide](https://packaging.python.org/)
- [Testing in Python](https://docs.kedro.org/en/stable/development/automated_testing.html)
- [Code formatting and linting](https://docs.kedro.org/en/stable/development/linting.html)

Install this package in development mode:
## License

```bash
pip install -e ".[dev,docs]"
```
Copyright (c) 2023 - 2025, Netherlands eScience Center & Delft University of Technology

In the end, install the pre-commit hooks:
```bash
pre-commit install
```
Apache Software License 2.0

## Useful reading material
## References

- [Python packaging user guide](https://packaging.python.org/)
- [Testing in Python](https://docs.kedro.org/en/stable/development/automated_testing.html)
- [Code formatting and linting](https://docs.kedro.org/en/stable/development/linting.html)
[1] Van Leijen, Frederik Johannes. "Persistent scatterer interferometry based on geodetic estimation theory." (2014).
File renamed without changes.
Loading

0 comments on commit 98b97bf

Please sign in to comment.