Giter Site home page Giter Site logo

hsicube's People

Contributors

maaleske avatar

Stargazers

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

Watchers

 avatar  avatar

hsicube's Issues

Property default value consolidation

Currently default values for properties are defined at their initialization sites, split between Cube.m property definitions, constructor and CubeArgs, etc. This needs to organized better for maintainability, perhaps by creating a set of constant properties (e.g. DEFAULT_QUANTITY) for Cube.

Using bands() twice with logical indexing may cause errors

The problem

Currently the only (easy) way to select a given wavelength range of bands from a cube is to use logical indexing with the Wavelength property, for example

cube.bands(cube.Wavelength > 540 && cube.Wavelength < 1200)

works for selecting bands between 540 and 1200 nanometers. However, attempting the following will most likely result in an error:

cube.bands(cube.Wavelength > 540).bands(cube.Wavelength < 1200)

This is because both the logical matrices will be fully evaluated before either of the bands() statements, while the latter (rightmost) bands() statement is carried out on the already once sliced cube. If the first logical indexing reduces the number of bands, the latter will attempt to index the remaining bands with a logical vector of a larger size and fail.

Related issues

  • Since bands() cannot know why the supplied vector has the wrong length, it cannot give a more accurate error message to suggest a fix. Should it suggest this error in all cases?

  • To evade this issue, it would be best to implement a separate method to index the wavelength space, which always refers to the current state of the cube. However creating a ease-to-use parameter syntax for such a function is not very easy in MATLAB.

Documentation overhaul checklist

Description

Detailed and consistent documentation (visible with MATLAB help or doc) should be available for

  • Cube object properties
  • Cube object methods
  • ENVI object methods

In addition, tutorials or examples should be written for common usecases, such as

  • ENVI reading / writing
  • Setting and inspecting Cube properties
  • Workflow example for some hyperspectral analysis task

Please comment if you have suggestions for example cases!

API finalization for 0.9.0

Description

This issue is meant to track any (breaking and minor) API changes desired before considering it stabilized (my goal for 0.9.0). The current API (properties and methods for Cube) has been implemented without much outside or user input, and there are probably many cases of non-obvious syntax or other deficiencies in the current code. Please post comments or issues on any API changes you would like to see.

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.