setiastrosuitepro 1.7.0.post2__tar.gz → 1.7.1.post2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of setiastrosuitepro might be problematic. Click here for more details.
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/PKG-INFO +3 -2
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/pyproject.toml +8 -9
- setiastrosuitepro-1.7.1.post2/src/setiastro/images/TextureClarity.svg +56 -0
- setiastrosuitepro-1.7.1.post2/src/setiastro/saspro/_generated/build_info.py +3 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/aberration_ai.py +79 -2
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/astrospike_python.py +45 -3
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/main_window.py +16 -2
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/menu_mixin.py +2 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/toolbar_mixin.py +12 -5
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/serloader.py +513 -140
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/resources.py +2 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/rgbalign.py +456 -12
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_stack_config.py +9 -1
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_stacker.py +12 -1
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_stacker_dialog.py +339 -1
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/serviewer.py +368 -1
- setiastrosuitepro-1.7.1.post2/src/setiastro/saspro/texture_clarity.py +593 -0
- setiastrosuitepro-1.7.0.post2/src/setiastro/saspro/_generated/build_info.py +0 -3
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/LICENSE +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/README.md +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/license.txt +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/SASP_data.fits +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/List_of_Galaxies_with_Distances_Gly.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/astrobin_filters.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/astrobin_filters_page1_local.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/cali2.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/cali2color.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/celestial_catalog - original.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/celestial_catalog.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/detected_stars.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/fits_header_data.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/test.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/data/catalogs/updated_celestial_catalog.csv +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/Astro_Spikes.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/Background_startup.jpg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/HRDiagram.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/LExtract.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/LInsert.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/Oxygenation-atm-2.svg.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/RGB080604.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/abeicon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/abeicon.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/aberration.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/acv_icon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/andromedatry.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/andromedatry_satellited.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/annotated.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/aperture.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuite.ico +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuite.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuitepro.icns +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuitepro.ico +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/astrosuitepro.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/background.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/background2.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/benchmark.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/big_moon_stabilizer_timeline.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/big_moon_stabilizer_timeline_clean.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/blaster.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/blink.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/clahe.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/collage.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/colorwheel.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/colorwheel.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/contsub.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/convo.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/copyslot.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmic.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmic.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmicsat.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cosmicsat.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/crop1.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cropicon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/curves.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/cvs.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/debayer.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/denoise_cnn_custom.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/denoise_cnn_graph.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/disk.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/dse.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/exoicon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/eye.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/first_quarter.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/fliphorizontal.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/flipvertical.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/font.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/freqsep.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/full_moon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/functionbundle.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/graxpert.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/graxpert.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/green.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/gridicon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/halo.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/hdr.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/histogram.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/hubble.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/imagecombine.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/invert.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_figure.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_image.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_model.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/isophote_demo_residual.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/jwstpupil.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/last_quarter.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/linearfit.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/linearfit.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/livestacking.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/mask.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/maskapply.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/maskcreate.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/maskremove.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/morpho.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/mosaic.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/multiscale_decomp.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/narrowbandnormalization.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/nbtorgb.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/neutral.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/new_moon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/nuke.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/openfile.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pedestal.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pen.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pixelmath.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pixelmath.svg +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/planetarystacker.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/platesolve.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/ppp.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/pro.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/project.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/psf.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/redo.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/redoicon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rescale.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rgbalign.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rgbcombo.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rgbextract.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotate180.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotatearbitrary.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotateclockwise.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/rotatecounterclockwise.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/satellite.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/script.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/selectivecolor.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/simbad.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot0.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot1.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot2.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot3.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot4.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot5.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot6.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot7.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot8.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/slot9.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/spcc.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/spin_precession_vs_lunar_distance.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/spinner.gif +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/stacking.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/staradd.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/staralign.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starnet.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starregistration.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starspike.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/starstretch.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/statstretch.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/supernova.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/uhs.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/undoicon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/upscale.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/viewbundle.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_1.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_2.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_3.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_4.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_crescent_5.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_1.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_2.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_3.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_4.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waning_gibbous_5.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_1.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_2.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_3.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_4.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_crescent_5.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_1.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_2.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_3.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_4.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/waxing_gibbous_5.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/whitebalance.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wimi_icon_256x256.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wimilogo.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wims.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/wrench_icon.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/images/xisfliberator.png +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/qml/ResourceMonitor.qml +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/__main__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/_generated/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/abe.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/abe_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/aberration_ai_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/accel_installer.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/accel_workers.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/acv_exporter.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/add_stars.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/astrobin_exporter.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/astrospike.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/autostretch.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/backgroundneutral.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/batch_convert.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/batch_renamer.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/blemish_blaster.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/blink_comparator_pro.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/bundles.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/bundles_dock.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/cheat_sheet.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/clahe.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/comet_stacking.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/common_tr.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/config.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/config_bootstrap.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/config_manager.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/continuum_subtract.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/convo.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/convo_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/copyastro.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/cosmicclarity.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/cosmicclarity_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/crop_dialog_pro.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/crop_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/curve_editor_pro.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/curves_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/debayer.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/debug_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/dnd_mime.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/doc_manager.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/exoplanet_detector.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/file_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/fitsmodifier.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/fix_bom.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/free_torch_memory.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/frequency_separation.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/function_bundle.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/generate_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ghs_dialog_pro.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ghs_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/graxpert.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/graxpert_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/dock_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/file_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/geometry_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/header_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/mask_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/theme_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/update_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/mixins/view_mixin.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/gui/statistics_dialog.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/halobgon.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/header_viewer.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/headless_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/histogram.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/history_explorer.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/i18n.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/image_combine.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/image_peeker_pro.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/mdi_snap.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/narrowband_normalization.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/scnr.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/starbasedwhitebalance.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/imageops/stretch.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/isophote.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/layers.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/layers_dock.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/lazy_imports.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/image_manager.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/numba_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/legacy/xisf.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/linear_fit.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/live_stacking.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/log_bus.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/logging_config.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/luminancerecombine.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/main_helpers.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mask_creation.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/masks_core.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mdi_widgets.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/memory_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/metadata_patcher.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconv.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconv_earlystop.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconvcudnn.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/mfdeconvsport.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/minorbodycatalog.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/morphology.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/multiscale_decomp.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/narrowband_normalization.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/nbtorgb_stars.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/numba_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/numba_warmup.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/command_help_dialog.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/command_runner.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/commands.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/script_editor.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/scripts.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ops/settings.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/parallel_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pedestal.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/perfect_palette_picker.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pipeline.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pixelmath.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/plate_solver.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/project_io.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/psf_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/psf_viewer.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/pyi_rthook_astroquery.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/remove_green.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/remove_stars.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/remove_stars_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/rgb_combination.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/rgb_extract.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/runtime_imports.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/runtime_torch.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/save_options.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/selective_color.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/ser_tracking.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/sfcc.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/shortcuts.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/signature_insert.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/stacking_suite.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_alignment.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_alignment_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_metrics.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_spikes.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/star_stretch.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/stat_stretch.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/status_log_dock.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/subwindow.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/supernovaasteroidhunter.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/swap_manager.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/torch_backend.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/torch_rejection.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/all_source_strings.json +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/ar_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/de_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/es_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/fr_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/hi_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/integrate_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/it_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/ja_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/pt_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/ru_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ar.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ar.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_de.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_de.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_es.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_es.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_fr.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_fr.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_hi.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_hi.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_it.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_it.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ja.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ja.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_pt.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_pt.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ru.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_ru.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_sw.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_sw.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_uk.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_uk.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_zh.qm +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/saspro_zh.ts +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/sw_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/uk_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/translations/zh_translations.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/versioning.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/view_bundle.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescale_hdr.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescale_hdr_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescalede.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wavescalede_preset.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wcs_update.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/whitebalance.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/__init__.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/common_utilities.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/graphics_views.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/image_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/minigame/game.js +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/minigame/index.html +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/minigame/style.css +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/preview_dialogs.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/resource_monitor.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/spinboxes.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/themed_buttons.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/widgets/wavelet_utils.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wimi.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/wims.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/window_shelf.py +0 -0
- {setiastrosuitepro-1.7.0.post2 → setiastrosuitepro-1.7.1.post2}/src/setiastro/saspro/xisf.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: setiastrosuitepro
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.1.post2
|
|
4
4
|
Summary: Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization
|
|
5
5
|
License: GPL-3.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -35,8 +35,9 @@ Requires-Dist: numba
|
|
|
35
35
|
Requires-Dist: numpy
|
|
36
36
|
Requires-Dist: oktopus
|
|
37
37
|
Requires-Dist: onnx
|
|
38
|
-
Requires-Dist: onnxruntime ; sys_platform != "win32"
|
|
38
|
+
Requires-Dist: onnxruntime ; sys_platform != "linux" and sys_platform != "win32"
|
|
39
39
|
Requires-Dist: onnxruntime-directml ; sys_platform == "win32"
|
|
40
|
+
Requires-Dist: onnxruntime-gpu ; sys_platform == "linux"
|
|
40
41
|
Requires-Dist: opencv-python-headless
|
|
41
42
|
Requires-Dist: pandas
|
|
42
43
|
Requires-Dist: photutils
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "setiastrosuitepro"
|
|
3
|
-
version = "1.7.
|
|
3
|
+
version = "1.7.1.post2"
|
|
4
4
|
description = "Seti Astro Suite Pro - Advanced astrophotography toolkit for image calibration, stacking, registration, photometry, and visualization"
|
|
5
5
|
authors = ["Franklin Marek <info@setiastro.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -55,15 +55,14 @@ jplephem = "*"
|
|
|
55
55
|
# performance
|
|
56
56
|
numba = "*"
|
|
57
57
|
|
|
58
|
-
#
|
|
58
|
+
#neural net
|
|
59
59
|
onnx = "*"
|
|
60
|
-
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
onnxruntime-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
onnxruntime = {version="*", markers="sys_platform != 'win32'"}
|
|
60
|
+
# Use GPU version on Linux, DirectML on Windows, CPU version on macOS/others
|
|
61
|
+
# Note: onnxruntime-gpu includes CUDA support and also provides CPUExecutionProvider as fallback
|
|
62
|
+
# You cannot install both onnxruntime and onnxruntime-gpu simultaneously
|
|
63
|
+
"onnxruntime-gpu" = {version = "*", markers = "sys_platform == 'linux'"}
|
|
64
|
+
"onnxruntime-directml" = {version = "*", markers = "sys_platform == 'win32'"}
|
|
65
|
+
onnxruntime = {version = "*", markers = "sys_platform != 'linux' and sys_platform != 'win32'"}
|
|
67
66
|
|
|
68
67
|
# image formats & camera raw
|
|
69
68
|
xisf = "*"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<svg width="500" height="500" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#0d0221;stop-opacity:1" />
|
|
5
|
+
<stop offset="100%" style="stop-color:#2a0e66;stop-opacity:1" />
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="sunGradient" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#ff9a00;stop-opacity:1" />
|
|
9
|
+
<stop offset="40%" style="stop-color:#ff0055;stop-opacity:1" />
|
|
10
|
+
<stop offset="100%" style="stop-color:#9900ff;stop-opacity:1" />
|
|
11
|
+
</linearGradient>
|
|
12
|
+
<linearGradient id="textGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
13
|
+
<stop offset="0%" style="stop-color:#00ffff;stop-opacity:1" />
|
|
14
|
+
<stop offset="100%" style="stop-color:#ff00ff;stop-opacity:1" />
|
|
15
|
+
</linearGradient>
|
|
16
|
+
<filter id="neonGlow" x="-50%" y="-50%" width="200%" height="200%">
|
|
17
|
+
<feGaussianBlur stdDeviation="3.0" result="coloredBlur"/>
|
|
18
|
+
<feMerge>
|
|
19
|
+
<feMergeNode in="coloredBlur"/>
|
|
20
|
+
<feMergeNode in="SourceGraphic"/>
|
|
21
|
+
</feMerge>
|
|
22
|
+
</filter>
|
|
23
|
+
</defs>
|
|
24
|
+
<rect width="500" height="500" fill="url(#skyGradient)" />
|
|
25
|
+
<g transform="translate(250, 220)">
|
|
26
|
+
<circle r="120" fill="url(#sunGradient)" />
|
|
27
|
+
<rect x="-120" y="20" width="240" height="4" fill="#2a0e66" opacity="0.8" />
|
|
28
|
+
<rect x="-120" y="35" width="240" height="6" fill="#2a0e66" opacity="0.8" />
|
|
29
|
+
<rect x="-120" y="52" width="240" height="8" fill="#2a0e66" opacity="0.8" />
|
|
30
|
+
<rect x="-120" y="72" width="240" height="12" fill="#2a0e66" opacity="0.8" />
|
|
31
|
+
<rect x="-120" y="96" width="240" height="16" fill="#2a0e66" opacity="0.8" />
|
|
32
|
+
</g>
|
|
33
|
+
<g stroke="#ff00ff" stroke-width="2" opacity="0.4">
|
|
34
|
+
<line x1="0" y1="350" x2="500" y2="350" />
|
|
35
|
+
<line x1="0" y1="380" x2="500" y2="380" />
|
|
36
|
+
<line x1="0" y1="420" x2="500" y2="420" />
|
|
37
|
+
<line x1="0" y1="470" x2="500" y2="470" />
|
|
38
|
+
<line x1="250" y1="350" x2="250" y2="500" />
|
|
39
|
+
<line x1="250" y1="350" x2="50" y2="500" />
|
|
40
|
+
<line x1="250" y1="350" x2="-150" y2="500" />
|
|
41
|
+
<line x1="250" y1="350" x2="450" y2="500" />
|
|
42
|
+
<line x1="250" y1="350" x2="650" y2="500" />
|
|
43
|
+
</g>
|
|
44
|
+
<g font-family="'Times New Roman', Times, serif" font-weight="bold" font-style="italic" font-size="360" text-anchor="middle">
|
|
45
|
+
<text x="217" y="390" fill="#00ffff" opacity="0.7">TC</text>
|
|
46
|
+
<text x="233" y="390" fill="#ff0055" opacity="0.7">TC</text>
|
|
47
|
+
<text x="225" y="390" fill="url(#textGradient)" stroke="#ffffff" stroke-width="3" filter="url(#neonGlow)">TC</text>
|
|
48
|
+
</g>
|
|
49
|
+
<g fill="#ffffff" opacity="0.8">
|
|
50
|
+
<circle cx="50" cy="50" r="2" />
|
|
51
|
+
<circle cx="450" cy="80" r="2" />
|
|
52
|
+
<circle cx="100" cy="150" r="1.5" />
|
|
53
|
+
<circle cx="400" cy="20" r="1.5" />
|
|
54
|
+
<path d="M420 120 L422 130 L432 132 L422 134 L420 144 L418 134 L408 132 L418 130 Z" fill="#00ffff" />
|
|
55
|
+
</g>
|
|
56
|
+
</svg>
|
|
@@ -7,9 +7,33 @@ import numpy as np
|
|
|
7
7
|
import sys
|
|
8
8
|
import platform # add
|
|
9
9
|
import time
|
|
10
|
+
import subprocess
|
|
10
11
|
|
|
11
12
|
IS_APPLE_ARM = (sys.platform == "darwin" and platform.machine() == "arm64")
|
|
12
13
|
|
|
14
|
+
def _has_nvidia_gpu() -> bool:
|
|
15
|
+
"""Check if system has an NVIDIA GPU (Linux/Windows)."""
|
|
16
|
+
try:
|
|
17
|
+
if platform.system() == "Linux":
|
|
18
|
+
r = subprocess.run(["nvidia-smi", "-L"], capture_output=True, timeout=2)
|
|
19
|
+
return "GPU" in (r.stdout.decode("utf-8", errors="ignore") or "")
|
|
20
|
+
elif platform.system() == "Windows":
|
|
21
|
+
try:
|
|
22
|
+
ps = subprocess.run(
|
|
23
|
+
["powershell", "-NoProfile", "-Command",
|
|
24
|
+
"(Get-CimInstance Win32_VideoController | Select-Object -ExpandProperty Name) -join ';'"],
|
|
25
|
+
capture_output=True, timeout=2
|
|
26
|
+
)
|
|
27
|
+
out = (ps.stdout.decode("utf-8", errors="ignore") or "").lower()
|
|
28
|
+
return "nvidia" in out
|
|
29
|
+
except Exception:
|
|
30
|
+
w = subprocess.run(["wmic", "path", "win32_VideoController", "get", "name"],
|
|
31
|
+
capture_output=True, timeout=2)
|
|
32
|
+
return "nvidia" in (w.stdout.decode("utf-8", errors="ignore") or "").lower()
|
|
33
|
+
except Exception:
|
|
34
|
+
pass
|
|
35
|
+
return False
|
|
36
|
+
|
|
13
37
|
from PyQt6.QtCore import Qt, QThread, pyqtSignal, QStandardPaths, QSettings
|
|
14
38
|
from PyQt6.QtWidgets import (
|
|
15
39
|
QDialog, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QFileDialog,
|
|
@@ -258,6 +282,7 @@ class _ONNXWorker(QThread):
|
|
|
258
282
|
failed = pyqtSignal(str)
|
|
259
283
|
finished_ok = pyqtSignal(np.ndarray)
|
|
260
284
|
canceled = pyqtSignal()
|
|
285
|
+
log_message = pyqtSignal(str) # for console logging
|
|
261
286
|
|
|
262
287
|
def __init__(self, model_path: str, image: np.ndarray, patch: int, overlap: int, providers: list[str]):
|
|
263
288
|
super().__init__()
|
|
@@ -287,16 +312,67 @@ class _ONNXWorker(QThread):
|
|
|
287
312
|
self.canceled.emit()
|
|
288
313
|
return
|
|
289
314
|
|
|
315
|
+
# Log available providers for debugging
|
|
316
|
+
avail_providers = ort.get_available_providers()
|
|
317
|
+
gpu_providers = [p for p in self.providers if p != "CPUExecutionProvider"]
|
|
318
|
+
has_nvidia = _has_nvidia_gpu()
|
|
319
|
+
|
|
320
|
+
self.log_message.emit(f"🔍 Available ONNX providers: {', '.join(avail_providers)}")
|
|
321
|
+
self.log_message.emit(f"🔍 Attempting providers: {', '.join(self.providers)}")
|
|
322
|
+
print(f"🔍 Available ONNX providers: {', '.join(avail_providers)}")
|
|
323
|
+
print(f"🔍 Attempting providers: {', '.join(self.providers)}")
|
|
324
|
+
|
|
325
|
+
# Check if NVIDIA GPU is present but CUDA provider is missing
|
|
326
|
+
if has_nvidia and "CUDAExecutionProvider" not in avail_providers:
|
|
327
|
+
msg = ("⚠️ GPU NVIDIA détecté mais CUDAExecutionProvider n'est pas disponible.\n"
|
|
328
|
+
" Vous devez installer 'onnxruntime-gpu' au lieu de 'onnxruntime'.\n"
|
|
329
|
+
" Commande: pip uninstall onnxruntime && pip install onnxruntime-gpu")
|
|
330
|
+
self.log_message.emit(msg)
|
|
331
|
+
print(msg)
|
|
332
|
+
|
|
290
333
|
try:
|
|
291
334
|
sess = ort.InferenceSession(self.model_path, providers=self.providers)
|
|
292
335
|
self.used_provider = (sess.get_providers()[0] if sess.get_providers() else None)
|
|
293
|
-
|
|
336
|
+
# Log successful GPU usage
|
|
337
|
+
if self.used_provider != "CPUExecutionProvider" and gpu_providers:
|
|
338
|
+
msg = f"✅ Aberration AI: Using GPU provider {self.used_provider}"
|
|
339
|
+
self.log_message.emit(msg)
|
|
340
|
+
print(msg)
|
|
341
|
+
elif has_nvidia and self.used_provider == "CPUExecutionProvider":
|
|
342
|
+
msg = ("⚠️ GPU NVIDIA détecté mais utilisation du CPU.\n"
|
|
343
|
+
" Installez 'onnxruntime-gpu' pour utiliser le GPU.")
|
|
344
|
+
self.log_message.emit(msg)
|
|
345
|
+
print(msg)
|
|
346
|
+
except Exception as e:
|
|
347
|
+
# Log the actual error for debugging
|
|
348
|
+
error_msg = str(e)
|
|
349
|
+
msg = f"⚠️ Aberration AI: GPU provider failed: {error_msg}"
|
|
350
|
+
self.log_message.emit(msg)
|
|
351
|
+
print(msg)
|
|
352
|
+
self.log_message.emit(f"Available providers: {', '.join(avail_providers)}")
|
|
353
|
+
print(f"Available providers: {', '.join(avail_providers)}")
|
|
354
|
+
self.log_message.emit(f"Attempted providers: {', '.join(self.providers)}")
|
|
355
|
+
print(f"Attempted providers: {', '.join(self.providers)}")
|
|
356
|
+
|
|
357
|
+
# Check if onnxruntime-gpu is installed (CUDA provider should be available if it is)
|
|
358
|
+
if "CUDAExecutionProvider" in self.providers and "CUDAExecutionProvider" not in avail_providers:
|
|
359
|
+
if has_nvidia:
|
|
360
|
+
msg = ("❌ CUDAExecutionProvider non disponible alors qu'un GPU NVIDIA est présent.\n"
|
|
361
|
+
" Installez 'onnxruntime-gpu': pip uninstall onnxruntime && pip install onnxruntime-gpu")
|
|
362
|
+
else:
|
|
363
|
+
msg = "⚠️ CUDAExecutionProvider not available. You may need to install onnxruntime-gpu instead of onnxruntime."
|
|
364
|
+
self.log_message.emit(msg)
|
|
365
|
+
print(msg)
|
|
366
|
+
|
|
294
367
|
# fallback CPU if GPU fails
|
|
295
368
|
try:
|
|
296
369
|
sess = ort.InferenceSession(self.model_path, providers=["CPUExecutionProvider"])
|
|
297
370
|
self.used_provider = "CPUExecutionProvider"
|
|
371
|
+
msg = f"⚠️ Aberration AI: Falling back to CPU (GPU initialization failed: {error_msg})"
|
|
372
|
+
self.log_message.emit(msg)
|
|
373
|
+
print(msg)
|
|
298
374
|
except Exception as e2:
|
|
299
|
-
self.failed.emit(f"Failed to init ONNX session:\
|
|
375
|
+
self.failed.emit(f"Failed to init ONNX session:\nGPU error: {error_msg}\nCPU error: {e2}")
|
|
300
376
|
return
|
|
301
377
|
|
|
302
378
|
def cb(frac):
|
|
@@ -796,6 +872,7 @@ class AberrationAIDialog(QDialog):
|
|
|
796
872
|
self._worker.failed.connect(self._on_failed)
|
|
797
873
|
self._worker.finished_ok.connect(self._on_ok)
|
|
798
874
|
self._worker.finished.connect(self._on_worker_finished)
|
|
875
|
+
self._worker.log_message.connect(self._log) # Connect log messages to console
|
|
799
876
|
self._worker.start()
|
|
800
877
|
|
|
801
878
|
|
|
@@ -685,9 +685,51 @@ def render_spikes(output: np.ndarray, stars: List[Star], config: SpikeConfig, ct
|
|
|
685
685
|
|
|
686
686
|
# Main spikes
|
|
687
687
|
if config.intensity > 0:
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
688
|
+
rainbow_str = config.rainbow_spike_intensity if (config.enable_rainbow and config.rainbow_spikes) else 0
|
|
689
|
+
for i in range(int(config.quantity)):
|
|
690
|
+
theta = main_angle_rad + (i * (math.pi * 2) / float(config.quantity))
|
|
691
|
+
cos_t = math.cos(theta)
|
|
692
|
+
sin_t = math.sin(theta)
|
|
693
|
+
|
|
694
|
+
start_x = star.x + cos_t * 0.5
|
|
695
|
+
start_y = star.y + sin_t * 0.5
|
|
696
|
+
end_x = star.x + cos_t * base_length
|
|
697
|
+
end_y = star.y + sin_t * base_length
|
|
698
|
+
|
|
699
|
+
# Standard Spike
|
|
700
|
+
# Base star color, fading to zero alpha
|
|
701
|
+
c_end = (star.color.r/255.0, star.color.g/255.0, star.color.b/255.0, 0.0)
|
|
702
|
+
|
|
703
|
+
# If rainbow enabled, standard spike is dimmed (matches preview logic)
|
|
704
|
+
opacity_mult = 0.4 if rainbow_str > 0 else 1.0
|
|
705
|
+
c_start = (color[0], color[1], color[2], color[3] * opacity_mult)
|
|
706
|
+
|
|
707
|
+
draw_line_gradient(output, start_x, start_y, end_x, end_y,
|
|
708
|
+
c_start, c_end, thickness, config.sharpness)
|
|
709
|
+
|
|
710
|
+
# Rainbow Overlay
|
|
711
|
+
if rainbow_str > 0:
|
|
712
|
+
stops = 10
|
|
713
|
+
for s in range(stops):
|
|
714
|
+
p1 = s / stops
|
|
715
|
+
p2 = (s + 1) / stops
|
|
716
|
+
if p1 > config.rainbow_spike_length:
|
|
717
|
+
break
|
|
718
|
+
|
|
719
|
+
hue = (p1 * 360.0 * config.rainbow_spike_frequency) % 360.0
|
|
720
|
+
a_rainbow = min(1.0, config.intensity * rainbow_str * 2.0) * (1.0 - p1)
|
|
721
|
+
r_seg, g_seg, b_seg = hsl_to_rgb(hue / 360.0, 0.8, 0.6)
|
|
722
|
+
c_seg = (r_seg, g_seg, b_seg, a_rainbow)
|
|
723
|
+
|
|
724
|
+
# Calculate segment positions
|
|
725
|
+
sx = start_x + (end_x - start_x) * p1
|
|
726
|
+
sy = start_y + (end_y - start_y) * p1
|
|
727
|
+
ex = start_x + (end_x - start_x) * p2
|
|
728
|
+
ey = start_y + (end_y - start_y) * p2
|
|
729
|
+
|
|
730
|
+
# Draw rainbow segment with constant color
|
|
731
|
+
draw_line_gradient(output, sx, sy, ex, ey,
|
|
732
|
+
c_seg, c_seg, thickness, 1.0)
|
|
691
733
|
|
|
692
734
|
# Secondary spikes
|
|
693
735
|
if config.secondary_intensity > 0:
|
|
@@ -4619,9 +4619,16 @@ class AstroSuiteProMainWindow(
|
|
|
4619
4619
|
# Create a callback to set the image back to the document
|
|
4620
4620
|
def set_image_callback(image_data, step_name):
|
|
4621
4621
|
"""Apply the result image back to the active document."""
|
|
4622
|
-
if active_doc and hasattr(active_doc, "
|
|
4622
|
+
if active_doc and hasattr(active_doc, "apply_edit"):
|
|
4623
4623
|
print(f"[AstroSpike] Setting image back to document, shape: {image_data.shape}")
|
|
4624
|
-
#
|
|
4624
|
+
# Use apply_edit for proper undo/redo integration
|
|
4625
|
+
meta = {
|
|
4626
|
+
"step_name": step_name,
|
|
4627
|
+
"astrospike": True
|
|
4628
|
+
}
|
|
4629
|
+
active_doc.apply_edit(image_data.astype(np.float32, copy=False), metadata=meta, step_name=step_name)
|
|
4630
|
+
elif active_doc and hasattr(active_doc, "set_image"):
|
|
4631
|
+
print(f"[AstroSpike] Setting image via set_image, shape: {image_data.shape}")
|
|
4625
4632
|
active_doc.set_image(image_data, metadata={}, step_name=step_name)
|
|
4626
4633
|
elif active_doc and hasattr(active_doc, "image"):
|
|
4627
4634
|
print(f"[AstroSpike] Setting image directly, shape: {image_data.shape}")
|
|
@@ -9114,6 +9121,13 @@ class AstroSuiteProMainWindow(
|
|
|
9114
9121
|
|
|
9115
9122
|
super().keyPressEvent(event)
|
|
9116
9123
|
|
|
9124
|
+
def _open_texture_clarity(self):
|
|
9125
|
+
try:
|
|
9126
|
+
from setiastro.saspro.texture_clarity import open_texture_clarity_dialog
|
|
9127
|
+
open_texture_clarity_dialog(self)
|
|
9128
|
+
except Exception as e:
|
|
9129
|
+
print(f"Error opening Texture & Clarity: {e}")
|
|
9130
|
+
|
|
9117
9131
|
def _update_usage_stats(self):
|
|
9118
9132
|
try:
|
|
9119
9133
|
now = time.time()
|
|
@@ -155,6 +155,7 @@ class MenuMixin:
|
|
|
155
155
|
m_fn.addAction(self.act_signature)
|
|
156
156
|
m_fn.addAction(self.act_star_stretch)
|
|
157
157
|
m_fn.addAction(self.act_stat_stretch)
|
|
158
|
+
m_fn.addAction(self.act_texture_clarity)
|
|
158
159
|
m_fn.addAction(self.act_wavescale_de)
|
|
159
160
|
m_fn.addAction(self.act_wavescale_hdr)
|
|
160
161
|
m_fn.addAction(self.act_white_balance)
|
|
@@ -177,6 +178,7 @@ class MenuMixin:
|
|
|
177
178
|
m_tools.addAction(self.act_narrowband_normalization)
|
|
178
179
|
m_tools.addAction(self.act_nbtorgb)
|
|
179
180
|
m_tools.addAction(self.act_ppp)
|
|
181
|
+
|
|
180
182
|
m_tools.addAction(self.act_selective_color)
|
|
181
183
|
m_tools.addSeparator()
|
|
182
184
|
m_tools.addAction(self.act_view_bundles)
|
|
@@ -13,13 +13,14 @@ from PyQt6.QtWidgets import QMenu, QToolButton
|
|
|
13
13
|
from PyQt6.QtCore import QElapsedTimer
|
|
14
14
|
|
|
15
15
|
import sys
|
|
16
|
+
import os
|
|
16
17
|
|
|
17
18
|
if TYPE_CHECKING:
|
|
18
19
|
pass
|
|
19
20
|
|
|
20
21
|
# Import icon paths - these are needed at runtime
|
|
21
22
|
from setiastro.saspro.resources import (
|
|
22
|
-
icon_path, green_path, neutral_path, whitebalance_path,
|
|
23
|
+
icon_path, green_path, neutral_path, whitebalance_path, texture_clarity_path,
|
|
23
24
|
morpho_path, clahe_path, starnet_path, staradd_path, LExtract_path,
|
|
24
25
|
LInsert_path, rgbcombo_path, rgbextract_path, graxperticon_path,
|
|
25
26
|
cropicon_path, openfile_path, abeicon_path, undoicon_path, redoicon_path,
|
|
@@ -222,6 +223,7 @@ class ToolbarMixin:
|
|
|
222
223
|
tb_fn.addAction(self.act_wavescale_hdr)
|
|
223
224
|
tb_fn.addAction(self.act_wavescale_de)
|
|
224
225
|
tb_fn.addAction(self.act_clahe)
|
|
226
|
+
tb_fn.addAction(self.act_texture_clarity)
|
|
225
227
|
tb_fn.addAction(self.act_morphology)
|
|
226
228
|
tb_fn.addAction(self.act_pixelmath)
|
|
227
229
|
tb_fn.addAction(self.act_signature)
|
|
@@ -257,6 +259,7 @@ class ToolbarMixin:
|
|
|
257
259
|
tb_tl.addAction(self.act_ppp) # Perfect Palette Picker
|
|
258
260
|
tb_tl.addAction(self.act_nbtorgb)
|
|
259
261
|
tb_tl.addAction(self.act_narrowband_normalization)
|
|
262
|
+
|
|
260
263
|
tb_tl.addAction(self.act_selective_color)
|
|
261
264
|
tb_tl.addAction(self.act_freqsep)
|
|
262
265
|
tb_tl.addAction(self.act_multiscale_decomp)
|
|
@@ -907,6 +910,12 @@ class ToolbarMixin:
|
|
|
907
910
|
self.act_remove_green.setIconVisibleInMenu(True)
|
|
908
911
|
self.act_remove_green.triggered.connect(self._open_remove_green)
|
|
909
912
|
|
|
913
|
+
# Texture and Clarity
|
|
914
|
+
self.act_texture_clarity = QAction(QIcon(texture_clarity_path), self.tr("Texture and Clarity..."), self)
|
|
915
|
+
self.act_texture_clarity.setToolTip(self.tr("Enhance texture and clarity using Unsharp Masking"))
|
|
916
|
+
self.act_texture_clarity.setIconVisibleInMenu(True)
|
|
917
|
+
self.act_texture_clarity.triggered.connect(self._open_texture_clarity)
|
|
918
|
+
|
|
910
919
|
self.act_background_neutral = QAction(QIcon(neutral_path), self.tr("Background Neutralization..."), self)
|
|
911
920
|
self.act_background_neutral.setStatusTip(self.tr("Neutralize background color balance using a sampled region"))
|
|
912
921
|
self.act_background_neutral.setIconVisibleInMenu(True)
|
|
@@ -1131,10 +1140,7 @@ class ToolbarMixin:
|
|
|
1131
1140
|
self.act_narrowband_normalization.setStatusTip(
|
|
1132
1141
|
self.tr("Normalize HOO/SHO/HSO/HOS (PixelMath port by Bill Blanshan and Mike Cranfield)")
|
|
1133
1142
|
)
|
|
1134
|
-
|
|
1135
|
-
self.act_narrowband_normalization.setShortcut(QKeySequence("Ctrl+Alt+Shift+N"))
|
|
1136
|
-
self.act_narrowband_normalization.setShortcutContext(Qt.ShortcutContext.ApplicationShortcut)
|
|
1137
|
-
self.addAction(self.act_narrowband_normalization)
|
|
1143
|
+
|
|
1138
1144
|
self.act_narrowband_normalization.triggered.connect(self._open_narrowband_normalization_tool)
|
|
1139
1145
|
|
|
1140
1146
|
self.act_nbtorgb = QAction(QIcon(nbtorgb_path), self.tr("NB->RGB Stars..."), self)
|
|
@@ -1394,6 +1400,7 @@ class ToolbarMixin:
|
|
|
1394
1400
|
reg("add_stars", self.act_add_stars)
|
|
1395
1401
|
reg("pedestal", self.act_pedestal)
|
|
1396
1402
|
reg("remove_green", self.act_remove_green)
|
|
1403
|
+
reg("texture_clarity", self.act_texture_clarity)
|
|
1397
1404
|
reg("background_neutral", self.act_background_neutral)
|
|
1398
1405
|
reg("white_balance", self.act_white_balance)
|
|
1399
1406
|
reg("sfcc", self.act_sfcc)
|