Giter Club home page Giter Club logo

satsense's People

Contributors

bouweandela avatar bpmweel avatar codacy-badger avatar derkbarten avatar elboyran avatar jarocamphuijsen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

satsense's Issues

Update scipy

The function scipy.misc.imread has been removed from scipy since version 1.3, but we use it in the function satsense.util.mask.load_mask_from_file.

Machine Learning Algorithm Training

As a Remote sensing expert
I want to Train a machine learning algorithm using the calculated features
because I can then apply the algorithm to detect slums.

Estimate: 3

Calculate features

As a remote sensing expert
I want to Calculate the features in satsense on a satellite image.
because This allows me to use them to detect slums

Estimate: 2

Improve save/load of FeatureVector

As a Remote sensing user
I would like to be able to restore a saved FeatureVector instance from file (netcdf or geotif) for Texton and Sift features.
because then I do not have to recalculate the initialization of these features to calculate them.

Add windows CI build

As a Satsense developer
I would like to add a windows build to the automated build system
so that I can be sure that satsense works correctly on windows systems

Windows on appveyor (Boatswain has appeveyor config as an example)

Use satsense for Sentinel 2 tif

As a user,
I want to run satsense over a few sentinel-2 tiles, and osm shapefile as my ground label
because I want to do landcover classification.

Improve memory behaviour and simplify design

Work on this is done in #14

  • Prevent copying a large numpy arrays between processes
  • Use python slices instead of windows
  • Check speed of rasterio windows against loading the image in bands (-> this was too slow to use for window generation)

Add mac build to travis

As a Satsense developer
I would like to add a mac build to the automated build system
so that I can be sure that satsense works correctly on mac systems

Update Texton, Sift and features

As a Remote sensing expert
I want to Calculate the texton and sift features on a large satellite image on a computer with limited memory
because I do not have access to a computer with enough memory

Estimate: 5

Add unit tests of feature computation

List of features that need tests:

  • hog
  • lacunarity
  • ndxi
  • pantex
  • rid (do we believe this feature is worth the effort?)
  • sift
  • texton

The minimum test that should be available is a regression test. More is better, but maybe not feasible in the limited amount of time we have.

We may also consider comparing with the features as computed by spfeas.

Handle masked image pixels correctly

We need a strategy to handle masked image pixels values in the feature computations. This is probably different per feature if you want to do something meaningful with masked image data. The simplest and safest strategy is probably to return a masked or fill value instead of the feature value(s) if the input image contains any masked value.

Loading extracted features with masks, mask is not loaded

When loading computed features at a later time, the mask is not properly loaded...
This cost me quite some time to figure out what was going on with my features (all my statistics were messed up, +infinity for the means, etc)

I was loading features from .tif files.
I did look at the feature loading/saving code but it seemed like there is code for handling the mask...

This is the temporary fix I used (which assumes the mask fill_value = 1e+20):

x_test_mask = np.ma.masked_values(x_test, 1e+20)
mask = x_test_mask.mask

vector_mask = np.any(mask, axis=1)

index_vector = ~vector_mask
x_test = x_test[index_vector]
y_test = y_test[index_vector]

QGIS plugin

As a Remote sensing QGIS user
I would like to Use the feature extraction capabilities of satsense from QGIS
because I would like to use these features, but do not have experience in programming python.

Check if it is feasible to make it possible to use satsense as a QGIS plugin and do so if the resulting installation procedure is not too complicated.

Clean up notebooks

As a Remote sensing expert user of satsense
I would like to Have an example notebook showing how to use satsense
because I can use this as a starting point for my own research.

Most notebooks are outdated. Update or remove once we have a more stable API.

This notebook is most informative and relatively up to date:
satsense/notebooks/demo_notebooks/Classification/Simple Example.ipynb

Apply ML algorithm

As a Remote sensing expert
I want to Apply the trained machine learning algorithm on a satellite image to detect slums
because I can then give this result as a validation set to the model builder

NEEDS REFINEMENT

SIFT no longer available in opencv > 3.4.2

From travis:

cv2.error: OpenCV(3.4.3) /io/opencv_contrib/modules/xfeatures2d/src/sift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'

User Documentation

As a remote sensing user of satsense
I would like to be able to look up how to use the relevant parts of satsense in the documentation
because without documentation using satsense will be very hard

  • Check public interface for docstrings
  • Example Jupyter Notebooks #17
  • Write User Guide
  • Readthedocs documentation (sphinx)

Estimate: 8 (timeboxed to 5)

Improve FeatureSet

The satsense.features.FeatureSet class should provide a convenient way for users to combine satsense.image.FeatureVector or satsense.features.Feature objects into an array that can be used for machine learning tasks.

The set should allow;

  • easy addition and removal of features or feature vectors
  • automatic reshaping from a number of feature vectors of shape (width, height, window_number, feature_length) into (n_samples, combined_feature_size)
  • support computing and loading from disk or mix of these operations
  • train/test/validation split

Enable doctests?

As a user
I want to read examples in the documentation that work
because I will have trouble using satsense if they don't

We should probably enable doctests, this can be done by adding --doctest-modules under addopts in setup.cfg.

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.