sertit API documentation
Description: **Source Code**: https://github.com/sertit/sertit-utils …

# Package `sertit`

Source Code: https://github.com/sertit/sertit-utils

Library gathering functions for all SERTIT's projects.

Find the API documentation here.

# Installing

## Pip

For installing this library to your environment, please type this: `pip install sertit[full]`

`[full]` will allow you to use the whole library, but you will need to install also`rioxarray` and `geopandas` (with GDAL installation issues on Windows, so please install them from wheels that you can find here).

However, if you do not need everything, you can type instead:

- nothing, and you won't need `rasterio`, `rioxarray`: `pip install sertit --extra-index-url ...`
- `[sertit.rasters]`, and you won't need `rioxarray`: `pip install sertit[rasters] --extra-index-url ...`
- `[sertit.rasters_rio]`: `pip install sertit[rasters_rio] --extra-index-url ...`
- `[colorlog]`: `pip install sertit[colorlog] --extra-index-url ...` to have `colorlog` installed

## Conda

You can install it via conda (but you will automatically have the full version):

`conda config --env --set channel_priority strict`

`conda install -c conda-forge sertit`

# What is in it ?

## Files

File gathering file-related functions:

- paths
- Create archive
- Add folder to zip file
- file extraction
- file name
- copy/remove
- find files
- JSON/pickles
- hash

## Logs

- Init simple logger
- Create complex logger (file and stream + color)
- Shutdown logger

## Misc

- Function on lists: convert a list to a dict, remove empty values…
- Function on dicts: nested set, check mandatory keys, find by key
- Run a command line
- Get a function name
- Test if in docker
- Change current directory (`cd`) as a context manager

## Strings

- Conversion from string to bool, logging level, list, list of dates…
- Convert the string to be usable in command line
- Case conversion (`snake_case` to/from `CamelCase`)

## Vectors

- Load an AOI as WKT
- Get UTM projection from lat/lon
- Manage bounds and polygons
- Get `geopandas.Geodataframe` from polygon and CRS

## Rasters and rasters_rio

Basically, these functions are overloads of rasterio's functions:

- Get extent and footprint of a raster
- Read/write overload of rasterio functions
- Masking and cropping with masked array
- Collocation (superimpose)
- Sieving
- Vectorization and get nodata vector
- Merge rasters (as GTiff and VRT)
- Get the path of the BEAM-DIMAP image that can be read by rasterio
- Manage bit arrays

The main difference between the two is that `sertit.rasters` outputs one `xarray` variable when `sertit.rasters_rio` outputs `numpy.ma.masked_arrays` + `dict` for the raster array and its metadata.

## Network

- Standard Exponential Backoff algorithm

## SNAP

- Function converting bytes to SNAP understanding
- Function creating a SNAP optimized commande line

# Documentation

An HTML documentation is provided to document the code. It can be found:

- online (here),
- on git, in `docs`. To consult it, just open the `index.html` file in a web browser (you need first to clone this project) To generate the HTML documentation, just type `pdoc sertit -o docs\html -f --html -c sort_identifiers=False`

Expand source code

    # -*- coding: utf-8 -*-
    # Copyright 2021, SERTIT-ICube - France, https://sertit.unistra.fr/
    # This file is part of sertit-utils project
    #     https://github.com/sertit/sertit-utils
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    """
    **Source Code**: https://github.com/sertit/sertit-utils

    .. include:: ../README.md
    """

    __version__ = "1.7.0"

## Sub-modules

`sertit.arcpy`
`sertit.ci`

  CI tools …

`sertit.display`

  Display tools

`sertit.files`

  Tools for paths and files

`sertit.logs`

  Logging tools

`sertit.misc`

  Miscellaneous Tools

`sertit.network`

  Network control utils

`sertit.rasters`

  Raster tools …

`sertit.rasters_rio`

  Raster tools …

`sertit.snap`

  SNAP tools

`sertit.strings`

  Tools concerning strings

`sertit.vectors`

  Vectors tools …