Giter VIP home page Giter VIP logo

giant's Issues

Missing build_lost_in_space_catalogue interface

The is no method available to build the lost-in-space catalog from the stars catalog.

When the user attempts to resolve the stars on an image without a priori data, it raises the following error:
ValueError: The lost in space catalogue has not been loaded. Cannot solve lost in space problem.See build_lost_in_space_catalogue interface for details.

I couldn't find any script or method to build the lost-in-space catalog.

ellipse matching issues

  • Otsu thresholding only returning n-1 thresholds instead of n thresholds (for 4-level otsu, only get 3)
    • In image_processing.py, line 784 (thresholds = unique_iu8[kk[:n - 2]].astype(np.float64)) should be thresholds = unique_iu8[kk[:n - 1]].astype(np.float64)
  • Also in otsu, kk should be sorted after being found in sig_fun
    • Between line 775 and 777 in image_processing.py, needs kk = np.sort(kk)
  • Outlier rejection does not perform correctly when body is large in frame
    • If the object is greater that ~50% of the image area, the outlier check in identify_subpixel_limbs does not function as expected
    • Starts on line 1899 in image_processing.py, commenting out lines 1899-1909 did not seem to affect any other cases, including when object was small. Should double check necessity of it
  • Potential to run out of memory when object is large in frame
    • In _pixel limbs in image_processing.py, if there are too many edge points (typically when object is large in high resolution image), the line edge_distances = np.abs(perpendicular_direction.reshape(1, 1, 2) @ scan_start2edge_points).squeeze() grabs too much memory leading the process to be killed. Seen mainly during close flybys with image sizes of 2048x2048 or larger. Could potentially do piecewise after a check? Binning image and edge pixels to lower resolution? Have not fixed this one yet, interested in hearing your thoughts.

Noise calculation fix

First, line 1387 of image_processing.py is as follows:

            standard_deviation = np.nanstd(data[~outliers]) / 2

Should be changed to:

            standard_deviation = np.nanstd(data[~outliers]) / np.sqrt(2)

The rationale is that the difference between two independent normal random variables each with standard deviation σ also follows a normal distribution but with standard deviation sqrt(2)σ. Thus, the standard deviation of the differences is sqrt(2)σ. To estimate σ, you can divide the standard deviation of the differences by sqrt(2).

References: (ours is the case where σ_x = σ_y)

Second, line 1351 of image_processing.py is as follows:

            standard_deviation = np.nanstd(flat_dark) / 2

should be changed to:

            standard_deviation = np.nanstd(flat_dark)

In this case, we are taking the standard deviation of the (dark) image data itself, not the differences between points, so it seems like there should be no scale factor. The standard deviation of the data is already directly representative of the noise.

Note that this will effect star ID tuning (poi_threshold), since this is used to compute SNR for each pixel.

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.