├── .editorconfig ├── .github └── workflows │ ├── dependencies.txt │ ├── doc.yml │ ├── main.yml │ ├── run-litmus.sh │ └── test-dependencies.txt ├── .gitignore ├── .jenkinsFile ├── CMakeLists.txt ├── CPPLINT.cfg ├── LICENSE ├── Makefile ├── ModelFitting ├── CMakeLists.txt ├── ModelFitting │ ├── Engine │ │ ├── AsinhChiSquareComparator.h │ │ ├── ChiSquareComparator.h │ │ ├── DataVsModelInputTraits.h │ │ ├── DataVsModelResiduals.h │ │ ├── EngineParameterManager.h │ │ ├── EngineValueResidual.h │ │ ├── GSLEngine.h │ │ ├── LeastSquareEngine.h │ │ ├── LeastSquareEngineManager.h │ │ ├── LeastSquareSummary.h │ │ ├── LevmarEngine.h │ │ ├── LogChiSquareComparator.h │ │ ├── OpenCvDataVsModelInputTraits.h │ │ ├── ResidualBlockProvider.h │ │ ├── ResidualEstimator.h │ │ ├── WorldValueResidual.h │ │ └── _impl │ │ │ ├── DataVsModelResiduals.icpp │ │ │ ├── EngineParameterManager.icpp │ │ │ └── ResidualEstimator.icpp │ ├── Image │ │ ├── ImageTraits.h │ │ ├── NullPsf.h │ │ └── PsfTraits.h │ ├── Models │ │ ├── AutoSharp.h │ │ ├── CircularlySymmetricModelComponent.h │ │ ├── CompactExponentialModel.h │ │ ├── CompactModelBase.h │ │ ├── CompactSersicModel.h │ │ ├── ConstantModel.h │ │ ├── ExtendedModel.h │ │ ├── FlattenedMoffatComponent.h │ │ ├── FrameModel.h │ │ ├── ModelComponent.h │ │ ├── OldSharp.h │ │ ├── OnlySmooth.h │ │ ├── PointModel.h │ │ ├── PositionedModel.h │ │ ├── RotatedModelComponent.h │ │ ├── ScaledModelComponent.h │ │ ├── SersicProfile.h │ │ ├── SharpRegionManager.h │ │ ├── TransformModelComponent.h │ │ ├── TransformedModel.h │ │ └── _impl │ │ │ ├── CircularlySymmetricModelComponent.icpp │ │ │ ├── CompactExponentialModel.icpp │ │ │ ├── CompactModelBase.icpp │ │ │ ├── CompactSersicModel.icpp │ │ │ ├── ExtendedModel.icpp │ │ │ └── FrameModel.icpp │ └── Parameters │ │ ├── BasicParameter.h │ │ ├── CoordinateConverter.h │ │ ├── DependentParameter.h │ │ ├── EngineParameter.h │ │ ├── ExpSigmoidConverter.h │ │ ├── ManualParameter.h │ │ ├── NeutralConverter.h │ │ ├── NormalizedConverter.h │ │ └── SigmoidConverter.h ├── auxdir │ ├── gal.fits │ ├── image.fits │ ├── multiframe.fits │ ├── psf.fits │ └── psf_gal.fits ├── src │ └── lib │ │ ├── Engine │ │ ├── EngineParameterManager.cpp │ │ ├── EngineValueResidual.cpp │ │ ├── GSLEngine.cpp │ │ ├── LeastSquareEngineManager.cpp │ │ ├── LevmarEngine.cpp │ │ ├── ResidualEstimator.cpp │ │ └── WorldValueResidual.cpp │ │ ├── Models │ │ ├── AutoSharp.cpp │ │ ├── ConstantModel.cpp │ │ ├── FlattenedMoffatComponent.cpp │ │ ├── OldSharp.cpp │ │ ├── OnlySmooth.cpp │ │ ├── PointModel.cpp │ │ ├── PositionedModel.cpp │ │ ├── RotatedModelComponent.cpp │ │ ├── ScaledModelComponent.cpp │ │ ├── SersicProfile.cpp │ │ └── TransformModelComponent.cpp │ │ └── Parameters │ │ ├── BasicParameter.cpp │ │ ├── EngineParameter.cpp │ │ ├── ExpSigmoidConverter.cpp │ │ ├── NeutralConverter.cpp │ │ ├── NormalizedConverter.cpp │ │ └── SigmoidConverter.cpp └── tests │ └── src │ ├── Engine │ └── Engine_test.cpp │ ├── Models │ ├── AutoSharp_test.cpp │ ├── CircularlySymmetricModelComponent_test.cpp │ ├── OldSharp_test.cpp │ ├── RotatedModelComponent_test.cpp │ ├── ScaledModelComponent_test.cpp │ ├── SersicProfile_test.cpp │ ├── TestHelper.h │ └── TransformModelComponent_test.cpp │ └── Parameters │ ├── BasicParameter_test.cpp │ ├── DependentParameter_test.cpp │ ├── EngineParameter_test.cpp │ ├── ExampleClass_test.cpp │ ├── ExpSigmoidConverter_test.cpp │ ├── ManualParameter_test.cpp │ ├── NeutralConverter_test.cpp │ └── SigmoidConverter_test.cpp ├── README.md ├── SEBenchmarks ├── CMakeLists.txt └── src │ └── program │ ├── BenchBackgroundConvolution.cpp │ ├── BenchBackgroundModel.cpp │ ├── BenchConvolution.cpp │ └── BenchRendering.cpp ├── SEFramework ├── CMakeLists.txt ├── SEFramework │ ├── Aperture │ │ ├── Aperture.h │ │ ├── CircularAperture.h │ │ ├── EllipticalAperture.h │ │ ├── Flagging.h │ │ ├── FluxMeasurement.h │ │ ├── NeighbourInfo.h │ │ └── TransformedAperture.h │ ├── Background │ │ ├── Background.h │ │ └── BackgroundAnalyzer.h │ ├── Configuration │ │ └── Configurable.h │ ├── Convolution │ │ ├── Convolution.h │ │ ├── DFT.h │ │ ├── DirectConvolution.h │ │ └── OpenCVConvolution.h │ ├── CoordinateSystem │ │ ├── CoordinateSystem.h │ │ └── WCS.h │ ├── FFT │ │ ├── FFT.h │ │ └── FFTHelper.h │ ├── FITS │ │ ├── FitsFile.h │ │ ├── FitsImageSource.h │ │ ├── FitsReader.h │ │ ├── FitsWriter.h │ │ └── TemporaryFitsImageSource.h │ ├── Frame │ │ └── Frame.h │ ├── Image │ │ ├── BufferedImage.h │ │ ├── ConstantImage.h │ │ ├── FunctionalImage.h │ │ ├── Image.h │ │ ├── ImageAccessor.h │ │ ├── ImageChunk.h │ │ ├── ImageProcessing.h │ │ ├── ImageProcessingList.h │ │ ├── ImageSource.h │ │ ├── ImageSourceWithMetadata.h │ │ ├── ImageTile.h │ │ ├── InterpolatedImageSource.h │ │ ├── MaskedImage.h │ │ ├── MirrorImage.h │ │ ├── PaddedImage.h │ │ ├── ProcessedImage.h │ │ ├── ProcessingImageSource.h │ │ ├── RecenterImage.h │ │ ├── ScaledImageSource.h │ │ ├── SubImage.h │ │ ├── ThresholdedImage.h │ │ ├── TileManager.h │ │ ├── VectorImage.h │ │ ├── WriteableBufferedImage.h │ │ └── WriteableImage.h │ ├── Output │ │ ├── Output.h │ │ └── OutputRegistry.h │ ├── Pipeline │ │ ├── Deblending.h │ │ ├── Measurement.h │ │ ├── Partition.h │ │ ├── PipelineStage.h │ │ ├── Segmentation.h │ │ └── SourceGrouping.h │ ├── Plugin │ │ ├── Plugin.h │ │ ├── PluginAPI.h │ │ ├── PluginManager.h │ │ └── StaticPlugin.h │ ├── Property │ │ ├── DetectionFrame.h │ │ ├── Property.h │ │ ├── PropertyHolder.h │ │ ├── PropertyId.h │ │ └── PropertyNotFoundException.h │ ├── Psf │ │ ├── Psf.h │ │ ├── VariablePsf.h │ │ └── VariablePsfStack.h │ ├── Source │ │ ├── SimpleSource.h │ │ ├── SimpleSourceFactory.h │ │ ├── SimpleSourceGroup.h │ │ ├── SimpleSourceGroupFactory.h │ │ ├── SourceFactory.h │ │ ├── SourceFlags.h │ │ ├── SourceGroupFactory.h │ │ ├── SourceGroupInterface.h │ │ ├── SourceGroupWithOnDemandProperties.h │ │ ├── SourceGroupWithOnDemandPropertiesFactory.h │ │ ├── SourceInterface.h │ │ ├── SourceWithOnDemandProperties.h │ │ └── SourceWithOnDemandPropertiesFactory.h │ └── Task │ │ ├── GroupTask.h │ │ ├── SourceTask.h │ │ ├── Task.h │ │ ├── TaskFactory.h │ │ ├── TaskFactoryRegistry.h │ │ └── TaskProvider.h ├── auxdir │ ├── multiple_hdu.fits │ ├── wcs_header.fits │ └── with_primary.fits ├── src │ └── lib │ │ ├── Aperture │ │ ├── CircularAperture.cpp │ │ ├── EllipticalAperture.cpp │ │ ├── Flagging.cpp │ │ ├── FluxMeasurement.cpp │ │ ├── NeighbourInfo.cpp │ │ └── TransformedAperture.cpp │ │ ├── CoordinateSystem │ │ └── WCS.cpp │ │ ├── FFT │ │ └── FFT.cpp │ │ ├── FITS │ │ ├── FitsFile.cpp │ │ └── FitsImageSource.cpp │ │ ├── Frame │ │ └── Frame.cpp │ │ ├── Image │ │ ├── BufferedImage.cpp │ │ ├── ImageTile.cpp │ │ └── TileManager.cpp │ │ ├── Output │ │ └── OutputRegistry.cpp │ │ ├── Pipeline │ │ ├── Deblending.cpp │ │ ├── Partition.cpp │ │ ├── PipelineStage.cpp │ │ ├── Segmentation.cpp │ │ └── SourceGrouping.cpp │ │ ├── Plugin │ │ └── PluginManager.cpp │ │ ├── Property │ │ ├── PropertyHolder.cpp │ │ └── PropertyId.cpp │ │ ├── Psf │ │ ├── VariablePsf.cpp │ │ └── VariablePsfStack.cpp │ │ ├── Source │ │ ├── EntangledSource.cpp │ │ ├── SimpleSourceGroup.cpp │ │ ├── SourceGroupWithOnDemandProperties.cpp │ │ └── SourceWithOnDemandProperties.cpp │ │ └── Task │ │ ├── TaskFactoryRegistry.cpp │ │ └── TaskProvider.cpp └── tests │ └── src │ ├── Aperture │ ├── Fixture.icpp │ ├── Flagging_test.cpp │ ├── FluxMeasurement_test.cpp │ ├── NeighbourInfo_test.cpp │ └── TransformedAperture_test.cpp │ ├── Convolution │ ├── DFT_test.cpp │ └── DirectConvolution_test.cpp │ ├── CoordinateSystem │ └── WCS_test.cpp │ ├── FFT │ └── FFT_test.cpp │ ├── FITS │ ├── 1px.fits.h │ ├── FitsImageSource_test.cpp │ ├── FitsReader_test.cpp │ └── TemporaryFitsSource_test.cpp │ ├── Image │ ├── BufferedImage_test.cpp │ ├── FunctionalImage_test.cpp │ ├── ImageAccessor_test.cpp │ ├── ImageChunk_test.cpp │ ├── InterpolatedImageSource_test.cpp │ ├── MaskedImage_test.cpp │ ├── MirrorImage_test.cpp │ ├── PaddedImage_test.cpp │ ├── RecenterImage_test.cpp │ ├── ScaledImageSource_test.cpp │ ├── SubImage_test.cpp │ └── VectorImage_test.cpp │ ├── Pipeline │ ├── Deblending_test.cpp │ ├── Partition_test.cpp │ └── SourceGrouping_test.cpp │ ├── Property │ ├── PropertyHolder_test.cpp │ └── PropertyId_test.cpp │ ├── Psf │ ├── CubicFullPsf.icpp │ ├── LinearFullPsf.icpp │ └── VariablePsf_test.cpp │ ├── Source │ ├── SimpleSource_test.cpp │ ├── SourceGroupWithOnDemandProperties_test.cpp │ ├── SourceInterface_test.cpp │ └── SourceWithOnDemandProperties_test.cpp │ └── Task │ └── TaskProvider_test.cpp ├── SEImplementation ├── CMakeLists.txt ├── SEImplementation │ ├── Background │ │ ├── BackgroundAnalyzerFactory.h │ │ ├── SE │ │ │ ├── ImageMode.h │ │ │ ├── KappaSigmaBinning.h │ │ │ ├── MedianFilter.h │ │ │ ├── ReplaceUndefImage.h │ │ │ └── SEBackgroundLevelAnalyzer.h │ │ ├── SimpleBackgroundAnalyzer.h │ │ └── Utils.h │ ├── CheckImages │ │ ├── CheckImages.h │ │ ├── DetectionIdCheckImage.h │ │ ├── GroupIdCheckImage.h │ │ ├── MoffatCheckImage.h │ │ └── SourceIdCheckImage.h │ ├── Common │ │ ├── OnnxCommon.h │ │ └── OnnxModel.h │ ├── Configuration │ │ ├── AttractorsPartitionConfig.h │ │ ├── BackgroundConfig.h │ │ ├── CheckImagesConfig.h │ │ ├── CleaningConfig.h │ │ ├── DeblendStepConfig.h │ │ ├── DetectionFrameConfig.h │ │ ├── DetectionImageConfig.h │ │ ├── GroupingConfig.h │ │ ├── LegacyModelFittingConfig.h │ │ ├── MagnitudeConfig.h │ │ ├── MeasurementFrameConfig.h │ │ ├── MeasurementImageConfig.h │ │ ├── MemoryConfig.h │ │ ├── MinAreaPartitionConfig.h │ │ ├── ModelFittingConfig.h │ │ ├── MultiThreadingConfig.h │ │ ├── MultiThresholdPartitionConfig.h │ │ ├── OutputConfig.h │ │ ├── PartitionStepConfig.h │ │ ├── PythonConfig.h │ │ ├── RngConfig.h │ │ ├── SE2BackgroundConfig.h │ │ ├── SamplingConfig.h │ │ ├── SegmentationConfig.h │ │ └── WeightImageConfig.h │ ├── Deblending │ │ ├── Cleaning.h │ │ └── DeblendingFactory.h │ ├── Grouping │ │ ├── AssocCriteria.h │ │ ├── AssocGrouping.h │ │ ├── GroupingFactory.h │ │ ├── LineSelectionCriteria.h │ │ ├── MoffatCriteria.h │ │ ├── MoffatGrouping.h │ │ ├── NoGroupingCriteria.h │ │ ├── OverlappingBoundariesCriteria.h │ │ ├── SplitSourcesCriteria.h │ │ └── SplitSourcesGrouping.h │ ├── Image │ │ ├── DownSampledImagePsf.h │ │ ├── ImageInterfaceTraits.h │ │ ├── ImagePsf.h │ │ ├── LockedWriteableImage.h │ │ ├── VectorImageDataVsModelInputTraits.h │ │ └── WriteableImageInterfaceTraits.h │ ├── Measurement │ │ ├── DummyMeasurement.h │ │ ├── MeasurementFactory.h │ │ └── MultithreadedMeasurement.h │ ├── Output │ │ ├── AsciiOutput.h │ │ ├── FitsOutput.h │ │ ├── FlushableOutput.h │ │ ├── LdacOutput.h │ │ └── OutputFactory.h │ ├── Partition │ │ ├── AttractorsPartitionStep.h │ │ ├── MinAreaPartitionStep.h │ │ ├── MultiThresholdPartitionStep.h │ │ └── PartitionFactory.h │ ├── Plugin │ │ ├── AperturePhotometry │ │ │ ├── ApertureFlag.h │ │ │ ├── ApertureFlagTask.h │ │ │ ├── AperturePhotometry.h │ │ │ ├── AperturePhotometryArray.h │ │ │ ├── AperturePhotometryArrayTask.h │ │ │ ├── AperturePhotometryConfig.h │ │ │ ├── AperturePhotometryPlugin.h │ │ │ ├── AperturePhotometryTask.h │ │ │ └── AperturePhotometryTaskFactory.h │ │ ├── AssocMode │ │ │ ├── AssocMode.h │ │ │ ├── AssocModeConfig.h │ │ │ ├── AssocModeDummyTask.h │ │ │ ├── AssocModePartitionStep.h │ │ │ ├── AssocModePlugin.h │ │ │ ├── AssocModeTask.h │ │ │ └── AssocModeTaskFactory.h │ │ ├── AutoPhotometry │ │ │ ├── AutoPhotometry.h │ │ │ ├── AutoPhotometryArray.h │ │ │ ├── AutoPhotometryArrayTask.h │ │ │ ├── AutoPhotometryConfig.h │ │ │ ├── AutoPhotometryFlag.h │ │ │ ├── AutoPhotometryFlagTask.h │ │ │ ├── AutoPhotometryPlugin.h │ │ │ ├── AutoPhotometryTask.h │ │ │ └── AutoPhotometryTaskFactory.h │ │ ├── BlendedFlag │ │ │ ├── BlendedFlag.h │ │ │ ├── BlendedFlagPlugin.h │ │ │ ├── BlendedFlagTask.h │ │ │ └── BlendedFlagTaskFactory.h │ │ ├── BoundaryFlag │ │ │ ├── BoundaryFlag.h │ │ │ ├── BoundaryFlagPlugin.h │ │ │ ├── BoundaryFlagSourceTask.h │ │ │ └── BoundaryFlagTaskFactory.h │ │ ├── CoreThresholdPartition │ │ │ ├── CoreThresholdPartitionConfig.h │ │ │ ├── CoreThresholdPartitionPlugin.h │ │ │ ├── CoreThresholdPartitionStep.h │ │ │ ├── CoreThresholdPartitionTask.h │ │ │ ├── CoreThresholdPartitionTaskFactory.h │ │ │ └── NCorePixel.h │ │ ├── DetectionFrameCoordinates │ │ │ ├── DetectionFrameCoordinates.h │ │ │ ├── DetectionFrameCoordinatesPlugin.h │ │ │ ├── DetectionFrameCoordinatesTask.h │ │ │ └── DetectionFrameCoordinatesTaskFactory.h │ │ ├── DetectionFrameGroupStamp │ │ │ ├── DetectionFrameGroupStamp.h │ │ │ ├── DetectionFrameGroupStampPlugin.h │ │ │ ├── DetectionFrameGroupStampTask.h │ │ │ └── DetectionFrameGroupStampTaskFactory.h │ │ ├── DetectionFrameImages │ │ │ ├── DetectionFrameImages.h │ │ │ ├── DetectionFrameImagesPlugin.h │ │ │ ├── DetectionFrameImagesTask.h │ │ │ └── DetectionFrameImagesTaskFactory.h │ │ ├── DetectionFrameInfo │ │ │ ├── DetectionFrameInfo.h │ │ │ ├── DetectionFrameInfoPlugin.h │ │ │ ├── DetectionFrameInfoTask.h │ │ │ └── DetectionFrameInfoTaskFactory.h │ │ ├── DetectionFramePixelValues │ │ │ ├── DetectionFramePixelValues.h │ │ │ ├── DetectionFramePixelValuesPlugin.h │ │ │ ├── DetectionFramePixelValuesTask.h │ │ │ └── DetectionFramePixelValuesTaskFactory.h │ │ ├── DetectionFrameSourceStamp │ │ │ ├── DetectionFrameSourceStamp.h │ │ │ ├── DetectionFrameSourceStampPlugin.h │ │ │ ├── DetectionFrameSourceStampTask.h │ │ │ └── DetectionFrameSourceStampTaskFactory.h │ │ ├── ErrorEllipse │ │ │ ├── ErrorEllipse.h │ │ │ ├── ErrorEllipsePlugin.h │ │ │ ├── ErrorEllipseTask.h │ │ │ └── ErrorEllipseTaskFactory.h │ │ ├── ExternalFlag │ │ │ ├── ExternalFlag.h │ │ │ ├── ExternalFlagConfig.h │ │ │ ├── ExternalFlagPlugin.h │ │ │ ├── ExternalFlagTask.h │ │ │ └── ExternalFlagTaskFactory.h │ │ ├── FlexibleModelFitting │ │ │ ├── FlexibleModelFitting.h │ │ │ ├── FlexibleModelFittingConverterFactory.h │ │ │ ├── FlexibleModelFittingFrame.h │ │ │ ├── FlexibleModelFittingIterativeTask.h │ │ │ ├── FlexibleModelFittingModel.h │ │ │ ├── FlexibleModelFittingParameter.h │ │ │ ├── FlexibleModelFittingParameterManager.h │ │ │ ├── FlexibleModelFittingPlugin.h │ │ │ ├── FlexibleModelFittingPrior.h │ │ │ ├── FlexibleModelFittingTask.h │ │ │ ├── FlexibleModelFittingTaskFactory.h │ │ │ └── OnnxCompactModel.h │ │ ├── FluxRadius │ │ │ ├── FluxRadius.h │ │ │ ├── FluxRadiusConfig.h │ │ │ ├── FluxRadiusPlugin.h │ │ │ ├── FluxRadiusTask.h │ │ │ └── FluxRadiusTaskFactory.h │ │ ├── GroupInfo │ │ │ ├── GroupInfo.h │ │ │ ├── GroupInfoPlugin.h │ │ │ ├── GroupInfoTask.h │ │ │ └── GroupInfoTaskFactory.h │ │ ├── GrowthCurve │ │ │ ├── GrowthCurve.h │ │ │ ├── GrowthCurveConfig.h │ │ │ ├── GrowthCurvePlugin.h │ │ │ ├── GrowthCurveResampled.h │ │ │ ├── GrowthCurveResampledTask.h │ │ │ ├── GrowthCurveTask.h │ │ │ └── GrowthCurveTaskFactory.h │ │ ├── HduNumber │ │ │ ├── HduNumber.h │ │ │ ├── HduNumberPlugin.h │ │ │ ├── HduNumberTask.h │ │ │ └── HduNumberTaskFactory.h │ │ ├── IsophotalFlux │ │ │ ├── IsophotalFlux.h │ │ │ ├── IsophotalFluxPlugin.h │ │ │ ├── IsophotalFluxTask.h │ │ │ └── IsophotalFluxTaskFactory.h │ │ ├── Jacobian │ │ │ ├── Jacobian.h │ │ │ ├── JacobianPlugin.h │ │ │ ├── JacobianTask.h │ │ │ └── JacobianTaskFactory.h │ │ ├── KronRadius │ │ │ ├── KronRadius.h │ │ │ ├── KronRadiusPlugin.h │ │ │ ├── KronRadiusTask.h │ │ │ └── KronRadiusTaskFactory.h │ │ ├── MeasurementFrame │ │ │ ├── MeasurementFrame.h │ │ │ ├── MeasurementFramePlugin.h │ │ │ ├── MeasurementFrameTask.h │ │ │ └── MeasurementFrameTaskFactory.h │ │ ├── MeasurementFrameCoordinates │ │ │ ├── MeasurementFrameCoordinates.h │ │ │ ├── MeasurementFrameCoordinatesPlugin.h │ │ │ ├── MeasurementFrameCoordinatesTask.h │ │ │ └── MeasurementFrameCoordinatesTaskFactory.h │ │ ├── MeasurementFrameGroupRectangle │ │ │ ├── MeasurementFrameGroupRectangle.h │ │ │ ├── MeasurementFrameGroupRectanglePlugin.h │ │ │ ├── MeasurementFrameGroupRectangleTask.h │ │ │ └── MeasurementFrameGroupRectangleTaskFactory.h │ │ ├── MeasurementFrameImages │ │ │ ├── MeasurementFrameImages.h │ │ │ ├── MeasurementFrameImagesPlugin.h │ │ │ ├── MeasurementFrameImagesTask.h │ │ │ └── MeasurementFrameImagesTaskFactory.h │ │ ├── MeasurementFrameInfo │ │ │ ├── MeasurementFrameInfo.h │ │ │ ├── MeasurementFrameInfoPlugin.h │ │ │ ├── MeasurementFrameInfoTask.h │ │ │ └── MeasurementFrameInfoTaskFactory.h │ │ ├── MeasurementFramePixelCentroid │ │ │ ├── MeasurementFramePixelCentroid.h │ │ │ ├── MeasurementFramePixelCentroidPlugin.h │ │ │ ├── MeasurementFramePixelCentroidTask.h │ │ │ └── MeasurementFramePixelCentroidTaskFactory.h │ │ ├── MeasurementFrameRectangle │ │ │ ├── MeasurementFrameRectangle.h │ │ │ ├── MeasurementFrameRectanglePlugin.h │ │ │ ├── MeasurementFrameRectangleTask.h │ │ │ ├── MeasurementFrameRectangleTaskFactory.h │ │ │ └── MeasurementFrameRectangleTaskNoDetect.h │ │ ├── MoffatModelFitting │ │ │ ├── MoffatModelEvaluator.h │ │ │ ├── MoffatModelEvaluatorTask.h │ │ │ ├── MoffatModelFitting.h │ │ │ ├── MoffatModelFittingPlugin.h │ │ │ ├── MoffatModelFittingTask.h │ │ │ └── MoffatModelFittingTaskFactory.h │ │ ├── NDetectedPixels │ │ │ ├── NDetectedPixels.h │ │ │ ├── NDetectedPixelsPlugin.h │ │ │ ├── NDetectedPixelsSourceTask.h │ │ │ └── NDetectedPixelsTaskFactory.h │ │ ├── Onnx │ │ │ ├── OnnxConfig.h │ │ │ ├── OnnxPlugin.h │ │ │ ├── OnnxProperty.h │ │ │ ├── OnnxSourceTask.h │ │ │ └── OnnxTaskFactory.h │ │ ├── PeakValue │ │ │ ├── PeakValue.h │ │ │ ├── PeakValuePlugin.h │ │ │ ├── PeakValueTask.h │ │ │ └── PeakValueTaskFactory.h │ │ ├── PixelBoundaries │ │ │ ├── PixelBoundaries.h │ │ │ ├── PixelBoundariesPlugin.h │ │ │ ├── PixelBoundariesTask.h │ │ │ └── PixelBoundariesTaskFactory.h │ │ ├── PixelCentroid │ │ │ ├── PixelCentroid.h │ │ │ ├── PixelCentroidPlugin.h │ │ │ ├── PixelCentroidTask.h │ │ │ └── PixelCentroidTaskFactory.h │ │ ├── Psf │ │ │ ├── PsfPlugin.h │ │ │ ├── PsfPluginConfig.h │ │ │ ├── PsfProperty.h │ │ │ ├── PsfTask.h │ │ │ └── PsfTaskFactory.h │ │ ├── ReferenceCoordinates │ │ │ ├── ReferenceCoordinates.h │ │ │ ├── ReferenceCoordinatesPlugin.h │ │ │ ├── ReferenceCoordinatesTask.h │ │ │ └── ReferenceCoordinatesTaskFactory.h │ │ ├── SNRRatio │ │ │ ├── SNRRatio.h │ │ │ ├── SNRRatioPlugin.h │ │ │ ├── SNRRatioSourceTask.h │ │ │ └── SNRRatioTaskFactory.h │ │ ├── SaturateFlag │ │ │ ├── SaturateFlag.h │ │ │ ├── SaturateFlagPlugin.h │ │ │ ├── SaturateFlagSourceTask.h │ │ │ └── SaturateFlagTaskFactory.h │ │ ├── ShapeParameters │ │ │ ├── ShapeParameters.h │ │ │ ├── ShapeParametersPlugin.h │ │ │ ├── ShapeParametersTask.h │ │ │ └── ShapeParametersTaskFactory.h │ │ ├── SourceFlags │ │ │ ├── SourceFlags.h │ │ │ ├── SourceFlagsPlugin.h │ │ │ ├── SourceFlagsSourceTask.h │ │ │ └── SourceFlagsTaskFactory.h │ │ ├── SourceIDs │ │ │ ├── SourceID.h │ │ │ ├── SourceIDTask.h │ │ │ ├── SourceIDTaskFactory.h │ │ │ └── SourceIDsPlugin.h │ │ ├── SourcePsf │ │ │ ├── SourcePsfPlugin.h │ │ │ ├── SourcePsfProperty.h │ │ │ ├── SourcePsfTask.h │ │ │ └── SourcePsfTaskFactory.h │ │ ├── Vignet │ │ │ ├── Vignet.h │ │ │ ├── VignetArray.h │ │ │ ├── VignetArraySourceTask.h │ │ │ ├── VignetConfig.h │ │ │ ├── VignetPlugin.h │ │ │ ├── VignetSourceTask.h │ │ │ └── VignetTaskFactory.h │ │ └── WorldCentroid │ │ │ ├── WorldCentroid.h │ │ │ ├── WorldCentroidPlugin.h │ │ │ ├── WorldCentroidTask.h │ │ │ └── WorldCentroidTaskFactory.h │ ├── Prefetcher │ │ └── Prefetcher.h │ ├── Property │ │ ├── PixelCoordinateList.h │ │ └── SourceId.h │ ├── PythonConfig │ │ ├── ObjectInfo.h │ │ ├── PyAperture.h │ │ ├── PyFitsFile.h │ │ ├── PyId.h │ │ ├── PyMeasurementImage.h │ │ ├── PyOutputWrapper.h │ │ ├── PythonInterpreter.h │ │ └── PythonModule.h │ └── Segmentation │ │ ├── AssocSegmentation.h │ │ ├── BFSSegmentation.h │ │ ├── BackgroundConvolution.h │ │ ├── BgConvolutionImageSource.h │ │ ├── BgDFTConvolutionImageSource.h │ │ ├── Lutz.h │ │ ├── LutzSegmentation.h │ │ ├── MLSegmentation.h │ │ └── SegmentationFactory.h ├── python │ └── sourcextractor │ │ ├── __init__.py │ │ └── config │ │ ├── __init__.py │ │ ├── argv.py │ │ ├── compat.py │ │ ├── measurement_config.py │ │ ├── measurement_images.py │ │ └── model_fitting.py ├── src │ └── lib │ │ ├── Background │ │ ├── BackgroundAnalyzerFactory.cpp │ │ ├── SE │ │ │ ├── ImageMode.cpp │ │ │ ├── ReplaceUndefImage.cpp │ │ │ └── SEBackgroundLevelAnalyzer.cpp │ │ └── SimpleBackgroundAnalyzer.cpp │ │ ├── CheckImages │ │ ├── CheckImages.cpp │ │ ├── DetectionIdCheckImage.cpp │ │ ├── GroupIdCheckImage.cpp │ │ ├── MoffatCheckImage.cpp │ │ └── SourceIdCheckImage.cpp │ │ ├── Common │ │ ├── OnnxCommon.cpp │ │ └── OnnxModel.cpp │ │ ├── Configuration │ │ ├── AttractorsPartitionConfig.cpp │ │ ├── BackgroundConfig.cpp │ │ ├── CheckImagesConfig.cpp │ │ ├── CleaningConfig.cpp │ │ ├── DeblendStepConfig.cpp │ │ ├── DetectionFrameConfig.cpp │ │ ├── DetectionImageConfig.cpp │ │ ├── GroupingConfig.cpp │ │ ├── LegacyModelFittingConfig.cpp │ │ ├── MagnitudeConfig.cpp │ │ ├── MeasurementFrameConfig.cpp │ │ ├── MeasurementImageConfig.cpp │ │ ├── MemoryConfig.cpp │ │ ├── MinAreaPartitionConfig.cpp │ │ ├── ModelFittingConfig.cpp │ │ ├── MultiThreadingConfig.cpp │ │ ├── MultiThresholdPartitionConfig.cpp │ │ ├── OutputConfig.cpp │ │ ├── PartitionStepConfig.cpp │ │ ├── PythonConfig.cpp │ │ ├── RngConfig.cpp │ │ ├── SE2BackgroundConfig.cpp │ │ ├── SamplingConfig.cpp │ │ ├── SegmentationConfig.cpp │ │ └── WeightImageConfig.cpp │ │ ├── Deblending │ │ └── Cleaning.cpp │ │ ├── Grouping │ │ ├── AssocCriteria.cpp │ │ ├── AssocGrouping.cpp │ │ ├── GroupingFactory.cpp │ │ ├── LineSelectionCriteria.cpp │ │ ├── MoffatCriteria.cpp │ │ ├── MoffatGrouping.cpp │ │ ├── OverlappingBoundariesCriteria.cpp │ │ ├── SplitSourcesCriteria.cpp │ │ └── SplitSourcesGrouping.cpp │ │ ├── Image │ │ ├── DownSampledImagePsf.cpp │ │ └── ImageInterfaceTraits.cpp │ │ ├── Measurement │ │ ├── MeasurementFactory.cpp │ │ └── MultithreadedMeasurement.cpp │ │ ├── Output │ │ ├── LdacOutput.cpp │ │ └── OutputFactory.cpp │ │ ├── Partition │ │ ├── AttractorsPartitionStep.cpp │ │ ├── MinAreaPartitionStep.cpp │ │ └── MultiThresholdPartitionStep.cpp │ │ ├── Plugin │ │ ├── AperturePhotometry │ │ │ ├── ApertureFlagTask.cpp │ │ │ ├── AperturePhotometryArrayTask.cpp │ │ │ ├── AperturePhotometryConfig.cpp │ │ │ ├── AperturePhotometryPlugin.cpp │ │ │ ├── AperturePhotometryTask.cpp │ │ │ └── AperturePhotometryTaskFactory.cpp │ │ ├── AssocMode │ │ │ ├── AssocModeConfig.cpp │ │ │ ├── AssocModePartitionStep.cpp │ │ │ ├── AssocModePlugin.cpp │ │ │ ├── AssocModeTask.cpp │ │ │ └── AssocModeTaskFactory.cpp │ │ ├── AutoPhotometry │ │ │ ├── AutoPhotometryArrayTask.cpp │ │ │ ├── AutoPhotometryConfig.cpp │ │ │ ├── AutoPhotometryFlagTask.cpp │ │ │ ├── AutoPhotometryPlugin.cpp │ │ │ ├── AutoPhotometryTask.cpp │ │ │ └── AutoPhotometryTaskFactory.cpp │ │ ├── BlendedFlag │ │ │ └── BlendedFlagPlugin.cpp │ │ ├── BoundaryFlag │ │ │ └── BoundaryFlagPlugin.cpp │ │ ├── CoreThresholdPartition │ │ │ ├── CoreThresholdPartitionConfig.cpp │ │ │ ├── CoreThresholdPartitionPlugin.cpp │ │ │ └── CoreThresholdPartitionStep.cpp │ │ ├── DetectionFrameCoordinates │ │ │ ├── DetectionFrameCoordinatesPlugin.cpp │ │ │ ├── DetectionFrameCoordinatesTask.cpp │ │ │ └── DetectionFrameCoordinatesTaskFactory.cpp │ │ ├── DetectionFrameGroupStamp │ │ │ ├── DetectionFrameGroupStampPlugin.cpp │ │ │ ├── DetectionFrameGroupStampTask.cpp │ │ │ └── DetectionFrameGroupStampTaskFactory.cpp │ │ ├── DetectionFrameImages │ │ │ ├── DetectionFrameImagesPlugin.cpp │ │ │ ├── DetectionFrameImagesTask.cpp │ │ │ └── DetectionFrameImagesTaskFactory.cpp │ │ ├── DetectionFrameInfo │ │ │ ├── DetectionFrameInfoPlugin.cpp │ │ │ ├── DetectionFrameInfoTask.cpp │ │ │ └── DetectionFrameInfoTaskFactory.cpp │ │ ├── DetectionFramePixelValues │ │ │ ├── DetectionFramePixelValuesPlugin.cpp │ │ │ ├── DetectionFramePixelValuesTask.cpp │ │ │ └── DetectionFramePixelValuesTaskFactory.cpp │ │ ├── DetectionFrameSourceStamp │ │ │ ├── DetectionFrameSourceStampPlugin.cpp │ │ │ ├── DetectionFrameSourceStampTask.cpp │ │ │ └── DetectionFrameSourceStampTaskFactory.cpp │ │ ├── ErrorEllipse │ │ │ ├── ErrorEllipsePlugin.cpp │ │ │ ├── ErrorEllipseTask.cpp │ │ │ └── ErrorEllipseTaskFactory.cpp │ │ ├── ExternalFlag │ │ │ ├── ExternalFlagConfig.cpp │ │ │ ├── ExternalFlagPlugin.cpp │ │ │ ├── ExternalFlagTask.cpp │ │ │ └── ExternalFlagTaskFactory.cpp │ │ ├── FlexibleModelFitting │ │ │ ├── FlexibleModelFittingConverterFactory.cpp │ │ │ ├── FlexibleModelFittingIterativeTask.cpp │ │ │ ├── FlexibleModelFittingModel.cpp │ │ │ ├── FlexibleModelFittingParameter.cpp │ │ │ ├── FlexibleModelFittingPlugin.cpp │ │ │ ├── FlexibleModelFittingPrior.cpp │ │ │ ├── FlexibleModelFittingTask.cpp │ │ │ └── FlexibleModelFittingTaskFactory.cpp │ │ ├── FluxRadius │ │ │ ├── FluxRadiusConfig.cpp │ │ │ ├── FluxRadiusPlugin.cpp │ │ │ ├── FluxRadiusTask.cpp │ │ │ └── FluxRadiusTaskFactory.cpp │ │ ├── GroupInfo │ │ │ ├── GroupInfoPlugin.cpp │ │ │ ├── GroupInfoTask.cpp │ │ │ └── GroupInfoTaskFactory.cpp │ │ ├── GrowthCurve │ │ │ ├── GrowthCurveConfig.cpp │ │ │ ├── GrowthCurvePlugin.cpp │ │ │ ├── GrowthCurveResampledTask.cpp │ │ │ ├── GrowthCurveTask.cpp │ │ │ └── GrowthCurveTaskFactory.cpp │ │ ├── HduNumber │ │ │ ├── HduNumberPlugin.cpp │ │ │ ├── HduNumberTask.cpp │ │ │ └── HduNumberTaskFactory.cpp │ │ ├── IsophotalFlux │ │ │ ├── IsophotalFluxPlugin.cpp │ │ │ ├── IsophotalFluxTask.cpp │ │ │ └── IsophotalFluxTaskFactory.cpp │ │ ├── Jacobian │ │ │ ├── JacobianPlugin.cpp │ │ │ ├── JacobianTask.cpp │ │ │ └── JacobianTaskFactory.cpp │ │ ├── KronRadius │ │ │ ├── KronRadiusPlugin.cpp │ │ │ ├── KronRadiusTask.cpp │ │ │ └── KronRadiusTaskFactory.cpp │ │ ├── MeasurementFrame │ │ │ ├── MeasurementFramePlugin.cpp │ │ │ ├── MeasurementFrameTask.cpp │ │ │ └── MeasurementFrameTaskFactory.cpp │ │ ├── MeasurementFrameCoordinates │ │ │ ├── MeasurementFrameCoordinatesPlugin.cpp │ │ │ ├── MeasurementFrameCoordinatesTask.cpp │ │ │ └── MeasurementFrameCoordinatesTaskFactory.cpp │ │ ├── MeasurementFrameGroupRectangle │ │ │ ├── MeasurementFrameGroupRectanglePlugin.cpp │ │ │ ├── MeasurementFrameGroupRectangleTask.cpp │ │ │ └── MeasurementFrameGroupRectangleTaskFactory.cpp │ │ ├── MeasurementFrameImages │ │ │ ├── MeasurementFrameImagesPlugin.cpp │ │ │ ├── MeasurementFrameImagesTask.cpp │ │ │ └── MeasurementFrameImagesTaskFactory.cpp │ │ ├── MeasurementFrameInfo │ │ │ ├── MeasurementFrameInfoPlugin.cpp │ │ │ ├── MeasurementFrameInfoTask.cpp │ │ │ └── MeasurementFrameInfoTaskFactory.cpp │ │ ├── MeasurementFramePixelCentroid │ │ │ ├── MeasurementFramePixelCentroidPlugin.cpp │ │ │ ├── MeasurementFramePixelCentroidTask.cpp │ │ │ └── MeasurementFramePixelCentroidTaskFactory.cpp │ │ ├── MeasurementFrameRectangle │ │ │ ├── MeasurementFrameRectanglePlugin.cpp │ │ │ ├── MeasurementFrameRectangleTask.cpp │ │ │ ├── MeasurementFrameRectangleTaskFactory.cpp │ │ │ └── MeasurementFrameRectangleTaskNoDetect.cpp │ │ ├── MoffatModelFitting │ │ │ ├── MoffatModelEvaluator.cpp │ │ │ ├── MoffatModelFittingPlugin.cpp │ │ │ ├── MoffatModelFittingTask.cpp │ │ │ └── MoffatModelFittingTaskFactory.cpp │ │ ├── NDetectedPixels │ │ │ └── NDetectedPixelsPlugin.cpp │ │ ├── Onnx │ │ │ ├── OnnxConfig.cpp │ │ │ ├── OnnxPlugin.cpp │ │ │ ├── OnnxSourceTask.cpp │ │ │ └── OnnxTaskFactory.cpp │ │ ├── PeakValue │ │ │ └── PeakValuePlugin.cpp │ │ ├── PixelBoundaries │ │ │ ├── PixelBoundariesPlugin.cpp │ │ │ ├── PixelBoundariesTask.cpp │ │ │ └── PixelBoundariesTaskFactory.cpp │ │ ├── PixelCentroid │ │ │ ├── PixelCentroidPlugin.cpp │ │ │ ├── PixelCentroidTask.cpp │ │ │ └── PixelCentroidTaskFactory.cpp │ │ ├── Psf │ │ │ ├── PsfPlugin.cpp │ │ │ ├── PsfPluginConfig.cpp │ │ │ ├── PsfTask.cpp │ │ │ └── PsfTaskFactory.cpp │ │ ├── ReferenceCoordinates │ │ │ ├── ReferenceCoordinatesPlugin.cpp │ │ │ ├── ReferenceCoordinatesTask.cpp │ │ │ └── ReferenceCoordinatesTaskFactory.cpp │ │ ├── SNRRatio │ │ │ └── SNRRatioPlugin.cpp │ │ ├── SaturateFlag │ │ │ └── SaturateFlagPlugin.cpp │ │ ├── ShapeParameters │ │ │ ├── ShapeParametersPlugin.cpp │ │ │ ├── ShapeParametersTask.cpp │ │ │ └── ShapeParametersTaskFactory.cpp │ │ ├── SourceFlags │ │ │ ├── SourceFlagsPlugin.cpp │ │ │ ├── SourceFlagsSourceTask.cpp │ │ │ └── SourceFlagsTaskFactory.cpp │ │ ├── SourceIDs │ │ │ └── SourceIDsPlugin.cpp │ │ ├── SourcePsf │ │ │ ├── SourcePsfPlugin.cpp │ │ │ ├── SourcePsfTask.cpp │ │ │ └── SourcePsfTaskFactory.cpp │ │ ├── Vignet │ │ │ ├── VignetArraySourceTask.cpp │ │ │ ├── VignetConfig.cpp │ │ │ ├── VignetPlugin.cpp │ │ │ ├── VignetSourceTask.cpp │ │ │ └── VignetTaskFactory.cpp │ │ └── WorldCentroid │ │ │ ├── WorldCentroidPlugin.cpp │ │ │ ├── WorldCentroidTask.cpp │ │ │ └── WorldCentroidTaskFactory.cpp │ │ ├── Prefetcher │ │ └── Prefetcher.cpp │ │ ├── PythonConfig │ │ ├── ObjectInfo.cpp │ │ ├── PyAperture.cpp │ │ ├── PyFitsFile.cpp │ │ ├── PyId.cpp │ │ ├── PyMeasurementImage.cpp │ │ ├── PyOutputWrapper.cpp │ │ ├── PythonInterpreter.cpp │ │ └── PythonModule.cpp │ │ └── Segmentation │ │ ├── AssocSegmentation.cpp │ │ ├── BFSSegmentation.cpp │ │ ├── BackgroundConvolution.cpp │ │ ├── BgConvolutionImageSource.cpp │ │ ├── BgDFTConvolutionImageSource.cpp │ │ ├── Lutz.cpp │ │ ├── LutzSegmentation.cpp │ │ ├── MLSegmentation.cpp │ │ └── SegmentationFactory.cpp └── tests │ └── src │ ├── Background │ ├── BackgroundHistogram_test.cpp │ ├── KappaSigmaBinning_test.cpp │ ├── MedianFilterImage_test.cpp │ └── ReplaceUndefImage_test.cpp │ ├── Grouping │ └── OverlappingBoundariesCriteria_test.cpp │ ├── Image │ ├── ImageInterfaceTraits_test.cpp │ └── ImagePsf_test.cpp │ ├── Partition │ ├── AttractorsPartitionStep_test.cpp │ ├── MinAreaPartitionStep_test.cpp │ └── MultiThresholdPartitionStep_test.cpp │ ├── Plugin │ ├── AperturePhotometry │ │ └── AperturePhotometry_test.cpp │ ├── AssocMode │ │ └── AssocMode_test.cpp │ ├── DetectionFramePixelValues │ │ └── DetectionFramePixelValues_test.cpp │ ├── DetectionFrameSourceStamp │ │ └── DetectionFrameSourceStamp_test.cpp │ ├── ExternalFlag │ │ └── ExternalFlag_test.cpp │ ├── FluxRadius │ │ └── FluxRadius_test.cpp │ ├── GrowthCurve │ │ └── GrowthCurve_test.cpp │ ├── IsophotalFlux │ │ └── IsophotalFlux_test.cpp │ ├── Jacobian │ │ ├── JacobianGroupTask_test.cpp │ │ └── JacobianSourceTask_test.cpp │ ├── MoffatModelFitting │ │ └── MoffatModelFitting_test.cpp │ ├── PixelBoundaries │ │ └── PixelBoundaries_test.cpp │ ├── PixelCentroid │ │ └── PixelCentroid_test.cpp │ └── Psf │ │ └── PsfTask_test.cpp │ └── Segmentation │ ├── BackgroundConvolution_test.cpp │ └── LutzSegmentation_test.cpp ├── SEMain ├── CMakeLists.txt ├── SEMain │ ├── PluginConfig.h │ ├── ProgressLogger.h │ ├── ProgressMediator.h │ ├── ProgressNCurses.h │ ├── ProgressReporter.h │ ├── ProgressReporterFactory.h │ ├── Sorter.h │ └── SourceXtractorConfig.h ├── auxdir │ └── SEMain │ │ ├── sourcextractor++.desktop │ │ └── sourcextractor++.png ├── conf │ └── sourcextractor++.conf ├── scripts │ └── AppRun └── src │ ├── lib │ ├── PluginConfig.cpp │ ├── ProgressLogger.cpp │ ├── ProgressMediator.cpp │ ├── ProgressNCurses.cpp │ ├── ProgressReporterFactory.cpp │ ├── Sorter.cpp │ └── SourceXtractorConfig.cpp │ └── program │ ├── SourceXtractor.cpp │ └── TestImage.cpp ├── SEUtils ├── CMakeLists.txt ├── SEUtils │ ├── HilbertCurve.h │ ├── IsClose.h │ ├── KdTree.h │ ├── Mat22.h │ ├── Misc.h │ ├── NumericalDerivative.h │ ├── Observable.h │ ├── PixelCoordinate.h │ ├── PixelRectangle.h │ ├── QuadTree.h │ ├── TestUtils.h │ ├── Types.h │ ├── VariantCast.h │ └── _impl │ │ ├── KdTree.icpp │ │ └── QuadTree.icpp └── tests │ └── src │ ├── Misc_test.cpp │ ├── NumericalDerivative_test.cpp │ ├── Observable_test.cpp │ ├── PixelCoordinate_test.cpp │ └── QuadTree_test.cpp ├── cmake ├── LocalBuildFlags.cmake └── modules │ ├── FindBoostDLL.cmake │ ├── FindBoostPython.cmake │ ├── FindLevmar.cmake │ ├── FindNcurses.cmake │ ├── FindOnnxRuntime.cmake │ ├── FindReadline.cmake │ └── Findyaml-cpp.cmake └── doc ├── .gitignore ├── Configuration ├── MeasurementConfigurationSystem.dox └── ModelingConfiguration.dox ├── ImplementationHowTos ├── HowToAddAPartitionStep.dox ├── HowToAddASourcePropertyComputation.dox ├── HowToAddASourcePropertyComputationWithConfiguration.dox ├── HowToAddASourcePropertyComputationWithInstances.dox ├── HowToRegisterAPlugin.dox └── ImplementationHowTos.dox ├── Makefile ├── Makefile.in ├── Overview.dox ├── SExtractor.dox ├── assets ├── flowchart.drawio ├── rangetypes.py ├── sersicprior.py └── sersicpriordata.svg ├── img ├── aggregation.png └── grouping.png ├── requirements.txt ├── src ├── Association.rst ├── Background.rst ├── Config.rst ├── ConfigAPI.rst ├── Flagging.rst ├── Input.rst ├── Installing.rst ├── Introduction.rst ├── License.rst ├── Measurements.rst ├── Model.rst ├── Output.rst ├── Photom.rst ├── Position.rst ├── Processing.rst ├── TestData.rst ├── Troubles.rst ├── Using.rst ├── Weighting.rst ├── conf.py ├── conf.py.in ├── config_api │ ├── aperture.rst │ ├── argv.rst │ ├── measurement_images.rst │ ├── model_fitting.rst │ └── output.rst ├── figures │ ├── by-sa.pdf │ ├── by-sa.svg │ ├── colorprior.pdf │ ├── colorprior.svg │ ├── detandmeas.pdf │ ├── detandmeas.svg │ ├── flowchart.pdf │ ├── flowchart.svg │ ├── modevsmean.pdf │ ├── modevsmean.svg │ ├── psf_data.pdf │ ├── psf_data.svg │ ├── psf_table.pdf │ ├── psf_table.svg │ ├── rangetypes.pdf │ ├── rangetypes.svg │ ├── robustgalfit.png │ ├── sersicpriors.pdf │ └── sersicpriors.svg ├── global.rst ├── index.rst ├── keys.rst ├── references.bib ├── references.rst └── roles.rst └── theme └── css └── custom.css /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | indent_style = space 6 | trim_trailing_whitespace = true 7 | charset = utf-8 8 | indent_size = 2 9 | max_line_length = 120 10 | insert_final_newline = true 11 | 12 | [*.py] 13 | indent_size = 4 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /.github/workflows/dependencies.txt: -------------------------------------------------------------------------------- 1 | $PYTHON-devel 2 | $PYTHON-numpy 3 | $PYTHON-pytest 4 | $PYTHON-sphinx 5 | $PYTHON-setuptools 6 | $PYTHON-dnf 7 | CCfits-devel 8 | blas-devel 9 | $BOOST-$PYTHON-devel 10 | $BOOST-devel 11 | doxygen 12 | fftw-devel 13 | gmock-devel 14 | graphviz 15 | gtest-devel 16 | levmar-devel 17 | log4cpp-devel 18 | onnxruntime-devel 19 | wcslib-devel 20 | -------------------------------------------------------------------------------- /.github/workflows/doc.yml: -------------------------------------------------------------------------------- 1 | name: doc 2 | 3 | on: 4 | push: 5 | paths: 6 | - 'doc/**' 7 | - 'SEImplementation/python/**' 8 | pull_request: 9 | paths: 10 | - 'doc/**' 11 | - 'SEImplementation/python/**' 12 | 13 | jobs: 14 | 15 | ############# 16 | # Build doc # 17 | ############# 18 | build: 19 | name: Make HTML doc 20 | continue-on-error: false 21 | runs-on: ubuntu-latest 22 | 23 | steps: 24 | - name: Checkout 25 | uses: actions/checkout@v2 26 | 27 | - name: Install dependencies 28 | run: pip3 install -r doc/requirements.txt 29 | 30 | - name: Build 31 | run: | 32 | cd doc 33 | make html 34 | 35 | - name: Set destination dir 36 | if: github.ref_name != 'master' 37 | run: | 38 | echo "DOC_DEST=${{ github.ref_name }}" >> $GITHUB_ENV 39 | 40 | - name: Deploy 41 | if: success() 42 | uses: peaceiris/actions-gh-pages@v3 43 | with: 44 | publish_branch: doc-pages 45 | github_token: ${{ secrets.GITHUB_TOKEN }} 46 | publish_dir: doc/build/html/ 47 | destination_dir: ${{ env.DOC_DEST }} 48 | 49 | -------------------------------------------------------------------------------- /.github/workflows/test-dependencies.txt: -------------------------------------------------------------------------------- 1 | $PYTHON-astropy 2 | $PYTHON-matplotlib 3 | $PYTHON-numpy 4 | $PYTHON-pip 5 | $PYTHON-psutil 6 | $PYTHON-pytest 7 | git 8 | git-lfs 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.AppImage 2 | *.pyc 3 | /InstallArea 4 | /build.* 5 | /tests 6 | __pycache__ 7 | /.cproject 8 | /.project 9 | /.settings/ 10 | .pydevproject 11 | /packages 12 | /doc/build/ 13 | /build/ 14 | -------------------------------------------------------------------------------- /.jenkinsFile: -------------------------------------------------------------------------------- 1 | #!groovy 2 | @Library('integration-library@release-9') _ 3 | pipelineElements(artifactId:"SourceXtractorPlusPlus", groupId:"EL", component:'eden.3.0') 4 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5) 2 | 3 | #--------------------------------------------------------------- 4 | # Load macros and functions for Elements-based projects 5 | find_package(ElementsProject) 6 | #--------------------------------------------------------------- 7 | 8 | # Declare project name and version 9 | elements_project(SourceXtractorPlusPlus 1.1.0 USE Alexandria 2.32.0 DESCRIPTION "SourceXtractor++, the next generation SExtractor") 10 | -------------------------------------------------------------------------------- /CPPLINT.cfg: -------------------------------------------------------------------------------- 1 | set noparent 2 | filter=-whitespace,-build/header_guard,-build/namespaces,-build/c++11,-build/include_what_you_use,runtime/references 3 | linelength=120 4 | -------------------------------------------------------------------------------- /ModelFitting/ModelFitting/Engine/_impl/EngineParameterManager.icpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file EngineParameterManager.icpp 19 | * @date August 14, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | namespace ModelFitting { 24 | 25 | template 26 | void EngineParameterManager::getEngineValues(DoubleIter output_iter) const { 27 | for (auto& parameter : m_parameters) { 28 | *(output_iter++) = parameter->getEngineValue(); 29 | } 30 | } 31 | 32 | template 33 | void EngineParameterManager::updateEngineValues(DoubleIter new_values_iter) { 34 | for (auto& parameter : m_parameters) { 35 | parameter->setEngineValue(*(new_values_iter++)); 36 | } 37 | } 38 | 39 | } // end of namespace ModelFitting 40 | -------------------------------------------------------------------------------- /ModelFitting/ModelFitting/Engine/_impl/ResidualEstimator.icpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file ResidualEstimator.icpp 19 | * @date August 18, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | namespace ModelFitting { 24 | 25 | template 26 | void ResidualEstimator::populateResiduals(DoubleIter output_iter) const { 27 | // In the general case we use an intermediate vector 28 | std::vector residuals (m_residual_no, 0.); 29 | auto residuals_ptr = residuals.data(); 30 | for (auto& block_prov_ptr : m_block_provider_list) { 31 | block_prov_ptr->populateResidualBlock(residuals_ptr); 32 | residuals_ptr += block_prov_ptr->numberOfResiduals(); 33 | } 34 | std::copy(residuals.begin(), residuals.end(), output_iter); 35 | } 36 | 37 | } // end of namespace ModelFitting 38 | -------------------------------------------------------------------------------- /ModelFitting/ModelFitting/Image/PsfTraits.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file PsfTraits.h 19 | * @date July 18, 2019 20 | * @author Alejandro Álvarez Ayllón 21 | */ 22 | 23 | #ifndef MODELFITTING_PSFTRAITS_H 24 | #define MODELFITTING_PSFTRAITS_H 25 | 26 | namespace ModelFitting { 27 | 28 | /** 29 | * The default PsfTrait remains compatible with PSF implementations 30 | * that do not have the concept of a context or a prepare method. 31 | * This way they do not have to be modified. 32 | * 33 | * PSF types that have this concept should specialize the trait with has_context = true 34 | * and the appropriate context_t 35 | */ 36 | template 37 | struct PsfTraits { 38 | using context_t = std::false_type; 39 | static constexpr bool has_context = false; 40 | }; 41 | 42 | } // end namespace ModelFitting 43 | 44 | #endif // MODELFITTING_PSFTRAITS_H 45 | -------------------------------------------------------------------------------- /ModelFitting/ModelFitting/Models/ConstantModel.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file ConstantModel.h 19 | * @date August 26, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #ifndef MODELFITTING_CONSTANTMODEL_H 24 | #define MODELFITTING_CONSTANTMODEL_H 25 | 26 | #include "ModelFitting/Parameters/BasicParameter.h" 27 | 28 | namespace ModelFitting { 29 | 30 | class ConstantModel { 31 | 32 | public: 33 | 34 | explicit ConstantModel( std::shared_ptr value); 35 | 36 | ConstantModel(ConstantModel&& other); 37 | 38 | virtual ~ConstantModel(); 39 | 40 | double getValue() const; 41 | 42 | private: 43 | std::shared_ptr m_value; 44 | 45 | }; // end of class ConstantModel 46 | 47 | } // end of namespace ModelFitting 48 | 49 | #endif /* MODELFITTING_CONSTANTMODEL_H */ 50 | 51 | -------------------------------------------------------------------------------- /ModelFitting/ModelFitting/Models/OnlySmooth.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file OnlySmooth.h 19 | * @date August 24, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #ifndef MODELFITTING_ONLYSMOOTH_H 24 | #define MODELFITTING_ONLYSMOOTH_H 25 | 26 | #include "ModelFitting/Models/SharpRegionManager.h" 27 | 28 | namespace ModelFitting { 29 | 30 | class OnlySmooth : public SharpRegionManager { 31 | 32 | public: 33 | 34 | virtual ~OnlySmooth(); 35 | 36 | void updateRasterizationInfo(double, double, Profile) override; 37 | 38 | bool insideSharpRegion(double) override; 39 | 40 | std::pair nextRadiusAndAngleNo(double) override; 41 | 42 | }; // end of class OnlySmooth 43 | 44 | } // end of namespace ModelFitting 45 | 46 | #endif /* MODELFITTING_ONLYSMOOTH_H */ 47 | 48 | -------------------------------------------------------------------------------- /ModelFitting/ModelFitting/Parameters/ManualParameter.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file ManualParameter.h 19 | * @date August 11, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #ifndef MODELFITTING_MANUALPARAMETER_H 24 | #define MODELFITTING_MANUALPARAMETER_H 25 | 26 | #include "ModelFitting/Parameters/BasicParameter.h" 27 | 28 | namespace ModelFitting { 29 | 30 | class ManualParameter : public BasicParameter { 31 | 32 | public: 33 | 34 | explicit ManualParameter(const double value) : BasicParameter{value} { } 35 | 36 | virtual ~ManualParameter() = default; 37 | 38 | void setValue(const double new_value) { 39 | BasicParameter::setValue(new_value); 40 | } 41 | 42 | }; 43 | 44 | } 45 | 46 | #endif /* MODELFITTING_MANUALPARAMETER_H */ 47 | -------------------------------------------------------------------------------- /ModelFitting/auxdir/gal.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/ModelFitting/auxdir/gal.fits -------------------------------------------------------------------------------- /ModelFitting/auxdir/image.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/ModelFitting/auxdir/image.fits -------------------------------------------------------------------------------- /ModelFitting/auxdir/multiframe.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/ModelFitting/auxdir/multiframe.fits -------------------------------------------------------------------------------- /ModelFitting/auxdir/psf.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/ModelFitting/auxdir/psf.fits -------------------------------------------------------------------------------- /ModelFitting/auxdir/psf_gal.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/ModelFitting/auxdir/psf_gal.fits -------------------------------------------------------------------------------- /ModelFitting/src/lib/Models/ConstantModel.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file ConstantModel.cpp 19 | * @date September 1, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #include "ModelFitting/Models/ConstantModel.h" 24 | 25 | namespace ModelFitting { 26 | 27 | ConstantModel::ConstantModel(std::shared_ptr value) 28 | : m_value {value} { 29 | } 30 | 31 | ConstantModel::ConstantModel(ConstantModel&& other) 32 | : m_value {other.m_value} { 33 | } 34 | 35 | ConstantModel::~ConstantModel() = default; 36 | 37 | double ConstantModel::getValue() const { 38 | return m_value->getValue(); 39 | } 40 | 41 | } // end of namespace ModelFitting 42 | -------------------------------------------------------------------------------- /ModelFitting/src/lib/Models/OnlySmooth.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file OnlySmooth.cpp 19 | * @date September 1, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #include "ModelFitting/Models/OnlySmooth.h" 24 | 25 | namespace ModelFitting { 26 | 27 | OnlySmooth::~OnlySmooth() = default; 28 | 29 | void OnlySmooth::updateRasterizationInfo(double, double, Profile) { 30 | // do nothing here 31 | } 32 | 33 | bool OnlySmooth::insideSharpRegion(double) { 34 | return false; 35 | } 36 | 37 | std::pair OnlySmooth::nextRadiusAndAngleNo(double) { 38 | return std::make_pair(0., 0); 39 | } 40 | 41 | } // end of namespace ModelFitting -------------------------------------------------------------------------------- /ModelFitting/src/lib/Models/PointModel.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file PointModel.cpp 19 | * @date September 1, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #include "ModelFitting/Models/PointModel.h" 24 | 25 | namespace ModelFitting { 26 | 27 | PointModel::PointModel( std::shared_ptr x, std::shared_ptr y, std::shared_ptr value) 28 | : PositionedModel(x, y), ConstantModel(value) { } 29 | 30 | PointModel::PointModel(PointModel&& other) 31 | : PositionedModel(std::move(other)), ConstantModel(std::move(other)) { } 32 | 33 | PointModel::~PointModel() = default; 34 | 35 | } // end of namespace ModelFitting 36 | -------------------------------------------------------------------------------- /ModelFitting/src/lib/Models/PositionedModel.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file PositionedModel.cpp 19 | * @date September 1, 2015 20 | * @author Nikolaos Apostolakos 21 | */ 22 | 23 | #include "ModelFitting/Models/PositionedModel.h" 24 | 25 | namespace ModelFitting { 26 | 27 | PositionedModel::PositionedModel(std::shared_ptr x, std::shared_ptr y) 28 | : m_x(x), m_y(y) 29 | { 30 | } 31 | 32 | PositionedModel::PositionedModel(PositionedModel&& other) 33 | : m_x {other.m_x}, m_y{other.m_y} 34 | { 35 | } 36 | 37 | double PositionedModel::getX() const { 38 | return m_x->getValue(); 39 | } 40 | 41 | double PositionedModel::getY() const { 42 | return m_y->getValue(); 43 | } 44 | 45 | } // end of namespace ModelFitting 46 | -------------------------------------------------------------------------------- /ModelFitting/src/lib/Parameters/EngineParameter.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file EngineParameter.cpp 19 | * 20 | * Created on: August 12, 2015 21 | * Author: Pierre Dubath 22 | */ 23 | 24 | #include "ModelFitting/Parameters/EngineParameter.h" 25 | 26 | namespace ModelFitting { 27 | 28 | using namespace std; 29 | 30 | void EngineParameter::setEngineValue(const double engine_value) { 31 | m_engine_value = engine_value; 32 | BasicParameter::setValue(m_converter->engineToWorld(engine_value)); 33 | } 34 | 35 | double EngineParameter::getEngineToWorldDerivative() const { 36 | return m_converter->getEngineToWorldDerivative(getValue()); 37 | } 38 | 39 | void EngineParameter::setValue(const double value) { 40 | BasicParameter::setValue(value); 41 | m_engine_value = m_converter->worldToEngine(value); 42 | } 43 | 44 | 45 | 46 | } // namespace ModelFitting 47 | -------------------------------------------------------------------------------- /ModelFitting/src/lib/Parameters/NeutralConverter.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file NeutralConverter.cpp 19 | * 20 | * Created on: August 12, 2015 21 | * Author: Pierre Dubath 22 | */ 23 | #include "ModelFitting/Parameters/NeutralConverter.h" 24 | 25 | namespace ModelFitting { 26 | 27 | using namespace std; 28 | 29 | NeutralConverter::~NeutralConverter() = default; 30 | 31 | double NeutralConverter::worldToEngine(const double world_value) const { 32 | return world_value; 33 | } 34 | 35 | double NeutralConverter::engineToWorld(const double engine_value) const { 36 | return engine_value; 37 | } 38 | 39 | double NeutralConverter::getEngineToWorldDerivative(const double /*value*/) const { 40 | return 1; 41 | } 42 | 43 | 44 | }// namespace ModelFitting 45 | -------------------------------------------------------------------------------- /ModelFitting/tests/src/Parameters/ManualParameter_test.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file ManualParameter_test.cpp 19 | * 20 | * Created on: January 9, 2015 21 | * Author: Pierre Dubath 22 | */ 23 | 24 | #include 25 | #include 26 | #include "ElementsKernel/Exception.h" 27 | // class under test 28 | #include "ModelFitting/Parameters/ManualParameter.h" 29 | 30 | using namespace ModelFitting; 31 | using namespace std; 32 | 33 | // tolerance value to compare floating point numbers 34 | double tolerance = 1e-12; 35 | 36 | BOOST_AUTO_TEST_SUITE (ManualParameter_test) 37 | 38 | BOOST_AUTO_TEST_CASE(WithoutFixture) { 39 | ManualParameter mp {3.0}; 40 | BOOST_CHECK_EQUAL(3.0, mp.getValue()); 41 | } 42 | 43 | BOOST_AUTO_TEST_SUITE_END () 44 | 45 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Background/Background.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * Background.h 19 | * 20 | * Created on: Mar 28, 2017 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEFRAMEWORK_BACKGROUND_BACKGROUND_H_ 25 | #define _SEFRAMEWORK_BACKGROUND_BACKGROUND_H_ 26 | 27 | #include "SEFramework/Image/Image.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class Background { 32 | public: 33 | 34 | virtual ~Background() = default; 35 | 36 | virtual std::shared_ptr> getBackgroundLevelImage() const = 0; 37 | virtual std::shared_ptr> getAutoWeightImage() const = 0; 38 | 39 | 40 | virtual SeFloat getBackroundRMS() const = 0; 41 | virtual SeFloat getBackroundDetectionThreshold() const = 0; 42 | }; 43 | 44 | 45 | } 46 | 47 | 48 | 49 | #endif /* _SEFRAMEWORK_BACKGROUND_BACKGROUND_H_ */ 50 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Convolution/Convolution.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * @file SEFramework/Convolution/Convolution.h 19 | * @date 17/09/18 20 | * @author aalvarez 21 | */ 22 | 23 | #ifndef _SEFRAMEWORK_CONVOLUTION_CONVOLUTION_H 24 | #define _SEFRAMEWORK_CONVOLUTION_CONVOLUTION_H 25 | 26 | #include "DirectConvolution.h" 27 | #include "DFT.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | /** 32 | * For convenience, default convolution strategy. 33 | */ 34 | typedef DFTConvolution> DefaultConvolutionStrategy; 35 | 36 | } // end SourceXtractor 37 | 38 | 39 | #endif // _SEFRAMEWORK_CONVOLUTION_CONVOLUTION_H 40 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Image/ImageProcessing.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * ImageProcessing.h 19 | * 20 | * Created on: Sep 15, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEFRAMEWORK_IMAGE_IMAGEPROCESSING_H_ 25 | #define _SEFRAMEWORK_IMAGE_IMAGEPROCESSING_H_ 26 | 27 | #include "SEFramework/Image/Image.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | template 32 | class ImageProcessing { 33 | public: 34 | virtual ~ImageProcessing() = default; 35 | 36 | virtual std::shared_ptr> processImage(std::shared_ptr> image) const = 0; 37 | }; 38 | 39 | using DetectionImageProcessing = ImageProcessing; 40 | 41 | } 42 | 43 | #endif /* _SEFRAMEWORK_IMAGE_IMAGEPROCESSING_H_ */ 44 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Image/ImageSourceWithMetadata.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2020 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEFRAMEWORK_IMAGE_IMAGESOURCEWITHMETADATA_H_ 19 | #define _SEFRAMEWORK_IMAGE_IMAGESOURCEWITHMETADATA_H_ 20 | 21 | #include "SEFramework/Image/ImageSource.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | 26 | } // end of namespace SourceXtractor 27 | 28 | #endif /* _SEFRAMEWORK_IMAGE_IMAGESOURCEWITHMETADATA_H_ */ 29 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Image/WriteableImage.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * WriteableImage.h 19 | * 20 | * Created on: Mar 8, 2018 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEFRAMEWORK_IMAGE_WRITEABLEIMAGE_H_ 25 | #define _SEFRAMEWORK_IMAGE_WRITEABLEIMAGE_H_ 26 | 27 | #include "SEFramework/Image/Image.h" 28 | #include 29 | 30 | namespace SourceXtractor { 31 | 32 | template 33 | class WriteableImage : public virtual Image { 34 | public: 35 | 36 | virtual void setValue(int x, int y, T value) = 0; 37 | 38 | // This mutex can be used to lock the writeable image if used multithreaded 39 | std::mutex m_write_mutex; 40 | }; 41 | 42 | } 43 | 44 | #endif /* _SEFRAMEWORK_IMAGE_WRITEABLEIMAGE_H_ */ 45 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Plugin/Plugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * Plugin.h 19 | * 20 | * Created on: Jul 26, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEFRAMEWORK_PLUGIN_PLUGIN_H_ 25 | #define _SEFRAMEWORK_PLUGIN_PLUGIN_H_ 26 | 27 | #include 28 | 29 | namespace SourceXtractor { 30 | 31 | /** 32 | * @class Plugin 33 | * @brief Plugins must implement this interface. 34 | * 35 | * @details registerPlugin() is going to be called to give the plugin a chance to register what it needs to. 36 | */ 37 | 38 | class Plugin { 39 | public: 40 | virtual ~Plugin() = default; 41 | 42 | virtual std::string getIdString() const = 0; 43 | virtual void registerPlugin(PluginAPI& plugin_api) = 0; 44 | }; 45 | 46 | } // namespace SourceXtractor 47 | 48 | #endif /* _SEFRAMEWORK_PLUGIN_PLUGIN_H_ */ 49 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Property/Property.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file SEFramework/Property/Property.h 19 | * @date 05/06/16 20 | * @author mschefer 21 | */ 22 | 23 | #ifndef _SEFRAMEWORK_PROPERTY_PROPERTY_H 24 | #define _SEFRAMEWORK_PROPERTY_PROPERTY_H 25 | 26 | namespace SourceXtractor { 27 | 28 | /** 29 | * @class Property 30 | * @brief Base class for all Properties. (has no actual content) 31 | */ 32 | 33 | class Property { 34 | public: 35 | virtual ~Property() = default; 36 | }; 37 | 38 | } /* namespace SourceXtractor */ 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Source/SourceFactory.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * SourceFactory.h 19 | * 20 | * Created on: Aug 8, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEFRAMEWORK_SOURCE_SOURCEFACTORY_H_ 25 | #define _SEFRAMEWORK_SOURCE_SOURCEFACTORY_H_ 26 | 27 | #include 28 | 29 | namespace SourceXtractor { 30 | 31 | class SourceInterface; 32 | 33 | /** 34 | * @class SourceFactory 35 | * @brief A factory interface to create SourceInterface instances 36 | * 37 | */ 38 | 39 | class SourceFactory { 40 | public: 41 | virtual ~SourceFactory() = default; 42 | 43 | virtual std::unique_ptr createSource() const = 0; 44 | }; 45 | 46 | } 47 | 48 | 49 | #endif /* _SEFRAMEWORK_SOURCE_SOURCEFACTORY_H_ */ 50 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Source/SourceGroupFactory.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * @file SourceGroupFactory.h 19 | * @author nikoapos 20 | */ 21 | 22 | #ifndef _SEFRAMEWORK_SOURCEGROUPFACTORY_H 23 | #define _SEFRAMEWORK_SOURCEGROUPFACTORY_H 24 | 25 | #include 26 | #include "SEFramework/Source/SourceGroupInterface.h" 27 | 28 | namespace SourceXtractor { 29 | 30 | /** 31 | * @class SourceGroupFactory 32 | * @brief A factory interface to create SourceGroupInterface instances 33 | * 34 | */ 35 | 36 | 37 | class SourceGroupFactory { 38 | public: 39 | virtual ~SourceGroupFactory() = default; 40 | 41 | virtual std::unique_ptr createSourceGroup() const = 0; 42 | }; 43 | 44 | } 45 | 46 | #endif /* _SEFRAMEWORK_SOURCEGROUPFACTORY_H */ 47 | 48 | -------------------------------------------------------------------------------- /SEFramework/SEFramework/Task/Task.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file SEFramework/Task/Task.h 19 | * @date 05/09/16 20 | * @author mschefer 21 | */ 22 | 23 | #ifndef _SEFRAMEWORK_TASK_TASK_H 24 | #define _SEFRAMEWORK_TASK_TASK_H 25 | 26 | namespace SourceXtractor { 27 | 28 | /** 29 | * @class Task 30 | * @brief Basic interface for a Task that is used to compute properties 31 | * 32 | * @details This interface is empty of content and is meant to be a common parent for different kinds of tasks 33 | * 34 | */ 35 | class Task { 36 | 37 | public: 38 | 39 | /** 40 | * @brief Destructor 41 | */ 42 | virtual ~Task() = default; 43 | 44 | 45 | private: 46 | 47 | }; /* End of Task class */ 48 | 49 | } /* namespace SourceXtractor */ 50 | 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /SEFramework/auxdir/multiple_hdu.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/SEFramework/auxdir/multiple_hdu.fits -------------------------------------------------------------------------------- /SEFramework/auxdir/with_primary.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/SEFramework/auxdir/with_primary.fits -------------------------------------------------------------------------------- /SEFramework/src/lib/Pipeline/PipelineStage.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2022 Université de Genève, LMU Munich - Faculty of Physics, 2 | * IAP-CNRS/Sorbonne Université 3 | * 4 | * This library is free software; you can redistribute it and/or modify it 5 | * under the terms of the GNU Lesser General Public License as published by the 6 | * Free Software Foundation; either version 3.0 of the License, or (at your 7 | * option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, but WITHOUT 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 12 | * for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public License 15 | * along with this library; if not, write to the Free Software Foundation, 16 | * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | */ 18 | -------------------------------------------------------------------------------- /SEFramework/src/lib/Property/PropertyId.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file src/lib/Property/PropertyId.cpp 19 | * @date 07/28/16 20 | * @author mschefer 21 | */ 22 | 23 | 24 | #include "SEFramework/Property/PropertyId.h" 25 | 26 | #if BOOST_VERSION < 105600 27 | #include 28 | using boost::units::detail::demangle; 29 | #else 30 | #include 31 | using boost::core::demangle; 32 | #endif 33 | 34 | namespace SourceXtractor { 35 | 36 | std::string PropertyId::getString() const { 37 | std::stringstream property_name; 38 | property_name << demangle(m_type_id.name()) << " [ " << m_index << " ] "; 39 | return property_name.str(); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /SEFramework/tests/src/Image/SubImage_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SubImage_test.cpp 3 | * 4 | * Created on: May 4, 2021 5 | * Author: mschefer 6 | */ 7 | 8 | 9 | #include 10 | #include "SEFramework/Image/SubImage.h" 11 | #include "SEFramework/Image/VectorImage.h" 12 | 13 | #include "SEUtils/TestUtils.h" 14 | 15 | 16 | 17 | using namespace SourceXtractor; 18 | 19 | struct SubImage_Fixture { 20 | std::shared_ptr> img; 21 | 22 | SubImage_Fixture() : img { VectorImage::create( 23 | 3, 3, 24 | std::vector{ 25 | 1, 2, 3, 26 | 4, 5, 6, 27 | 7, 8, 9 28 | })} { 29 | } 30 | }; 31 | 32 | //----------------------------------------------------------------------------- 33 | 34 | BOOST_AUTO_TEST_SUITE (SubImage_test) 35 | 36 | //----------------------------------------------------------------------------- 37 | 38 | BOOST_FIXTURE_TEST_CASE (RecenterImage_test, SubImage_Fixture) { 39 | auto sub_image = SubImage::create(img, PixelCoordinate{1, 1}, 2, 2); 40 | 41 | auto expected_image = VectorImage::create(2, 2, std::vector{ 42 | 5, 6, 43 | 8, 9 44 | }); 45 | 46 | BOOST_CHECK(compareImages(sub_image, expected_image)); 47 | } 48 | 49 | //----------------------------------------------------------------------------- 50 | 51 | BOOST_AUTO_TEST_SUITE_END() 52 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Background/Utils.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_BACKGROUND_UTILS_H_ 19 | #define _SEIMPLEMENTATION_BACKGROUND_UTILS_H_ 20 | 21 | #include "ElementsKernel/Logging.h" // for Logging::LogMessageStream, etc 22 | 23 | namespace SourceXtractor { 24 | 25 | static Elements::Logging bck_model_logger = Elements::Logging::getLogger("BackgroundModel"); 26 | 27 | } // end of namespace SourceXtractor 28 | 29 | #endif // _SEIMPLEMENTATION_BACKGROUND_UTILS_H_ 30 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/CheckImages/DetectionIdCheckImage.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * DetectionIdCheckImage.h 19 | * 20 | * Created on: Jun 25, 2018 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_CHECKIMAGES_DETECTIONIDCHECKIMAGE_H_ 25 | #define _SEIMPLEMENTATION_CHECKIMAGES_DETECTIONIDCHECKIMAGE_H_ 26 | 27 | #include "SEUtils/Observable.h" 28 | #include "SEFramework/Image/WriteableImage.h" 29 | #include "SEFramework/Source/SourceInterface.h" 30 | 31 | namespace SourceXtractor { 32 | 33 | class DetectionIdCheckImage : public Observer { 34 | public: 35 | 36 | DetectionIdCheckImage() = default; 37 | 38 | void handleMessage(const SourceInterface& source) override; 39 | }; 40 | 41 | } 42 | 43 | #endif /* _SEIMPLEMENTATION_CHECKIMAGES_DETECTIONIDCHECKIMAGE_H_ */ 44 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/CheckImages/GroupIdCheckImage.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * GroupIdCheckImage.h 19 | * 20 | * Created on: 2019 M01 30 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_CHECKIMAGES_GROUPIDCHECKIMAGE_H_ 25 | #define _SEIMPLEMENTATION_CHECKIMAGES_GROUPIDCHECKIMAGE_H_ 26 | 27 | #include "SEUtils/Observable.h" 28 | #include "SEFramework/Image/WriteableImage.h" 29 | #include "SEFramework/Source/SourceGroupInterface.h" 30 | 31 | namespace SourceXtractor { 32 | 33 | class GroupIdCheckImage : public Observer { 34 | public: 35 | GroupIdCheckImage() {} 36 | 37 | void handleMessage(const SourceGroupInterface& group) override; 38 | }; 39 | 40 | 41 | } /* namespace SourceXtractor */ 42 | 43 | 44 | #endif /* SEIMPLEMENTATION_SEIMPLEMENTATION_CHECKIMAGES_GROUPIDCHECKIMAGE_H_ */ 45 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/CheckImages/MoffatCheckImage.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * MoffatCheckImage.h 19 | * 20 | * Created on: 2019 M02 5 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_CHECKIMAGES_MOFFATCHECKIMAGE_H_ 25 | #define _SEIMPLEMENTATION_CHECKIMAGES_MOFFATCHECKIMAGE_H_ 26 | 27 | #include "SEUtils/Observable.h" 28 | #include "SEFramework/Image/WriteableImage.h" 29 | #include "SEFramework/Source/SourceGroupInterface.h" 30 | 31 | namespace SourceXtractor { 32 | 33 | class MoffatCheckImage : public Observer { 34 | public: 35 | 36 | MoffatCheckImage() {} 37 | 38 | void handleMessage(const SourceGroupInterface& group) override; 39 | }; 40 | 41 | 42 | } /* namespace SourceXtractor */ 43 | 44 | 45 | 46 | #endif /* _SEIMPLEMENTATION_CHECKIMAGES_MOFFATCHECKIMAGE_H_ */ 47 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Common/OnnxCommon.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_COMMON_ONNXCOMMON_H_ 19 | #define _SEIMPLEMENTATION_COMMON_ONNXCOMMON_H_ 20 | 21 | namespace SourceXtractor { 22 | 23 | extern Ort::Env ORT_ENV; 24 | 25 | } 26 | 27 | #endif /* _SEIMPLEMENTATION_COMMON_ONNXCOMMON_H_ */ 28 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Configuration/RngConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * RngConfig.h 3 | * 4 | * Created on: Mar 21, 2024 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_CONFIGURATION_RNGCONFIG_H_ 9 | #define _SEIMPLEMENTATION_CONFIGURATION_RNGCONFIG_H_ 10 | 11 | #include "Configuration/Configuration.h" 12 | #include "AlexandriaKernel/ThreadPool.h" 13 | 14 | namespace SourceXtractor { 15 | 16 | class RngConfig : public Euclid::Configuration::Configuration { 17 | public: 18 | explicit RngConfig(long manager_id); 19 | 20 | virtual ~RngConfig() = default; 21 | 22 | std::map getProgramOptions() override; 23 | 24 | void initialize(const UserValues& args) override; 25 | 26 | unsigned int getSeed() const { 27 | return m_seed; 28 | } 29 | 30 | private: 31 | unsigned int m_seed; 32 | }; 33 | 34 | 35 | } 36 | 37 | 38 | #endif /* _SEIMPLEMENTATION_CONFIGURATION_RNGCONFIG_H_ */ 39 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Grouping/AssocCriteria.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2023 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef SEIMPLEMENTATION_SEIMPLEMENTATION_GROUPING_ASSOCCRITERIA_H_ 19 | #define SEIMPLEMENTATION_SEIMPLEMENTATION_GROUPING_ASSOCCRITERIA_H_ 20 | 21 | #include "SEFramework/Pipeline/SourceGrouping.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | /** 26 | * @class AssocCriteria 27 | * @brief Groups sources based on the Assoc catalog 28 | * 29 | */ 30 | 31 | class AssocCriteria : public GroupingCriteria { 32 | public: 33 | bool shouldGroup(const SourceInterface& first, const SourceInterface& second) const override; 34 | }; 35 | 36 | 37 | } /* namespace SourceXtractor */ 38 | 39 | #endif /* SEIMPLEMENTATION_SEIMPLEMENTATION_GROUPING_ASSOCCRITERIA_H_ */ 40 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Grouping/LineSelectionCriteria.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | /* 19 | * LineSelectionCriteria.h 20 | * 21 | * Created on: Nov 20, 2019 22 | * Author: mschefer 23 | */ 24 | 25 | #ifndef _SEIMPLEMENTATION_GROUPING_LINESELECTIONCRITERIA_H_ 26 | #define _SEIMPLEMENTATION_GROUPING_LINESELECTIONCRITERIA_H_ 27 | 28 | #include "SEFramework/Pipeline/SourceGrouping.h" 29 | 30 | namespace SourceXtractor { 31 | 32 | class LineSelectionCriteria : public SelectionCriteria { 33 | public: 34 | 35 | explicit LineSelectionCriteria(int line_number) : m_line_number(line_number) { 36 | } 37 | 38 | bool mustBeProcessed(const SourceInterface& ) const override; 39 | 40 | private: 41 | int m_line_number; 42 | }; 43 | 44 | } 45 | 46 | 47 | #endif /* _SEIMPLEMENTATION_GROUPING_LINESELECTIONCRITERIA_H_ */ 48 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Grouping/NoGroupingCriteria.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * NoGroupingCriteria.h 19 | * 20 | * Created on: Jul 2, 2018 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_GROUPING_NOGROUPINGCRITERIA_H_ 25 | #define _SEIMPLEMENTATION_GROUPING_NOGROUPINGCRITERIA_H_ 26 | 27 | #include "SEFramework/Pipeline/SourceGrouping.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | 32 | class NoGroupingCriteria : public GroupingCriteria { 33 | public: 34 | bool shouldGroup(const SourceInterface&, const SourceInterface&) const override { 35 | return false; 36 | } 37 | }; 38 | 39 | 40 | } /* namespace SourceXtractor */ 41 | 42 | 43 | 44 | 45 | #endif /* _SEIMPLEMENTATION_GROUPING_NOGROUPINGCRITERIA_H_ */ 46 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Grouping/OverlappingBoundariesCriteria.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file SEImplementation/Grouping/OverlappingBoundariesCriteria.h 19 | * @date 06/07/16 20 | * @author mschefer 21 | */ 22 | 23 | #ifndef _SEIMPLEMENTATION_GROUPING_OVERLAPPINGBOUNDARIESCRITERIA_H 24 | #define _SEIMPLEMENTATION_GROUPING_OVERLAPPINGBOUNDARIESCRITERIA_H 25 | 26 | #include "SEFramework/Pipeline/SourceGrouping.h" 27 | 28 | namespace SourceXtractor { 29 | 30 | /** 31 | * @class OverlappingBoundariesCriteria 32 | * @brief Groups sources if their bounding boxes overlap 33 | * 34 | */ 35 | 36 | class OverlappingBoundariesCriteria : public GroupingCriteria { 37 | public: 38 | bool shouldGroup(const SourceInterface& first, const SourceInterface& second) const override; 39 | }; 40 | 41 | 42 | } /* namespace SourceXtractor */ 43 | 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Image/LockedWriteableImage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * LockedWriteableImage.h 3 | * 4 | * Created on: Jul 7, 2020 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_ 9 | #define _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_ 10 | 11 | #include "SEFramework/Image/WriteableImage.h" 12 | 13 | #include "SEImplementation/Measurement/MultithreadedMeasurement.h" 14 | 15 | namespace SourceXtractor { 16 | 17 | template 18 | class LockedWriteableImage: public WriteableImage { 19 | protected: 20 | explicit LockedWriteableImage(std::shared_ptr> img) : m_img{img}, m_lock(img->m_write_mutex) { 21 | } 22 | 23 | public: 24 | template 25 | static std::shared_ptr> create(Args &&... args) { 26 | return std::shared_ptr>(new LockedWriteableImage{std::forward(args)...}); 27 | } 28 | 29 | std::string getRepr() const override { 30 | return "LockedWriteableImage(" + m_img->getRepr() + ")"; 31 | } 32 | 33 | int getWidth() const override { 34 | return m_img->getWidth(); 35 | } 36 | 37 | int getHeight() const override { 38 | return m_img->getHeight(); 39 | } 40 | 41 | void setValue(int x, int y, T value) override { 42 | m_img->setValue(x, y, value); 43 | } 44 | 45 | std::shared_ptr> getChunk(int x, int y, int width, int height) const override { 46 | return m_img->getChunk(x, y, width, height); 47 | } 48 | 49 | private: 50 | std::shared_ptr> m_img; 51 | std::lock_guard m_lock; 52 | }; 53 | 54 | } 55 | 56 | #endif /* _SEIMPLEMENTATION_IMAGE_LOCKEDWRITEABLEIMAGE_H_ */ 57 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Output/FitsOutput.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FitsOutput.h 3 | * 4 | * Created on: Feb 8, 2022 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_OUTPUT_FITSOUTPUT_H_ 9 | #define _SEIMPLEMENTATION_OUTPUT_FITSOUTPUT_H_ 10 | 11 | #include "Table/FitsWriter.h" 12 | 13 | #include "SEImplementation/Output/FlushableOutput.h" 14 | 15 | namespace SourceXtractor { 16 | 17 | class FitsOutput : public FlushableOutput { 18 | 19 | public: 20 | FitsOutput (const std::string& filename, SourceToRowConverter source_to_row, size_t flush_size) 21 | : FlushableOutput(source_to_row, flush_size), m_filename(filename), m_part_nb(0) { 22 | m_fits_writer = std::make_shared(m_filename, true); 23 | m_fits_writer->setHduName("CATALOG"); 24 | } 25 | 26 | void nextPart() override { 27 | m_part_nb++; 28 | std::stringstream hdu_name; 29 | hdu_name << "CATALOG_" << m_part_nb; 30 | 31 | m_fits_writer = std::make_shared(m_filename); 32 | m_fits_writer->setHduName(hdu_name.str()); 33 | } 34 | 35 | protected: 36 | void writeRows(const std::vector& rows) override { 37 | Euclid::Table::Table table {rows}; 38 | m_fits_writer->addData(table); 39 | } 40 | 41 | private: 42 | std::string m_filename; 43 | int m_part_nb; 44 | 45 | std::shared_ptr m_fits_writer; 46 | }; 47 | 48 | } 49 | 50 | #endif /* _SEIMPLEMENTATION_OUTPUT_FITSOUTPUT_H_ */ 51 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Output/FlushableOutput.h: -------------------------------------------------------------------------------- 1 | /* 2 | * FlushableOutput.h 3 | * 4 | * Created on: Feb 8, 2022 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_OUTPUT_FLUSHABLEOUTPUT_H_ 9 | #define _SEIMPLEMENTATION_OUTPUT_FLUSHABLEOUTPUT_H_ 10 | 11 | #include "Table/Row.h" 12 | 13 | #include "SEFramework/Output/Output.h" 14 | 15 | namespace SourceXtractor { 16 | 17 | class FlushableOutput : public Output { 18 | 19 | public: 20 | using SourceToRowConverter = std::function; 21 | 22 | FlushableOutput(SourceToRowConverter source_to_row, size_t flush_size) 23 | : m_source_to_row(source_to_row), m_flush_size(flush_size), m_total_rows_written(0) { 24 | } 25 | 26 | virtual ~FlushableOutput() = default; 27 | 28 | size_t flush() override { 29 | if (!m_rows.empty()) { 30 | writeRows(m_rows); 31 | } 32 | m_total_rows_written += m_rows.size(); 33 | m_rows.clear(); 34 | return m_total_rows_written; 35 | } 36 | 37 | void outputSource(const SourceInterface& source) override { 38 | m_rows.emplace_back(m_source_to_row(source)); 39 | if (m_flush_size > 0 && m_rows.size() % m_flush_size == 0) { 40 | flush(); 41 | } 42 | } 43 | 44 | protected: 45 | virtual void writeRows(const std::vector& rows) = 0; 46 | 47 | private: 48 | SourceToRowConverter m_source_to_row; 49 | size_t m_flush_size; 50 | 51 | std::vector m_rows {}; 52 | size_t m_total_rows_written; 53 | }; 54 | 55 | } 56 | 57 | #endif /* SEIMPLEMENTATION_SEIMPLEMENTATION_OUTPUT_FLUSHABLEOUTPUT_H_ */ 58 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Output/LdacOutput.h: -------------------------------------------------------------------------------- 1 | /* 2 | * LdacOutput.h 3 | * 4 | * Created on: Feb 10, 2022 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_OUTPUT_LDACOUTPUT_H_ 9 | #define _SEIMPLEMENTATION_OUTPUT_LDACOUTPUT_H_ 10 | 11 | #include "Table/FitsWriter.h" 12 | 13 | #include "SEImplementation/Output/FlushableOutput.h" 14 | 15 | namespace SourceXtractor { 16 | 17 | class LdacOutput : public FlushableOutput { 18 | 19 | public: 20 | LdacOutput (const std::string& filename, SourceToRowConverter source_to_row, size_t flush_size) 21 | : FlushableOutput(source_to_row, flush_size), m_filename(filename), m_part_nb(0), m_rms(0), m_gain(0) { 22 | } 23 | 24 | void nextPart() override; 25 | 26 | void outputSource(const SourceInterface& source) override; 27 | 28 | protected: 29 | void writeRows(const std::vector& rows) override { 30 | Euclid::Table::Table table {rows}; 31 | m_fits_writer->addData(table); 32 | } 33 | 34 | private: 35 | void writeHeaders(); 36 | 37 | std::string m_filename; 38 | int m_part_nb; 39 | 40 | std::shared_ptr m_fits_writer; 41 | 42 | std::map m_image_metadata {}; 43 | DetectionImage::PixelType m_rms; 44 | double m_gain; 45 | }; 46 | 47 | } 48 | 49 | #endif /* _SEIMPLEMENTATION_OUTPUT_LDACOUTPUT_H_ */ 50 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/AssocMode/AssocModeDummyTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_ASSOCMODE_ASSOCMODEDUMMYTASK_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_ASSOCMODE_ASSOCMODEDUMMYTASK_H_ 20 | 21 | #include "SEFramework/Task/SourceTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class AssocModeDummyTask : public SourceTask { 26 | public: 27 | /// Destructor 28 | virtual ~AssocModeDummyTask() = default; 29 | 30 | AssocModeDummyTask() = default; 31 | 32 | void computeProperties(SourceInterface& source) const override { 33 | source.setProperty(); 34 | } 35 | }; 36 | 37 | } 38 | 39 | #endif /* _SEIMPLEMENTATION_PLUGIN_ASSOCMODE_ASSOCMODEDUMMYTASK_H_ */ 40 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/AssocMode/AssocModePlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2021 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | 19 | #ifndef _SEIMPLEMENTATION_PLUGIN_ASSOCMODE_ASSOCMODEPLUGIN_H_ 20 | #define _SEIMPLEMENTATION_PLUGIN_ASSOCMODE_ASSOCMODEPLUGIN_H_ 21 | 22 | #include "SEFramework/Plugin/Plugin.h" 23 | 24 | namespace SourceXtractor { 25 | 26 | class AssocModePlugin : public Plugin { 27 | 28 | public: 29 | 30 | /** 31 | * @brief Destructor 32 | */ 33 | virtual ~AssocModePlugin() = default; 34 | 35 | void registerPlugin(PluginAPI& plugin_api) override; 36 | std::string getIdString() const override; 37 | 38 | private: 39 | 40 | }; 41 | 42 | } 43 | 44 | #endif /* _SEIMPLEMENTATION_PLUGIN_ASSOCMODE_ASSOCMODEPLUGIN_H_ */ 45 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/BlendedFlag/BlendedFlag.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * BlendedFlag.h 19 | * 20 | * Created on: Oct 29, 2018 21 | * Author: Alejandro Alvarez Ayllon 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_BLENDEDFLAG_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_BLENDEDFLAG_H_ 26 | 27 | #include "SEFramework/Property/Property.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class BlendedFlag : public Property { 32 | public: 33 | virtual ~BlendedFlag() = default; 34 | 35 | explicit BlendedFlag(bool blended_flag) : m_blended_flag{blended_flag} {} 36 | 37 | bool getBlendedFlag() const { 38 | return m_blended_flag; 39 | } 40 | 41 | private: 42 | bool m_blended_flag; 43 | }; 44 | 45 | } // end SourceXtractor 46 | 47 | #endif // _SEIMPLEMENTATION_PLUGIN_BLENDEDFLAG_H_ 48 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/DetectionFrameImages/DetectionFrameImagesPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_DETECTIONFRAMEIMAGES_DETECTIONFRAMEIMAGESPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_DETECTIONFRAMEIMAGES_DETECTIONFRAMEIMAGESPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class DetectionFrameImagesPlugin : public Plugin { 26 | 27 | public: 28 | 29 | /** 30 | * @brief Destructor 31 | */ 32 | virtual ~DetectionFrameImagesPlugin() = default; 33 | 34 | void registerPlugin(PluginAPI& plugin_api) override; 35 | std::string getIdString() const override; 36 | 37 | private: 38 | 39 | }; /* End of DetectionFrameImagesPlugin class */ 40 | 41 | } 42 | 43 | #endif /* _SEIMPLEMENTATION_PLUGIN_DETECTIONFRAMEIMAGES_DETECTIONFRAMEIMAGESPLUGIN_H_ */ 44 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/DetectionFrameInfo/DetectionFrameInfoPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_DETECTIONFRAMEINFO_DETECTIONFRAMEINFOPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_DETECTIONFRAMEINFO_DETECTIONFRAMEINFOPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class DetectionFrameInfoPlugin : public Plugin { 26 | 27 | public: 28 | 29 | /** 30 | * @brief Destructor 31 | */ 32 | virtual ~DetectionFrameInfoPlugin() = default; 33 | 34 | void registerPlugin(PluginAPI& plugin_api) override; 35 | std::string getIdString() const override; 36 | 37 | private: 38 | 39 | }; /* End of DetectionFrameInfoPlugin class */ 40 | 41 | } 42 | 43 | #endif /* _SEIMPLEMENTATION_PLUGIN_DETECTIONFRAMEINFO_DETECTIONFRAMEINFOPLUGIN_H_ */ 44 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/ErrorEllipse/ErrorEllipsePlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * ErrorEllipsePlugin.h 19 | * 20 | * Created on: Feb 11, 20122 21 | * Author: mkuemmel 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_ERRORELLIPSE_ERRORELLIPSEPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_ERRORELLIPSE_ERRORELLIPSEPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class ErrorEllipsePlugin : public Plugin { 32 | 33 | public: 34 | 35 | /** 36 | * @brief Destructor 37 | */ 38 | virtual ~ErrorEllipsePlugin() = default; 39 | 40 | void registerPlugin(PluginAPI& plugin_api) override; 41 | std::string getIdString() const override; 42 | 43 | private: 44 | 45 | }; 46 | 47 | } 48 | 49 | #endif /* _SEIMPLEMENTATION_PLUGIN_ERRORELLIPSE_ERRORELLIPSEPLUGIN_H_ */ 50 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/ErrorEllipse/ErrorEllipseTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * ErrorEllipseTask.h 19 | * 20 | * Created on: Feb 11 2022 21 | * Author: mkuemmel 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_ERRORELLIPSE_ERRORELLIPSETASK_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_ERRORELLIPSE_ERRORELLIPSETASK_H_ 26 | 27 | #include "SEFramework/Task/SourceTask.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class ErrorEllipseTask : public SourceTask { 32 | 33 | public: 34 | 35 | virtual ~ErrorEllipseTask() = default; 36 | 37 | void computeProperties(SourceInterface& source) const override; 38 | 39 | private: 40 | 41 | }; 42 | 43 | } 44 | 45 | #endif /* _SEIMPLEMENTATION_PLUGIN_ERRORELLIPSE_ERRORELLIPSETASK_H_ */ 46 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/FluxRadius/FluxRadiusPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_FLUXRADIUS_FLUXRADIUSPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_FLUXRADIUS_FLUXRADIUSPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class FluxRadiusPlugin : public Plugin { 26 | public: 27 | virtual ~FluxRadiusPlugin() = default; 28 | 29 | std::string getIdString() const override; 30 | 31 | void registerPlugin(PluginAPI& plugin_api) override; 32 | }; 33 | 34 | } // end of namespace SourceXtractor 35 | 36 | #endif /* _SEIMPLEMENTATION_PLUGIN_FLUXRADIUS_FLUXRADIUSPLUGIN_H_ */ 37 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/GroupInfo/GroupInfoPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * GroupInfoPlugin.h 19 | * 20 | * Created on: 2019 M01 30 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_GROUPINFO_GROUPINFOPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_GROUPINFO_GROUPINFOPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class GroupInfoPlugin : public Plugin { 32 | 33 | public: 34 | 35 | /** 36 | * @brief Destructor 37 | */ 38 | virtual ~GroupInfoPlugin() = default; 39 | 40 | void registerPlugin(PluginAPI& plugin_api) override; 41 | std::string getIdString() const override; 42 | 43 | private: 44 | 45 | }; 46 | 47 | } 48 | 49 | 50 | #endif /* _SEIMPLEMENTATION_PLUGIN_GROUPINFO_GROUPINFOPLUGIN_H_ */ 51 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/GrowthCurve/GrowthCurvePlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVEPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVEPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class GrowthCurvePlugin: public Plugin { 26 | public: 27 | virtual ~GrowthCurvePlugin() = default; 28 | 29 | std::string getIdString() const override; 30 | 31 | void registerPlugin(PluginAPI& plugin_api) override; 32 | 33 | public: 34 | }; 35 | 36 | } // end of namespace SourceXtractor 37 | 38 | #endif /* _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVEPLUGIN_H_ */ 39 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/GrowthCurve/GrowthCurveResampledTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVERESAMPLEDTASK_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVERESAMPLEDTASK_H_ 20 | 21 | #include "SEFramework/Task/SourceTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class GrowthCurveResampledTask : public SourceTask { 26 | public: 27 | virtual ~GrowthCurveResampledTask() = default; 28 | 29 | GrowthCurveResampledTask(const std::vector& instances, size_t nsamples); 30 | 31 | void computeProperties(SourceInterface& source) const override; 32 | 33 | private: 34 | std::vector m_instances; 35 | size_t m_nsamples; 36 | }; 37 | 38 | } // end of namespace SourceXtractor 39 | 40 | #endif /* _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVERESAMPLEDTASK_H_ */ 41 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/GrowthCurve/GrowthCurveTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVETASK_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVETASK_H_ 20 | 21 | #include "SEFramework/Task/SourceTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class GrowthCurveTask : public SourceTask { 26 | public: 27 | virtual ~GrowthCurveTask() = default; 28 | 29 | GrowthCurveTask(unsigned instance, bool use_symmetry); 30 | 31 | void computeProperties(SourceInterface& source) const override; 32 | 33 | private: 34 | unsigned m_instance; 35 | bool m_use_symmetry; 36 | }; 37 | 38 | } // end of namespace SourceXtractor 39 | 40 | #endif /* _SEIMPLEMENTATION_PLUGIN_GROWTHCURVE_GROWTHCURVETASK_H_ */ 41 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/HduNumber/HduNumber.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBER_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBER_H_ 20 | 21 | #include "SEUtils/Types.h" 22 | #include "SEFramework/Property/Property.h" 23 | 24 | namespace SourceXtractor { 25 | 26 | class HduNumber : public Property { 27 | public: 28 | 29 | explicit HduNumber(unsigned int hdu_number) : m_hdu_number(hdu_number) {} 30 | 31 | /** 32 | * @brief Destructor 33 | */ 34 | virtual ~HduNumber() = default; 35 | 36 | unsigned int getHduNumber() const { 37 | return m_hdu_number; 38 | } 39 | 40 | private: 41 | unsigned int m_hdu_number; 42 | }; 43 | 44 | } 45 | 46 | #endif /* _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBER_H_ */ 47 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/HduNumber/HduNumberPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBERPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBERPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class HduNumberPlugin : public Plugin { 26 | 27 | public: 28 | 29 | /** 30 | * @brief Destructor 31 | */ 32 | virtual ~HduNumberPlugin() = default; 33 | 34 | void registerPlugin(PluginAPI& plugin_api) override; 35 | std::string getIdString() const override; 36 | 37 | private: 38 | 39 | }; 40 | 41 | } 42 | 43 | #endif /* _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBERPLUGIN_H_ */ 44 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/HduNumber/HduNumberTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBERTASK_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBERTASK_H_ 20 | 21 | #include "SEFramework/Task/SourceTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | /** 26 | * @class HduNumberTask 27 | * @brief Task to produce the HduNumber Property 28 | * 29 | */ 30 | 31 | class HduNumberTask : public SourceTask { 32 | public: 33 | 34 | /** 35 | * @brief Destructor 36 | */ 37 | virtual ~HduNumberTask() = default; 38 | HduNumberTask() {} 39 | 40 | void computeProperties(SourceInterface& source) const override; 41 | 42 | private: 43 | 44 | }; /* End of HduNumberTask class */ 45 | 46 | 47 | } /* namespace SourceXtractor */ 48 | 49 | #endif /* _SEIMPLEMENTATION_PLUGIN_HDUNUMBER_HDUNUMBERTASK_H_ */ 50 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/IsophotalFlux/IsophotalFluxPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file SEImplementation/IsophotalFluxPlugin.h 19 | * @date 09/28/16 20 | * @author mschefer 21 | */ 22 | 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_ISOPHOTALFLUXPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_ISOPHOTALFLUXPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class IsophotalFluxPlugin : public Plugin { 32 | 33 | public: 34 | 35 | /** 36 | * @brief Destructor 37 | */ 38 | virtual ~IsophotalFluxPlugin() = default; 39 | 40 | void registerPlugin(PluginAPI& plugin_api) override; 41 | std::string getIdString() const override; 42 | 43 | private: 44 | 45 | }; 46 | 47 | } 48 | 49 | 50 | #endif /* _SEIMPLEMENTATION_PLUGIN_ISOPHOTALFLUX_H_ */ 51 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/Jacobian/JacobianPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * JacobianPlugin.h 19 | * 20 | * Created on: Oct 08, 2018 21 | * Author: Alejandro Alvarez Ayllon 22 | */ 23 | 24 | 25 | #ifndef _SEIMPLEMENTATION_PLUGIN_JACOBIAN_JACOBIANPLUGIN_H_ 26 | #define _SEIMPLEMENTATION_PLUGIN_JACOBIAN_JACOBIANPLUGIN_H_ 27 | 28 | #include "SEFramework/Plugin/Plugin.h" 29 | 30 | namespace SourceXtractor { 31 | 32 | class JacobianPlugin: public Plugin { 33 | public: 34 | virtual ~JacobianPlugin() = default; 35 | 36 | std::string getIdString() const override; 37 | void registerPlugin(PluginAPI& plugin_api) override; 38 | }; 39 | 40 | } // end SourceXtractor 41 | 42 | #endif // _SEIMPLEMENTATION_PLUGIN_JACOBIAN_JACOBIANPLUGIN_H_ 43 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/Jacobian/JacobianTaskFactory.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * JacobianTaskFactory.h 19 | * 20 | * Created on: Oct 08, 2018 21 | * Author: Alejandro Alvarez Ayllon 22 | */ 23 | 24 | 25 | #ifndef _SEIMPLEMENTATION_PLUGIN_JACOBIAN_JACOBIANTASKFACTORY_H_ 26 | #define _SEIMPLEMENTATION_PLUGIN_JACOBIAN_JACOBIANTASKFACTORY_H_ 27 | 28 | #include "SEFramework/Task/TaskFactory.h" 29 | 30 | namespace SourceXtractor { 31 | 32 | class JacobianTaskFactory: public TaskFactory { 33 | public: 34 | virtual ~JacobianTaskFactory() = default; 35 | 36 | std::shared_ptr createTask(const PropertyId& property_id) const override; 37 | }; 38 | 39 | } // end SourceXtractor 40 | 41 | #endif // _SEIMPLEMENTATION_PLUGIN_JACOBIAN_JACOBIANTASKFACTORY_H_ 42 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/KronRadius/KronRadiusPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * AutoPhotometryPlugin.h 19 | * 20 | * Created on: Jul 18, 2018 21 | * Author: mkuemmel@usm.lmu.de 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class KronRadiusPlugin : public Plugin { 32 | 33 | public: 34 | 35 | /** 36 | * @brief Destructor 37 | */ 38 | virtual ~KronRadiusPlugin() = default; 39 | 40 | void registerPlugin(PluginAPI& plugin_api) override; 41 | std::string getIdString() const override; 42 | 43 | private: 44 | 45 | }; 46 | 47 | } 48 | 49 | 50 | #endif /* _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSPLUGIN_H_ */ 51 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/KronRadius/KronRadiusTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * AperturePhotometryTask.h 19 | * 20 | * Created on: Sep 22, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSTASK_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSTASK_H_ 26 | 27 | //#include 28 | 29 | #include "SEUtils/PixelCoordinate.h" 30 | #include "SEFramework/Task/SourceTask.h" 31 | 32 | namespace SourceXtractor { 33 | 34 | class KronRadiusTask : public SourceTask { 35 | public: 36 | 37 | /// Destructor 38 | virtual ~KronRadiusTask() = default; 39 | 40 | KronRadiusTask() {} 41 | 42 | void computeProperties(SourceInterface& source) const override; 43 | 44 | }; 45 | } 46 | 47 | #endif /* _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSTASK_H_ */ 48 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/KronRadius/KronRadiusTaskFactory.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * KronRadiusTaskFactory.h 19 | * 20 | * Created on: Sep 12, 2018 21 | * Author: mkuemmel@usm.lmu.de 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSTASKFACTORY_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSTASKFACTORY_H_ 26 | 27 | #include "SEFramework/Task/TaskFactory.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class KronRadiusTaskFactory : public TaskFactory { 32 | public: 33 | KronRadiusTaskFactory() {}; 34 | 35 | /// Destructor 36 | virtual ~KronRadiusTaskFactory() = default; 37 | 38 | // TaskFactory implementation 39 | std::shared_ptr createTask(const PropertyId& property_id) const override; 40 | }; 41 | 42 | } 43 | 44 | #endif /* _SEIMPLEMENTATION_PLUGIN_KRONRADIUS_KRONRADIUSTASKFACTORY_H_ */ 45 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/MeasurementFrame/MeasurementFramePlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * MeasurementFramePlugin.h 19 | * 20 | * Created on: Nov 3, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef SEIMPLEMENTATION_SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAME_MEASUREMENTFRAMEPLUGIN_H_ 25 | #define SEIMPLEMENTATION_SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAME_MEASUREMENTFRAMEPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class MeasurementFramePlugin : public Plugin { 32 | 33 | public: 34 | 35 | /** 36 | * @brief Destructor 37 | */ 38 | virtual ~MeasurementFramePlugin() = default; 39 | 40 | void registerPlugin(PluginAPI& plugin_api) override; 41 | std::string getIdString() const override; 42 | 43 | private: 44 | 45 | }; 46 | 47 | } 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/MeasurementFrameInfo/MeasurementFrameInfoPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAMEINFO_MEASUREMENTFRAMEINFOPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAMEINFO_MEASUREMENTFRAMEINFOPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class MeasurementFrameInfoPlugin : public Plugin { 26 | 27 | public: 28 | 29 | /** 30 | * @brief Destructor 31 | */ 32 | virtual ~MeasurementFrameInfoPlugin() = default; 33 | 34 | void registerPlugin(PluginAPI& plugin_api) override; 35 | std::string getIdString() const override; 36 | 37 | private: 38 | 39 | }; /* End of MeasurementFrameInfoPlugin class */ 40 | 41 | } 42 | 43 | #endif /* _SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAMEINFO_MEASUREMENTFRAMEINFOPLUGIN_H_ */ 44 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/MeasurementFrameRectangle/MeasurementFrameRectangleTaskNoDetect.h: -------------------------------------------------------------------------------- 1 | /* 2 | * MeasurementFrameRectangleTaskNoDetect.h 3 | * 4 | * Created on: May 9, 2023 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAMERECTANGLE_MEASUREMENTFRAMERECTANGLETASKNODETECT_H_ 9 | #define _SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAMERECTANGLE_MEASUREMENTFRAMERECTANGLETASKNODETECT_H_ 10 | 11 | 12 | #include "SEFramework/Task/SourceTask.h" 13 | 14 | namespace SourceXtractor { 15 | 16 | class MeasurementFrameRectangleTaskNoDetect : public SourceTask { 17 | public: 18 | 19 | virtual ~MeasurementFrameRectangleTaskNoDetect() = default; 20 | 21 | explicit MeasurementFrameRectangleTaskNoDetect(unsigned instance): m_instance{instance} {} 22 | 23 | void computeProperties(SourceInterface& source) const override; 24 | 25 | private: 26 | unsigned m_instance; 27 | }; 28 | 29 | } // end SourceXtractor 30 | 31 | 32 | #endif /* _SEIMPLEMENTATION_PLUGIN_MEASUREMENTFRAMERECTANGLE_MEASUREMENTFRAMERECTANGLETASKNODETECT_H_ */ 33 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/MoffatModelFitting/MoffatModelFittingPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * MoffatModelFittingPlugin.h 19 | * 20 | * Created on: May 2, 2017 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_MOFFATMODELFITTING_MOFFATMODELFITTINGPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_MOFFATMODELFITTING_MOFFATMODELFITTINGPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class MoffatModelFittingPlugin : public Plugin { 32 | 33 | public: 34 | 35 | virtual ~MoffatModelFittingPlugin() = default; 36 | 37 | void registerPlugin(PluginAPI& plugin_api) override; 38 | std::string getIdString() const override; 39 | 40 | private: 41 | 42 | }; 43 | 44 | } 45 | 46 | #endif /* _SEIMPLEMENTATION_PLUGIN_MOFFATMODELFITTING_MOFFATMODELFITTINGPLUGIN_H_ */ 47 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/PeakValue/PeakValuePlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * PeakValuePlugin.h 19 | * 20 | * Created on: Feb 9, 2017 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_PEAKVALUE_PEAKVALUEPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_PEAKVALUE_PEAKVALUEPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class PeakValuePlugin : public Plugin { 32 | 33 | public: 34 | 35 | virtual ~PeakValuePlugin() = default; 36 | 37 | void registerPlugin(PluginAPI& plugin_api) override; 38 | std::string getIdString() const override; 39 | 40 | private: 41 | 42 | }; 43 | 44 | } 45 | 46 | 47 | #endif /* _SEIMPLEMENTATION_PLUGIN_PEAKVALUE_PEAKVALUEPLUGIN_H_ */ 48 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/PixelCentroid/PixelCentroidPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * PixelCentroidPlugin.h 19 | * 20 | * Created on: Aug 5, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_PIXELCENTROIDPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_PIXELCENTROIDPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class PixelCentroidPlugin : public Plugin { 32 | 33 | public: 34 | 35 | /** 36 | * @brief Destructor 37 | */ 38 | virtual ~PixelCentroidPlugin() = default; 39 | 40 | void registerPlugin(PluginAPI& plugin_api) override; 41 | std::string getIdString() const override; 42 | 43 | private: 44 | 45 | }; 46 | 47 | } 48 | 49 | 50 | #endif /* _SEIMPLEMENTATION_PLUGIN_PIXELCENTROIDPLUGIN_H_ */ 51 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/Psf/PsfPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * PsfPlugin.h 19 | * 20 | * Created on: Jun 25, 2018 21 | * Author: Alejandro Álvarez Ayllón 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_PSF_PSFPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_PSF_PSFPLUGIN_H_ 26 | 27 | #include 28 | #include "PsfTaskFactory.h" 29 | #include "PsfProperty.h" 30 | 31 | namespace SourceXtractor { 32 | 33 | class PsfPlugin: public Plugin { 34 | public: 35 | virtual ~PsfPlugin() = default; 36 | 37 | void registerPlugin(PluginAPI& plugin_api) override; 38 | 39 | std::string getIdString() const override; 40 | }; 41 | 42 | } // end SourceXtractor 43 | 44 | #endif //_SEIMPLEMENTATION_PLUGIN_PSF_PSFPLUGIN_H_ 45 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/ReferenceCoordinates/ReferenceCoordinatesPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_REFERENCECOORDINATES_REFERENCECOORDINATESPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_REFERENCECOORDINATES_REFERENCECOORDINATESPLUGIN_H_ 20 | 21 | #include "SEFramework/Plugin/Plugin.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class ReferenceCoordinatesPlugin : public Plugin { 26 | 27 | public: 28 | 29 | /** 30 | * @brief Destructor 31 | */ 32 | virtual ~ReferenceCoordinatesPlugin() = default; 33 | 34 | void registerPlugin(PluginAPI& plugin_api) override; 35 | std::string getIdString() const override; 36 | 37 | private: 38 | 39 | }; /* End of ReferenceCoordinatesPlugin class */ 40 | 41 | } 42 | 43 | #endif /* _SEIMPLEMENTATION_PLUGIN_REFERENCECOORDINATES_REFERENCECOORDINATESPLUGIN_H_ */ 44 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/SNRRatio/SNRRatio.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | /** 19 | * @file SNRRatio.h 20 | * 21 | * @date Jan 29, 2020 22 | * @author mkuemmel@usm.lmu.de 23 | */ 24 | 25 | #ifndef _SEIMPLEMENTATION_PLUGIN_SNRRATIO_H_ 26 | #define _SEIMPLEMENTATION_PLUGIN_SNRRATIO_H_ 27 | 28 | #include "SEUtils/Types.h" 29 | #include "SEFramework/Property/Property.h" 30 | 31 | namespace SourceXtractor { 32 | class SNRRatio : public Property { 33 | public: 34 | virtual ~SNRRatio() = default; 35 | 36 | explicit SNRRatio(SeFloat snrratio) : m_snrratio(snrratio) {} 37 | 38 | SeFloat getSNRRatio() const { 39 | return m_snrratio; 40 | } 41 | 42 | private: 43 | SeFloat m_snrratio; 44 | }; // end of SNRRatio class 45 | } // namespace SourceXtractor 46 | 47 | #endif /* _SEIMPLEMENTATION_PLUGIN_SNRRATIO_H_*/ 48 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/ShapeParameters/ShapeParametersTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * ShapeParametersTask.h 19 | * 20 | * Created on: Jan 27, 2017 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_SHAPEPARAMETERS_SHAPEPARAMETERSTASK_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_SHAPEPARAMETERS_SHAPEPARAMETERSTASK_H_ 26 | 27 | #include "SEFramework/Task/SourceTask.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class ShapeParametersTask : public SourceTask { 32 | 33 | public: 34 | 35 | virtual ~ShapeParametersTask() = default; 36 | 37 | void computeProperties(SourceInterface& source) const override; 38 | 39 | private: 40 | 41 | }; 42 | 43 | } 44 | 45 | #endif /* _SEIMPLEMENTATION_PLUGIN_SHAPEPARAMETERS_SHAPEPARAMETERSTASK_H_ */ 46 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/SourcePsf/SourcePsfPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_SOURCEPSF_SOURCEPSFPLUGIN_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_SOURCEPSF_SOURCEPSFPLUGIN_H_ 20 | 21 | #include 22 | #include "SourcePsfProperty.h" 23 | #include "SourcePsfTaskFactory.h" 24 | 25 | namespace SourceXtractor { 26 | 27 | class SourcePsfPlugin: public Plugin { 28 | public: 29 | virtual ~SourcePsfPlugin() = default; 30 | 31 | void registerPlugin(PluginAPI& plugin_api) override; 32 | 33 | std::string getIdString() const override; 34 | }; 35 | 36 | } // end SourceXtractor 37 | 38 | #endif //_SEIMPLEMENTATION_PLUGIN_SOURCEPSF_SOURCEPSFPLUGIN_H_ 39 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/Vignet/VignetArraySourceTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEIMPLEMENTATION_PLUGIN_VIGNETARRAYSOURCETASK_H_ 19 | #define _SEIMPLEMENTATION_PLUGIN_VIGNETARRAYSOURCETASK_H_ 20 | 21 | #include "SEFramework/Task/SourceTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | class VignetArraySourceTask: public SourceTask { 26 | public: 27 | virtual ~VignetArraySourceTask() = default; 28 | 29 | explicit VignetArraySourceTask(const std::vector images); 30 | 31 | void computeProperties(SourceInterface& source) const override; 32 | 33 | private: 34 | std::vector m_images; 35 | }; 36 | 37 | } // end of namespace SourceXtractor 38 | 39 | #endif /* _SEIMPLEMENTATION_PLUGIN_VIGNETARRAYSOURCETASK_H_ */ 40 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/WorldCentroid/WorldCentroidPlugin.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * WorldCentroidPlugin.h 19 | * 20 | * Created on: Nov 21, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_WORLDCENTROID_WORLDCENTROIDPLUGIN_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_WORLDCENTROID_WORLDCENTROIDPLUGIN_H_ 26 | 27 | #include "SEFramework/Plugin/Plugin.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class WorldCentroidPlugin : public Plugin { 32 | 33 | public: 34 | 35 | virtual ~WorldCentroidPlugin() = default; 36 | 37 | void registerPlugin(PluginAPI& plugin_api) override; 38 | std::string getIdString() const override; 39 | 40 | private: 41 | 42 | }; 43 | 44 | } 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/WorldCentroid/WorldCentroidTask.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * WorldCentroidTask.h 19 | * 20 | * Created on: Nov 21, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_WORLDCENTROID_WORLDCENTROIDTASK_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_WORLDCENTROID_WORLDCENTROIDTASK_H_ 26 | 27 | #include "SEFramework/Task/SourceTask.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class WorldCentroidTask : public SourceTask { 32 | 33 | public: 34 | 35 | virtual ~WorldCentroidTask() = default; 36 | 37 | void computeProperties(SourceInterface& source) const override; 38 | 39 | private: 40 | 41 | }; 42 | 43 | } 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Plugin/WorldCentroid/WorldCentroidTaskFactory.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * WorldCentroidTaskFactory.h 19 | * 20 | * Created on: Nov 21, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PLUGIN_WORLDCENTROID_WORLDCENTROIDTASKFACTORY_H_ 25 | #define _SEIMPLEMENTATION_PLUGIN_WORLDCENTROID_WORLDCENTROIDTASKFACTORY_H_ 26 | 27 | #include "SEFramework/Task/TaskFactory.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | class WorldCentroidTaskFactory : public TaskFactory { 32 | public: 33 | WorldCentroidTaskFactory() {} 34 | 35 | /// Destructor 36 | virtual ~WorldCentroidTaskFactory() = default; 37 | 38 | // TaskFactory implementation 39 | std::shared_ptr createTask(const PropertyId& property_id) const override; 40 | }; 41 | 42 | 43 | } 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/PythonConfig/PyAperture.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * @file PyAperture.h 19 | * @author Nikolaos Apostolakos 20 | */ 21 | 22 | #ifndef _SEIMPLEMENTATION_PYAPERTURE_H 23 | #define _SEIMPLEMENTATION_PYAPERTURE_H 24 | 25 | #include 26 | #include 27 | #include "SEImplementation/PythonConfig/PyId.h" 28 | 29 | namespace SourceXtractor { 30 | 31 | 32 | class PyAperture : public PyId { 33 | public: 34 | explicit PyAperture(const boost::python::list &py_apertures); 35 | 36 | std::vector apertures; 37 | 38 | std::string toString() const; 39 | }; 40 | 41 | } 42 | 43 | #endif // _SEIMPLEMENTATION_PYMEASUREMENTIMAGE_H 44 | 45 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/PythonConfig/PyId.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * @file PyId.h 19 | * @author Alejandro Alvarez Ayllon 20 | */ 21 | 22 | #ifndef _SEIMPLEMENTATION_PYID_H 23 | #define _SEIMPLEMENTATION_PYID_H 24 | 25 | #include 26 | #include 27 | 28 | namespace SourceXtractor { 29 | 30 | class PyId { 31 | public: 32 | PyId(); 33 | virtual ~PyId(); 34 | 35 | const int id; 36 | 37 | private: 38 | static int s_next_col_id; 39 | }; 40 | 41 | } 42 | 43 | #endif // _SEIMPLEMENTATION_PYID_H 44 | 45 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/PythonConfig/PythonModule.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * PythonModule.h 19 | * 20 | * Created on: 2019 M03 15 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEIMPLEMENTATION_PYTHONCONFIG_PYTHONMODULE_H_ 25 | #define _SEIMPLEMENTATION_PYTHONCONFIG_PYTHONMODULE_H_ 26 | 27 | #include 28 | 29 | namespace SourceXtractor { 30 | 31 | } 32 | 33 | #endif /* _SEIMPLEMENTATION_PYTHONCONFIG_PYTHONMODULE_H_ */ 34 | -------------------------------------------------------------------------------- /SEImplementation/SEImplementation/Segmentation/AssocSegmentation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * AssocSegmentation.h 3 | * 4 | * Created on: Sep 6, 2022 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEIMPLEMENTATION_SEGMENTATION_ASSOCSEGMENTATION_H_ 9 | #define _SEIMPLEMENTATION_SEGMENTATION_ASSOCSEGMENTATION_H_ 10 | 11 | #include "SEUtils/PixelCoordinate.h" 12 | 13 | #include "SEFramework/Source/SourceFactory.h" 14 | #include "SEFramework/Pipeline/Segmentation.h" 15 | 16 | #include "SEImplementation/Plugin/AssocMode/AssocModeConfig.h" 17 | 18 | namespace SourceXtractor { 19 | 20 | 21 | /** 22 | * @class AssocSegmentation 23 | * @brief Implements a Segmentation based on CNN 24 | */ 25 | class AssocSegmentation : public Segmentation::Labelling { 26 | public: 27 | 28 | virtual ~AssocSegmentation() = default; 29 | 30 | AssocSegmentation(std::shared_ptr source_factory, std::vector source_list) 31 | : m_source_factory(source_factory), m_source_list(source_list) { 32 | assert(source_factory != nullptr); 33 | } 34 | 35 | void labelImage(Segmentation::LabellingListener& listener, std::shared_ptr frame) override; 36 | 37 | private: 38 | std::shared_ptr m_source_factory; 39 | std::vector m_source_list; 40 | }; 41 | 42 | } 43 | 44 | #endif /* _SEIMPLEMENTATION_SEGMENTATION_ASSOCSEGMENTATION_H_ */ 45 | -------------------------------------------------------------------------------- /SEImplementation/python/sourcextractor/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 4 | # 5 | # This library is free software; you can redistribute it and/or modify it under 6 | # the terms of the GNU Lesser General Public License as published by the Free 7 | # Software Foundation; either version 3.0 of the License, or (at your option) 8 | # any later version. 9 | # 10 | # This library is distributed in the hope that it will be useful, but WITHOUT 11 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 12 | # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 13 | # details. 14 | # 15 | # You should have received a copy of the GNU Lesser General Public License 16 | # along with this library; if not, write to the Free Software Foundation, Inc., 17 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | from _SourceXtractorPy import Flags 19 | 20 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Common/OnnxCommon.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include 19 | 20 | #include "SEImplementation/Common/OnnxCommon.h" 21 | 22 | namespace SourceXtractor { 23 | 24 | // There can be only one! 25 | Ort::Env ORT_ENV; 26 | 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Grouping/AssocCriteria.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Grouping/AssocCriteria.h" 19 | 20 | #include "SEImplementation/Plugin/AssocMode/AssocMode.h" 21 | 22 | namespace SourceXtractor { 23 | 24 | bool AssocCriteria::shouldGroup(const SourceInterface& first, const SourceInterface& second) const { 25 | auto first_id = first.getProperty().getGroupId(); 26 | auto second_id = second.getProperty().getGroupId(); 27 | return first_id != 0 && first_id == second_id; 28 | } 29 | 30 | } // SourceXtractor namespace 31 | 32 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Grouping/LineSelectionCriteria.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | 19 | /* 20 | * LineSelectionCriteria.cpp 21 | * 22 | * Created on: Nov 21, 2019 23 | * Author: mschefer 24 | */ 25 | 26 | 27 | #include "SEImplementation/Plugin/PixelCentroid/PixelCentroid.h" 28 | 29 | #include "SEImplementation/Grouping/LineSelectionCriteria.h" 30 | 31 | namespace SourceXtractor { 32 | 33 | bool LineSelectionCriteria::mustBeProcessed(const SourceInterface& source) const { 34 | auto& centroid = source.getProperty(); 35 | return centroid.getCentroidY() < m_line_number; 36 | } 37 | 38 | } // SourceXtractor namespace 39 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Grouping/SplitSourcesCriteria.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * SplitSourcesCriteria.cpp 19 | * 20 | * Created on: Apr 26, 2017 21 | * Author: mschefer 22 | */ 23 | 24 | #include "SEImplementation/Grouping/SplitSourcesCriteria.h" 25 | #include "SEImplementation/Property/SourceId.h" 26 | 27 | namespace SourceXtractor { 28 | 29 | bool SplitSourcesCriteria::shouldGroup(const SourceInterface& first, const SourceInterface& second) const { 30 | auto first_id = first.getProperty().getDetectionId(); 31 | auto second_id = second.getProperty().getDetectionId(); 32 | 33 | return first_id == second_id; 34 | } 35 | 36 | } // SourceXtractor namespace 37 | 38 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/AssocMode/AssocModePartitionStep.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2021 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Plugin/AssocMode/AssocMode.h" 19 | #include "SEImplementation/Plugin/AssocMode/AssocModePartitionStep.h" 20 | 21 | namespace SourceXtractor { 22 | 23 | AssocModePartitionStep::AssocModePartitionStep(bool match_required) : m_match_required(match_required) {} 24 | 25 | std::vector> 26 | AssocModePartitionStep::partition(std::unique_ptr source) const { 27 | std::vector> sources; 28 | if (source->getProperty().getMatch() ^ !m_match_required) { 29 | sources.emplace_back(std::move(source)); 30 | } 31 | return sources; 32 | } 33 | 34 | } // SourceXtractor namespace 35 | 36 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/AutoPhotometry/AutoPhotometryArrayTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * AutoPhotometryArrayTask.cpp 19 | * 20 | * Created on: Nov 23, 2018 21 | * Author: Alejandro Alvarez Ayllon 22 | */ 23 | 24 | #include "SEImplementation/Plugin/AutoPhotometry/AutoPhotometryArray.h" 25 | #include "SEImplementation/Plugin/AutoPhotometry/AutoPhotometryArrayTask.h" 26 | 27 | 28 | namespace SourceXtractor { 29 | 30 | 31 | void AutoPhotometryArrayTask::computeProperties(SourceXtractor::SourceInterface &source) const { 32 | std::vector measurements; 33 | for (auto img : m_images) { 34 | measurements.emplace_back(source.getProperty(img)); 35 | } 36 | source.setProperty(measurements); 37 | } 38 | 39 | 40 | } // end SourceXtractor 41 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/BlendedFlag/BlendedFlagPlugin.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * BlendedFlagPlugin.cpp 19 | * 20 | * Created on: Oct 29, 2018 21 | * Author: Alejandro Alvarez Ayllon 22 | */ 23 | 24 | #include "SEFramework/Plugin/StaticPlugin.h" 25 | #include "SEImplementation/Plugin/BlendedFlag/BlendedFlagPlugin.h" 26 | 27 | namespace SourceXtractor { 28 | 29 | static StaticPlugin blended_plugin; 30 | 31 | } // end SourceXtractor 32 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/CoreThresholdPartition/CoreThresholdPartitionPlugin.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file CoreThresholdPartitionPlugin.cpp 19 | * 20 | * @date May 27, 2019 21 | * @author mkuemmel@usm.lmu.de 22 | */ 23 | 24 | #include "SEFramework/Plugin/StaticPlugin.h" 25 | #include "SEImplementation/Plugin/CoreThresholdPartition/CoreThresholdPartitionPlugin.h" 26 | 27 | namespace SourceXtractor { 28 | static StaticPlugin n_core_pixels; 29 | } 30 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/DetectionFrameCoordinates/DetectionFrameCoordinatesTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEFramework/Property/DetectionFrame.h" 19 | 20 | 21 | #include "SEImplementation/Plugin/DetectionFrameCoordinates/DetectionFrameCoordinates.h" 22 | #include "SEImplementation/Plugin/DetectionFrameCoordinates/DetectionFrameCoordinatesTask.h" 23 | 24 | namespace SourceXtractor { 25 | 26 | void DetectionFrameCoordinatesTask::computeProperties(SourceInterface& source) const { 27 | auto coordinate_system = source.getProperty().getFrame()->getCoordinateSystem(); 28 | source.setProperty(coordinate_system); 29 | } 30 | 31 | } // SEImplementation namespace 32 | 33 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/DetectionFrameImages/DetectionFrameImagesTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEFramework/Property/DetectionFrame.h" 19 | #include "SEImplementation/Plugin/DetectionFrameImages/DetectionFrameImages.h" 20 | #include "SEImplementation/Plugin/DetectionFrameImages/DetectionFrameImagesTask.h" 21 | 22 | namespace SourceXtractor { 23 | 24 | void DetectionFrameImagesTask::computeProperties(SourceInterface& source) const { 25 | auto frame = source.getProperty().getFrame(); 26 | auto width = frame->getOriginalImage()->getWidth(); 27 | auto height = frame->getOriginalImage()->getHeight(); 28 | 29 | source.setProperty(frame, width, height); 30 | } 31 | 32 | } // SEImplementation namespace 33 | 34 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/DetectionFrameImages/DetectionFrameImagesTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | 19 | #include "SEImplementation/Plugin/DetectionFrameImages/DetectionFrameImages.h" 20 | #include "SEImplementation/Plugin/DetectionFrameImages/DetectionFrameImagesTask.h" 21 | #include "SEImplementation/Plugin/DetectionFrameImages/DetectionFrameImagesTaskFactory.h" 22 | 23 | using namespace Euclid::Configuration; 24 | 25 | namespace SourceXtractor { 26 | 27 | std::shared_ptr DetectionFrameImagesTaskFactory::createTask(const PropertyId& property_id) const { 28 | 29 | if (property_id == PropertyId::create()) { 30 | return std::make_shared(); 31 | } else { 32 | return nullptr; 33 | } 34 | } 35 | 36 | } // SEImplementation namespace 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/DetectionFrameInfo/DetectionFrameInfoTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | 19 | #include "SEImplementation/Plugin/DetectionFrameInfo/DetectionFrameInfo.h" 20 | #include "SEImplementation/Plugin/DetectionFrameInfo/DetectionFrameInfoTask.h" 21 | #include "SEImplementation/Plugin/DetectionFrameInfo/DetectionFrameInfoTaskFactory.h" 22 | 23 | using namespace Euclid::Configuration; 24 | 25 | namespace SourceXtractor { 26 | 27 | std::shared_ptr DetectionFrameInfoTaskFactory::createTask(const PropertyId& property_id) const { 28 | 29 | if (property_id == PropertyId::create()) { 30 | return std::make_shared(); 31 | } else { 32 | return nullptr; 33 | } 34 | } 35 | 36 | } // SEImplementation namespace 37 | 38 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/ErrorEllipse/ErrorEllipseTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * ErrorEllipseTaskFactory.cpp 19 | * 20 | * Created on: Feb 11 2022 21 | * Author: mkuemmel 22 | */ 23 | 24 | #include "SEImplementation/Plugin/ErrorEllipse/ErrorEllipse.h" 25 | #include "SEImplementation/Plugin/ErrorEllipse/ErrorEllipseTask.h" 26 | #include "SEImplementation/Plugin/ErrorEllipse/ErrorEllipseTaskFactory.h" 27 | 28 | namespace SourceXtractor { 29 | 30 | std::shared_ptr ErrorEllipseTaskFactory::createTask(const PropertyId& property_id) const { 31 | if (property_id == PropertyId::create()) { 32 | return std::make_shared(); 33 | } else { 34 | return nullptr; 35 | } 36 | } 37 | 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/GroupInfo/GroupInfoTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * GroupInfoTask.cpp 19 | * 20 | * Created on: 2019 M01 29 21 | * Author: mschefer 22 | */ 23 | 24 | 25 | #include "SEImplementation/Plugin/GroupInfo/GroupInfo.h" 26 | #include "SEImplementation/Plugin/GroupInfo/GroupInfoTask.h" 27 | #include 28 | #include 29 | 30 | namespace SourceXtractor { 31 | 32 | void GroupInfoTask::computeProperties(SourceGroupInterface& group) const { 33 | static std::atomic group_id(1); 34 | group.setProperty(group_id++); 35 | } 36 | 37 | } 38 | 39 | 40 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/HduNumber/HduNumberTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Plugin/DetectionFrameInfo/DetectionFrameInfo.h" 19 | 20 | #include "SEImplementation/Plugin/HduNumber/HduNumber.h" 21 | #include "SEImplementation/Plugin/HduNumber/HduNumberTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | void HduNumberTask::computeProperties(SourceInterface& source) const { 26 | const auto& detection_frame_info = source.getProperty(); 27 | 28 | source.setProperty(detection_frame_info.getHduIndex()); 29 | } 30 | 31 | } 32 | 33 | 34 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/HduNumber/HduNumberTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Plugin/HduNumber/HduNumber.h" 19 | #include "SEImplementation/Plugin/HduNumber/HduNumberTask.h" 20 | #include "SEImplementation/Plugin/HduNumber/HduNumberTaskFactory.h" 21 | 22 | namespace SourceXtractor { 23 | 24 | void HduNumberTaskFactory::reportConfigDependencies(Euclid::Configuration::ConfigManager&) const { 25 | } 26 | 27 | void HduNumberTaskFactory::configure(Euclid::Configuration::ConfigManager&) { 28 | } 29 | 30 | std::shared_ptr HduNumberTaskFactory::createTask(const PropertyId& property_id) const { 31 | if (property_id == PropertyId::create()) { 32 | return std::make_shared(); 33 | } else { 34 | return nullptr; 35 | } 36 | } 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/MeasurementFrameCoordinates/MeasurementFrameCoordinatesTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Plugin/MeasurementFrame/MeasurementFrame.h" 19 | 20 | #include "SEImplementation/Plugin/MeasurementFrameCoordinates/MeasurementFrameCoordinates.h" 21 | #include "SEImplementation/Plugin/MeasurementFrameCoordinates/MeasurementFrameCoordinatesTask.h" 22 | 23 | namespace SourceXtractor { 24 | 25 | void MeasurementFrameCoordinatesTask::computeProperties(SourceInterface& source) const { 26 | auto coordinate_system = source.getProperty(m_instance).getFrame()->getCoordinateSystem(); 27 | source.setIndexedProperty(m_instance, coordinate_system); 28 | } 29 | 30 | } // SEImplementation namespace 31 | 32 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/MeasurementFrameImages/MeasurementFrameImagesTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Plugin/MeasurementFrame/MeasurementFrame.h" 19 | #include "SEImplementation/Plugin/MeasurementFrameImages/MeasurementFrameImages.h" 20 | #include "SEImplementation/Plugin/MeasurementFrameImages/MeasurementFrameImagesTask.h" 21 | 22 | namespace SourceXtractor { 23 | 24 | void MeasurementFrameImagesTask::computeProperties(SourceInterface& source) const { 25 | auto frame = source.getProperty(m_instance).getFrame(); 26 | auto width = frame->getOriginalImage()->getWidth(); 27 | auto height = frame->getOriginalImage()->getHeight(); 28 | 29 | source.setIndexedProperty(m_instance, frame, width, height); 30 | } 31 | 32 | } // SEImplementation namespace 33 | 34 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/MeasurementFrameInfo/MeasurementFrameInfoTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | 19 | #include "SEImplementation/Plugin/MeasurementFrameInfo/MeasurementFrameInfo.h" 20 | #include "SEImplementation/Plugin/MeasurementFrameInfo/MeasurementFrameInfoTask.h" 21 | #include "SEImplementation/Plugin/MeasurementFrameInfo/MeasurementFrameInfoTaskFactory.h" 22 | 23 | using namespace Euclid::Configuration; 24 | 25 | namespace SourceXtractor { 26 | 27 | std::shared_ptr MeasurementFrameInfoTaskFactory::createTask(const PropertyId& property_id) const { 28 | if (property_id.getTypeId() == PropertyId::create().getTypeId()) { 29 | return std::make_shared(property_id.getIndex()); 30 | } else { 31 | return nullptr; 32 | } 33 | } 34 | 35 | } // SEImplementation namespace 36 | 37 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/PixelCentroid/PixelCentroidTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file src/lib/Task/PixelCentroidTaskFactory.cpp 19 | * @date 06/16/16 20 | * @author mschefer 21 | */ 22 | 23 | #include "SEImplementation/Plugin/PixelCentroid/PixelCentroid.h" 24 | #include "SEImplementation/Plugin/PixelCentroid/PixelCentroidTask.h" 25 | #include "SEImplementation/Plugin/PixelCentroid/PixelCentroidTaskFactory.h" 26 | 27 | namespace SourceXtractor { 28 | 29 | std::shared_ptr PixelCentroidTaskFactory::createTask(const PropertyId& property_id) const { 30 | if (property_id == PropertyId::create()) { 31 | return std::make_shared(); 32 | } else { 33 | return nullptr; 34 | } 35 | } 36 | 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/Psf/PsfPlugin.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * PsfPlugin.cpp 19 | * 20 | * Created on: Jun 25, 2018 21 | * Author: Alejandro Álvarez Ayllón 22 | */ 23 | 24 | #include 25 | #include "SEImplementation/Plugin/Psf/PsfPlugin.h" 26 | 27 | namespace SourceXtractor { 28 | 29 | void PsfPlugin::registerPlugin(SourceXtractor::PluginAPI &plugin_api) { 30 | plugin_api.getTaskFactoryRegistry().registerTaskFactory(); 31 | } 32 | 33 | std::string PsfPlugin::getIdString() const { 34 | return "psf"; 35 | } 36 | 37 | static StaticPlugin psf_plugin; 38 | } 39 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/SNRRatio/SNRRatioPlugin.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | /** 19 | * @file SNRRatioPlugin.cpp 20 | * 21 | * @date Jan 29, 2020 22 | * @author mkuemmel@usm.lmu.de 23 | */ 24 | 25 | #include "SEFramework/Plugin/StaticPlugin.h" 26 | #include "SEImplementation/Plugin/SNRRatio/SNRRatioPlugin.h" 27 | 28 | namespace SourceXtractor { 29 | static StaticPlugin snrratio; 30 | } 31 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/ShapeParameters/ShapeParametersTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * ShapeParametersTaskFactory.cpp 19 | * 20 | * Created on: Jan 27, 2017 21 | * Author: mschefer 22 | */ 23 | 24 | #include "SEImplementation/Plugin/ShapeParameters/ShapeParameters.h" 25 | #include "SEImplementation/Plugin/ShapeParameters/ShapeParametersTask.h" 26 | #include "SEImplementation/Plugin/ShapeParameters/ShapeParametersTaskFactory.h" 27 | 28 | namespace SourceXtractor { 29 | 30 | std::shared_ptr ShapeParametersTaskFactory::createTask(const PropertyId& property_id) const { 31 | if (property_id == PropertyId::create()) { 32 | return std::make_shared(); 33 | } else { 34 | return nullptr; 35 | } 36 | } 37 | 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/SourcePsf/SourcePsfPlugin.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include 19 | #include "SEImplementation/Plugin/SourcePsf/SourcePsfPlugin.h" 20 | 21 | namespace SourceXtractor { 22 | 23 | void SourcePsfPlugin::registerPlugin(SourceXtractor::PluginAPI &plugin_api) { 24 | plugin_api.getTaskFactoryRegistry().registerTaskFactory(); 25 | } 26 | 27 | std::string SourcePsfPlugin::getIdString() const { 28 | return "source_psf"; 29 | } 30 | 31 | static StaticPlugin psf_plugin; 32 | } 33 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/Vignet/VignetArraySourceTask.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/Plugin/Vignet/Vignet.h" 19 | #include "SEImplementation/Plugin/Vignet/VignetArray.h" 20 | #include "SEImplementation/Plugin/Vignet/VignetArraySourceTask.h" 21 | 22 | namespace SourceXtractor { 23 | 24 | VignetArraySourceTask::VignetArraySourceTask(const std::vector images): m_images{images} { 25 | } 26 | 27 | void VignetArraySourceTask::computeProperties(SourceInterface& source) const { 28 | std::vector> vignets; 29 | for (auto img_idx : m_images) { 30 | vignets.emplace_back(source.getProperty(img_idx)); 31 | } 32 | source.setProperty(vignets); 33 | } 34 | 35 | } // end of namespace SourceXtractor 36 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/Vignet/VignetPlugin.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | /** 19 | * @file VignetPlugin.cpp 20 | * 21 | * @date Jan 23, 2020 22 | * @author mkuemmel@usm.lmu.de 23 | */ 24 | 25 | #include "SEFramework/Plugin/StaticPlugin.h" 26 | #include "SEImplementation/Plugin/Vignet/VignetPlugin.h" 27 | 28 | namespace SourceXtractor { 29 | static StaticPlugin vignet; 30 | } 31 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/Plugin/WorldCentroid/WorldCentroidTaskFactory.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * WorldCentroidTaskFactory.cpp 19 | * 20 | * Created on: Nov 21, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #include "SEImplementation/Plugin/WorldCentroid/WorldCentroid.h" 25 | #include "SEImplementation/Plugin/WorldCentroid/WorldCentroidTask.h" 26 | #include "SEImplementation/Plugin/WorldCentroid/WorldCentroidTaskFactory.h" 27 | 28 | namespace SourceXtractor { 29 | 30 | std::shared_ptr WorldCentroidTaskFactory::createTask(const PropertyId& property_id) const { 31 | if (property_id == PropertyId::create()) { 32 | return std::make_shared(); 33 | } else { 34 | return nullptr; 35 | } 36 | } 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/PythonConfig/PyAperture.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #include "SEImplementation/PythonConfig/PyAperture.h" 19 | #include 20 | 21 | 22 | namespace SourceXtractor { 23 | 24 | namespace bp = boost::python; 25 | 26 | PyAperture::PyAperture(const boost::python::list &py_apertures) { 27 | for (int i = 0; i < bp::len(py_apertures); ++i) { 28 | apertures.push_back(bp::extract(py_apertures[i])); 29 | } 30 | } 31 | 32 | std::string PyAperture::toString() const { 33 | std::stringstream str; 34 | str << "(ID:" << id << ", apertures:["; 35 | for (unsigned int i = 0; i < apertures.size(); ++i) { 36 | str << apertures[i]; 37 | if (i < apertures.size() - 1) { 38 | str << ","; 39 | } 40 | } 41 | str << "])"; 42 | return str.str(); 43 | } 44 | 45 | } // end SourceXtractor 46 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/PythonConfig/PyId.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | #include "SEImplementation/PythonConfig/PyId.h" 18 | 19 | namespace SourceXtractor { 20 | 21 | int PyId::s_next_col_id; 22 | 23 | PyId::PyId(): id(s_next_col_id++) { 24 | } 25 | 26 | PyId::~PyId() { 27 | } 28 | 29 | } // end SourceXtractor 30 | -------------------------------------------------------------------------------- /SEImplementation/src/lib/PythonConfig/PyMeasurementImage.cpp: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * @file MeasurementImage.cpp 19 | * @author Nikolaos Apostolakos 20 | */ 21 | 22 | #include 23 | 24 | namespace SourceXtractor { 25 | 26 | PyMeasurementImage::PyMeasurementImage(std::string file, std::string psf_file, std::string weight_file) 27 | : file(file), gain(0.), saturation(0.), flux_scale(1.), psf_file(psf_file), weight_file(weight_file), 28 | weight_absolute(false), weight_scaling(0.), has_weight_threshold(false), weight_threshold(0.), 29 | is_background_constant(false), constant_background_value(0.), image_hdu(0), psf_hdu(0), weight_hdu(0), 30 | is_data_cube(false), image_layer(0), weight_layer(0), psf_renormalize(true) { 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /SEMain/SEMain/SourceXtractorConfig.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file SEMain/SourceXtractorConfig.h 19 | * @date 07/20/16 20 | * @author nikoapos 21 | */ 22 | 23 | #ifndef _SEMAIN_SOURCEXTRACTORCONFIG_H 24 | #define _SEMAIN_SOURCEXTRACTORCONFIG_H 25 | 26 | #include "Configuration/Configuration.h" 27 | 28 | namespace SourceXtractor { 29 | 30 | /** 31 | * @class SourceXtractorConfig 32 | * @brief 33 | * 34 | */ 35 | class SourceXtractorConfig : public Euclid::Configuration::Configuration { 36 | 37 | public: 38 | 39 | /** 40 | * @brief Destructor 41 | */ 42 | virtual ~SourceXtractorConfig() = default; 43 | 44 | explicit SourceXtractorConfig(long manager_id); 45 | 46 | }; /* End of SourceXtractorConfig class */ 47 | 48 | } /* namespace SourceXtractor */ 49 | 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /SEMain/auxdir/SEMain/sourcextractor++.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=SourceXtractor++ 3 | Type=Application 4 | Terminal=true 5 | NoDisplay=true 6 | Exec=sourcextractor++ 7 | Icon=sourcextractor++ 8 | Categories=Education; 9 | -------------------------------------------------------------------------------- /SEMain/auxdir/SEMain/sourcextractor++.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/SEMain/auxdir/SEMain/sourcextractor++.png -------------------------------------------------------------------------------- /SEMain/conf/sourcextractor++.conf: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # 3 | # Configuration file for the executable 4 | # 5 | ############################################################################### 6 | # 7 | -------------------------------------------------------------------------------- /SEUtils/SEUtils/IsClose.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /** 18 | * @file IsClose.h 19 | * @date 27/09/18 20 | * @author Alejandro Alvarez Ayllon 21 | */ 22 | 23 | #ifndef SEUTILS_ISCLOSE_H 24 | #define SEUTILS_ISCLOSE_H 25 | 26 | namespace SourceXtractor { 27 | 28 | bool isClose(double a, double b, double atol = 1e-8, double rtol = 1e-5) { 29 | return std::abs(a - b) <= (atol + rtol * std::abs(b)); 30 | } 31 | 32 | } // end SourceXtractor 33 | 34 | #endif // SEUTILS_ISCLOSE_H 35 | -------------------------------------------------------------------------------- /SEUtils/SEUtils/Misc.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEUTILS_MISC_H_ 19 | #define _SEUTILS_MISC_H_ 20 | 21 | #include 22 | 23 | namespace SourceXtractor { 24 | 25 | template 26 | T nextPowerOfTwo(T v) { 27 | static_assert(std::is_unsigned::value, "Type T must be unsigned"); 28 | v--; 29 | for (size_t i = 1; i < sizeof(v) * 8U; i *= 2) { 30 | v |= v >> i; 31 | } 32 | v++; 33 | return v; 34 | } 35 | 36 | } 37 | 38 | #endif /* _SEUTILS_MISC_H_ */ 39 | -------------------------------------------------------------------------------- /SEUtils/SEUtils/PixelRectangle.h: -------------------------------------------------------------------------------- 1 | /* 2 | * PixelRectangle.h 3 | * 4 | * Created on: Jun 9, 2021 5 | * Author: mschefer 6 | */ 7 | 8 | #ifndef _SEUTILS_PIXELRECTANGLE_H_ 9 | #define _SEUTILS_PIXELRECTANGLE_H_ 10 | 11 | #include "SEUtils/PixelCoordinate.h" 12 | 13 | namespace SourceXtractor { 14 | 15 | class PixelRectangle { 16 | public: 17 | 18 | PixelRectangle(): 19 | m_min_coord{-1, -1}, m_max_coord{-1, -1} {} 20 | 21 | PixelRectangle(const PixelRectangle& rectangle) : 22 | m_min_coord{rectangle.m_min_coord}, m_max_coord{rectangle.m_max_coord} {} 23 | 24 | PixelRectangle(PixelCoordinate min_coord, PixelCoordinate max_coord): 25 | m_min_coord{min_coord}, m_max_coord{max_coord} { 26 | assert(min_coord.m_x <= max_coord.m_x && min_coord.m_y <= max_coord.m_y); 27 | } 28 | 29 | PixelCoordinate getTopLeft() const { 30 | assert(m_max_coord.m_x >= 0); 31 | return m_min_coord; 32 | } 33 | 34 | PixelCoordinate getBottomRight() const { 35 | assert(m_max_coord.m_x >= 0); 36 | return m_max_coord; 37 | } 38 | 39 | int getWidth() const { 40 | if (m_max_coord.m_x < 0) 41 | return 0; 42 | return m_max_coord.m_x - m_min_coord.m_x + 1; 43 | } 44 | 45 | int getHeight() const { 46 | if (m_max_coord.m_x < 0) 47 | return 0; 48 | return m_max_coord.m_y - m_min_coord.m_y + 1; 49 | } 50 | 51 | private: 52 | PixelCoordinate m_min_coord, m_max_coord; 53 | }; 54 | 55 | } 56 | 57 | #endif /* _SEUTILS_PIXELRECTANGLE_H_ */ 58 | -------------------------------------------------------------------------------- /SEUtils/SEUtils/Types.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | /* 18 | * Types.h 19 | * 20 | * Created on: Sep 6, 2016 21 | * Author: mschefer 22 | */ 23 | 24 | #ifndef _SEUTILS_TYPES_H_ 25 | #define _SEUTILS_TYPES_H_ 26 | 27 | namespace SourceXtractor { 28 | 29 | using SeFloat32 = float; 30 | using SeFloat64 = double; 31 | 32 | using SeFloat = SeFloat32; 33 | using SeDouble = SeFloat64; 34 | 35 | } 36 | 37 | #endif /* SEUTILS_SEUTILS_TYPES_H_ */ 38 | -------------------------------------------------------------------------------- /SEUtils/SEUtils/VariantCast.h: -------------------------------------------------------------------------------- 1 | /** Copyright © 2020 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université 2 | * 3 | * This library is free software; you can redistribute it and/or modify it under 4 | * the terms of the GNU Lesser General Public License as published by the Free 5 | * Software Foundation; either version 3.0 of the License, or (at your option) 6 | * any later version. 7 | * 8 | * This library is distributed in the hope that it will be useful, but WITHOUT 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 10 | * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 11 | * details. 12 | * 13 | * You should have received a copy of the GNU Lesser General Public License 14 | * along with this library; if not, write to the Free Software Foundation, Inc., 15 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 16 | */ 17 | 18 | #ifndef _SEUTILS_VARIANTCAST_H_ 19 | #define _SEUTILS_VARIANTCAST_H_ 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | namespace SourceXtractor { 26 | 27 | template 28 | class VariantCastVisitor : public boost::static_visitor { 29 | public: 30 | template 31 | To operator()(const From& from) const { 32 | return boost::lexical_cast(from); 33 | } 34 | }; 35 | 36 | template 37 | To VariantCast(const From& from) { 38 | return boost::apply_visitor(VariantCastVisitor(), from); 39 | } 40 | 41 | } // end of namespace SourceXtractor 42 | 43 | #endif /* _SEUTILS_VARIANTCAST_H_ */ 44 | -------------------------------------------------------------------------------- /cmake/LocalBuildFlags.cmake: -------------------------------------------------------------------------------- 1 | include_guard(GLOBAL) 2 | 3 | 4 | # Build type compilation flags (if different from default or unknown to CMake) 5 | set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math" 6 | CACHE STRING "Flags used by the compiler during release builds." 7 | FORCE) 8 | set(CMAKE_C_FLAGS_RELEASE "-O3 -ffast-math" 9 | CACHE STRING "Flags used by the compiler during release builds." 10 | FORCE) 11 | 12 | set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -ffast-math -g${DEBUG_FORMAT}${DEBUG_LEVEL}" 13 | CACHE STRING "Flags used by the compiler during Release with Debug Info builds." 14 | FORCE) 15 | set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -ffast-math -g${DEBUG_FORMAT}${DEBUG_LEVEL}" 16 | CACHE STRING "Flags used by the compiler during Release with Debug Info builds." 17 | FORCE) 18 | -------------------------------------------------------------------------------- /cmake/modules/FindBoostDLL.cmake: -------------------------------------------------------------------------------- 1 | if (NOT BoostDLL_FOUND) 2 | 3 | find_path(BoostDLL_INCLUDE_DIRS boost/dll 4 | HINTS ENV BOOST_DLL_INSTALL_DIR 5 | PATH_SUFFIXES include) 6 | 7 | include(FindPackageHandleStandardArgs) 8 | find_package_handle_standard_args(BoostDLL DEFAULT_MSG BoostDLL_INCLUDE_DIRS) 9 | mark_as_advanced(BoostDLL_FOUND BoostDLL_INCLUDE_DIRS) 10 | 11 | endif() 12 | 13 | -------------------------------------------------------------------------------- /cmake/modules/FindBoostPython.cmake: -------------------------------------------------------------------------------- 1 | # Normally, finding a boost component should rely on 2 | # find_package(Boost REQUIRED COMPONENTS python) 3 | # But the packaging is now always the same: sometimes it will be python3, 4 | # others python37, python2, python27, or just python 5 | # (i.e. python3 for Fedora < 30, but python37 for Fedora >= 30 and MacOSX via Homebrew) 6 | # We wrap all this in this module 7 | # 8 | # Defines: 9 | # BoostPython_FOUND 10 | # BoostPython_INCLUDE_DIRS 11 | # BoostPython_LIBRARIES 12 | 13 | if (NOT BoostPython_FOUND) 14 | find_package(PythonInterp ${PYTHON_EXPLICIT_VERSION} REQUIRED) 15 | 16 | # Explicit versions 17 | set (_BOOST_PYTHON_LIST "python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}" "python${PYTHON_VERSION_MAJOR}") 18 | 19 | # Only for python2, without suffix 20 | if (BoostPython_FIND_VERSION VERSION_LESS 3) 21 | list (APPEND _BOOST_PYTHON_LIST "python") 22 | endif () 23 | 24 | # Pick the most restrictive 25 | foreach (_BOOST_PYTHON IN LISTS _BOOST_PYTHON_LIST) 26 | find_package(Boost COMPONENTS "${_BOOST_PYTHON}") 27 | if (Boost_FOUND) 28 | set (BoostPython_INCLUDE_DIRS ${Boost_INCLUDE_DIRS}) 29 | set (BoostPython_LIBRARIES ${Boost_LIBRARIES}) 30 | set (BoostPython_FOUND TRUE) 31 | break () 32 | endif () 33 | endforeach () 34 | 35 | include(FindPackageHandleStandardArgs) 36 | find_package_handle_standard_args(BoostPython DEFAULT_MSG BoostPython_INCLUDE_DIRS) 37 | mark_as_advanced(BoostPython_FOUND BoostPython_INCLUDE_DIRS BoostPython_LIBRARIES) 38 | endif () 39 | -------------------------------------------------------------------------------- /cmake/modules/FindLevmar.cmake: -------------------------------------------------------------------------------- 1 | # - Locate the Levmar library 2 | # Defines: 3 | # 4 | # Levmar_FOUND 5 | # LEVMAR_INCLUDE_DIR 6 | # LEVMAR_INCLUDE_DIRS (not cached) 7 | # LEVMAR_LIBRARY 8 | # LEVMAR_LIBRARIES (not cached) 9 | 10 | 11 | if(NOT Levmar_FOUND) 12 | 13 | find_path(LEVMAR_INCLUDE_DIR levmar.h 14 | HINTS ENV LEVMAR_ROOT_DIR LEVMAR_INSTALL_DIR 15 | PATH_SUFFIXES include) 16 | 17 | find_library(LEVMAR_LIBRARY levmar 18 | HINTS ENV LEVMAR_ROOT_DIR LEVMAR_INSTALL_DIR 19 | PATH_SUFFIXES lib) 20 | 21 | find_library(M_LIBRARY m) 22 | 23 | set(LEVMAR_LIBRARIES ${LEVMAR_LIBRARY}) 24 | set(LEVMAR_INCLUDE_DIRS ${LEVMAR_INCLUDE_DIR}) 25 | 26 | INCLUDE(FindPackageHandleStandardArgs) 27 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Levmar DEFAULT_MSG LEVMAR_INCLUDE_DIRS LEVMAR_LIBRARIES) 28 | 29 | mark_as_advanced(Levmar_FOUND LEVMAR_INCLUDE_DIRS LEVMAR_LIBRARIES) 30 | 31 | list(REMOVE_DUPLICATES LEVMAR_LIBRARIES) 32 | list(REMOVE_DUPLICATES LEVMAR_INCLUDE_DIRS) 33 | 34 | endif() 35 | -------------------------------------------------------------------------------- /cmake/modules/FindNcurses.cmake: -------------------------------------------------------------------------------- 1 | # - Locate the ncurses library 2 | # Defines: 3 | # 4 | # NCURSES_FOUND 5 | # NCURSES_INCLUDE_DIR 6 | # NCURSES_INCLUDE_DIRS (not cached) 7 | # NCURSES_LIBRARY 8 | # NCURSES_LIBRARIES (not cached) 9 | 10 | 11 | if(NOT NCURSES_FOUND) 12 | 13 | find_path(NCURSES_INCLUDE_DIR ncurses.h 14 | HINTS ENV NCURSES_ROOT_DIR NCURSES_INSTALL_DIR 15 | PATH_SUFFIXES include include/ncurses) 16 | 17 | find_library(NCURSES_LIBRARY ncurses 18 | HINTS ENV NCURSES_ROOT_DIR NCURSES_INSTALL_DIR 19 | PATH_SUFFIXES lib) 20 | 21 | find_library(TINFO_LIBRARY tinfo 22 | HINTS ENV NCURSES_ROOT_DIR NCURSES_INSTALL_DIR 23 | PATH_SUFFIXES lib) 24 | 25 | set(NCURSES_LIBRARIES ${NCURSES_LIBRARY} ${TINFO_LIBRARY}) 26 | set(NCURSES_INCLUDE_DIRS ${NCURSES_INCLUDE_DIR}) 27 | 28 | INCLUDE(FindPackageHandleStandardArgs) 29 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ncurses DEFAULT_MSG NCURSES_INCLUDE_DIRS NCURSES_LIBRARIES) 30 | 31 | mark_as_advanced(NCURSES_FOUND NCURSES_INCLUDE_DIRS NCURSES_LIBRARIES) 32 | 33 | list(REMOVE_DUPLICATES NCURSES_LIBRARIES) 34 | list(REMOVE_DUPLICATES NCURSES_INCLUDE_DIRS) 35 | 36 | endif() 37 | -------------------------------------------------------------------------------- /cmake/modules/FindOnnxRuntime.cmake: -------------------------------------------------------------------------------- 1 | # - Locate the ONNX runtime library 2 | # Defines: 3 | # 4 | # OnnxRuntime_FOUND 5 | # OnnxRuntime_INCLUDE_DIR 6 | # OnnxRuntime_INCLUDE_DIRS (not cached) 7 | # OnnxRuntime_LIBRARY 8 | # OnnxRuntime_LIBRARIES (not cached) 9 | 10 | if(NOT OnnxRuntime_FOUND) 11 | 12 | find_path(OnnxRuntime_INCLUDE_DIR onnxruntime_cxx_api.h 13 | HINTS ENV ONNXRUNTIME_INSTALL_DIR 14 | PATH_SUFFIXES include onnxruntime onnxruntime/core/session) 15 | 16 | find_library(OnnxRuntime_LIBRARY onnxruntime 17 | HINTS ENV ONNXRUNTIME_INSTALL_DIR 18 | PATH_SUFFIXES lib lib64) 19 | 20 | set(OnnxRuntime_INCLUDE_DIRS ${OnnxRuntime_INCLUDE_DIR}) 21 | set(OnnxRuntime_LIBRARIES ${OnnxRuntime_LIBRARY}) 22 | 23 | include(FindPackageHandleStandardArgs) 24 | find_package_handle_standard_args(OnnxRuntime FOUND_VAR OnnxRuntime_FOUND REQUIRED_VARS OnnxRuntime_INCLUDE_DIRS OnnxRuntime_LIBRARIES) 25 | 26 | mark_as_advanced(OnnxRuntime_FOUND OnnxRuntime_INCLUDE_DIRS OnnxRuntime_LIBRARIES) 27 | 28 | list(REMOVE_DUPLICATES OnnxRuntime_INCLUDE_DIRS) 29 | list(REMOVE_DUPLICATES OnnxRuntime_LIBRARIES) 30 | 31 | endif() 32 | -------------------------------------------------------------------------------- /cmake/modules/FindReadline.cmake: -------------------------------------------------------------------------------- 1 | # - Locate the readline library 2 | # Defines: 3 | # 4 | # READLINE_FOUND 5 | # READLINE_INCLUDE_DIR 6 | # READLINE_INCLUDE_DIRS (not cached) 7 | # READLINE_LIBRARY 8 | # READLINE_LIBRARIES (not cached) 9 | 10 | 11 | if(NOT READLINE_FOUND) 12 | 13 | find_path(READLINE_INCLUDE_DIR readline/readline.h 14 | HINTS ENV READLINE_ROOT_DIR READLINE_INSTALL_DIR) 15 | 16 | find_library(READLINE_LIBRARY readline 17 | HINTS ENV READLINE_ROOT_DIR READLINE_INSTALL_DIR 18 | PATH_SUFFIXES lib) 19 | 20 | set(READLINE_LIBRARIES ${READLINE_LIBRARY}) 21 | set(READLINE_INCLUDE_DIRS ${READLINE_INCLUDE_DIR}) 22 | 23 | INCLUDE(FindPackageHandleStandardArgs) 24 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG READLINE_INCLUDE_DIRS READLINE_LIBRARIES) 25 | 26 | mark_as_advanced(READLINE_FOUND READLINE_INCLUDE_DIRS READLINE_LIBRARIES) 27 | 28 | list(REMOVE_DUPLICATES READLINE_LIBRARIES) 29 | list(REMOVE_DUPLICATES READLINE_INCLUDE_DIRS) 30 | 31 | endif() 32 | -------------------------------------------------------------------------------- /cmake/modules/Findyaml-cpp.cmake: -------------------------------------------------------------------------------- 1 | if(NOT yaml-cpp_FOUND) 2 | 3 | find_path(yaml-cpp_INCLUDE_DIR yaml-cpp/yaml.h) 4 | find_library(yaml-cpp_LIBRARY yaml-cpp) 5 | mark_as_advanced(yaml-cpp_INCLUDE_DIR yaml-cpp_LIBRARY) 6 | 7 | include(FindPackageHandleStandardArgs) 8 | find_package_handle_standard_args(yaml-cpp DEFAULT_MSG 9 | yaml-cpp_LIBRARY yaml-cpp_INCLUDE_DIR) 10 | 11 | set(yaml-cpp_INCLUDE_DIRS ${yaml-cpp_INCLUDE_DIR}) 12 | set(yaml-cpp_LIBRARIES ${yaml-cpp_LIBRARY}) 13 | 14 | endif(NOT yaml-cpp_FOUND) 15 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | /html/ 2 | -------------------------------------------------------------------------------- /doc/ImplementationHowTos/ImplementationHowTos.dox: -------------------------------------------------------------------------------- 1 | namespace SExtractor { 2 | 3 | /** \page implementationhowtos Implementation HowTos 4 | 5 | \subpage how_to_add_source_property : This HowTo explains how to implement the algorithm 6 | for computing a new source property 7 | 8 | \subpage how_to_add_source_property_with_configuration : This HowTo explains how to add a 9 | new source property computation using some user inputs arguments 10 | 11 | \subpage how_to_add_source_property_with_instances : This HowTo explains how to add 12 | source property instances computation using some user inputs arguments 13 | 14 | \subpage howto_add_partition_step : This HowTo explains how to add a new algorithm 15 | for partitioning a source detected by the Segmentation to smaller pieces 16 | 17 | \subpage howto_register_a_plugin : This HowTo explains how to register a new 18 | plugin to the %SExtractor framework 19 | 20 | */ 21 | } -------------------------------------------------------------------------------- /doc/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = SEx++ 8 | SOURCEDIR = src 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | 22 | -------------------------------------------------------------------------------- /doc/Makefile.in: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = SEx++ 8 | SOURCEDIR = src 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | 22 | -------------------------------------------------------------------------------- /doc/SExtractor.dox: -------------------------------------------------------------------------------- 1 | /** 2 | \mainpage S(ource)Extractor Developers Documentation 3 | 4 | This is the developer documentation of the SExtractor project. Using the tabs at 5 | the top of the page, you can navigate through the API documentation of all the 6 | SExtractor classes. Following the links bellow, you can read some documentation 7 | designed to help the new SExtractor developer. 8 | 9 | - \subpage implementationhowtos : Short instructions for 10 | performing the most common SExtractor developer tasks 11 | 12 | - \subpage configuration : configuration specs 13 | - \subpage modeling_configuration : Modeling configuration examples 14 | 15 | */ 16 | -------------------------------------------------------------------------------- /doc/assets/rangetypes.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | # EB 04/05/2019 5 | # Plot range types 6 | 7 | import numpy as np 8 | import matplotlib 9 | matplotlib.rcParams['text.usetex'] = True 10 | matplotlib.rcParams['text.latex.preamble'] = [r"\usepackage{amsmath}",r"\usepackage{sansmath}", r"\sansmath"] 11 | matplotlib.rcParams['font.family'] = ['sans-serif'] 12 | matplotlib.rcParams.update({'font.size': 14}) 13 | 14 | import matplotlib.pyplot as plt 15 | 16 | f, ax = plt.subplots(1,2, figsize=(12,5), dpi=150) 17 | plt.subplots_adjust(left=0.08, right=0.99, bottom=0.11, top=0.98, wspace=0.3, hspace=0.4) 18 | Qmin = -10.0 19 | Qmax = 10.0 20 | Q = np.linspace(Qmin, Qmax, 100) 21 | qmin = -1.0 22 | qmax = 1.0 23 | q = (qmax - qmin) / (1 + np.exp(-Q)) + qmin 24 | #ax[0].set_xlim(qmin, qmax) 25 | ax[0].plot(q,Q) 26 | ax[0].set_xlabel(r"$q_{x}(\textsf{model})$", fontsize=16) 27 | ax[0].set_ylabel(r"$Q_{x}(\textsf{engine})$", fontsize=16) 28 | ax[0].grid(linewidth=0.5, linestyle=':') 29 | 30 | qmin = 0.01 31 | qmax = 100.0 32 | q = qmin * np.exp((np.log(qmax) - np.log(qmin)) / (1 + np.exp(-Q))) 33 | ax[1].set_xscale("log") 34 | ax[1].xaxis.set_major_formatter(matplotlib.ticker.FuncFormatter(lambda f, _: '{:.16g}'.format(f))) 35 | #ax[1].set_xlim(qmin, qmax) 36 | ax[1].plot(q,Q) 37 | ax[1].set_xlabel(r"$q_\textsf{aspect}(\textsf{model})$", fontsize=16) 38 | ax[1].set_ylabel(r"$Q_\textsf{aspect}(\textsf{engine})$", fontsize=16) 39 | ax[1].grid(linewidth=0.5, linestyle=':') 40 | plt.savefig("rangetypes.svg") 41 | plt.savefig("rangetypes.pdf") 42 | 43 | -------------------------------------------------------------------------------- /doc/assets/sersicprior.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | 4 | # EB 24/07/2019 5 | # Plot the Sérsic prior as defined in the documentation 6 | 7 | import numpy as np 8 | import matplotlib 9 | matplotlib.rcParams['text.usetex'] = True 10 | matplotlib.rcParams['text.latex.preamble'] = [r"\usepackage{amsmath}",r"\usepackage{sansmath}", r"\sansmath"] 11 | matplotlib.rcParams['font.family'] = ['sans-serif'] 12 | matplotlib.rcParams.update({'font.size': 20}) 13 | 14 | import matplotlib.pyplot as plt 15 | 16 | 17 | f, ax = plt.subplots(1,1, figsize=(12,9), dpi=150) 18 | plt.subplots_adjust(left=0.08, right=0.99, bottom=0.11, top=0.98, wspace=0.3, hspace=0.4) 19 | xmin = 0.3 20 | xmax = 8.0 21 | npoints = 400 22 | x = np.linspace(xmin, xmax, npoints) 23 | s0 = 4 24 | s2 = np.exp(x - s0) 25 | y = np.exp(-s2*s2 / 2.0) 26 | norm = sum(y) * (xmax - xmin) / npoints 27 | y /= norm 28 | ax.set_xlim(0, 8.3) 29 | ax.plot(x,y,linewidth=3) 30 | ax.set_xlabel("Sérsic index", fontsize=24) 31 | ax.set_ylabel("prior", fontsize=24) 32 | ax.grid(linewidth=0.5, linestyle=':') 33 | plt.savefig("sersicprior.svg") 34 | plt.savefig("sersicprior.pdf") 35 | 36 | -------------------------------------------------------------------------------- /doc/img/aggregation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/doc/img/aggregation.png -------------------------------------------------------------------------------- /doc/img/grouping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/astrorama/SourceXtractorPlusPlus/519ad8f8d6f4553d7a4e06e1dcc5cd055ddd8e1a/doc/img/grouping.png -------------------------------------------------------------------------------- /doc/requirements.txt: -------------------------------------------------------------------------------- 1 | astropy 2 | sphinx 3 | docutils==0.17.1 4 | sphinxcontrib-bibtex 5 | sphinx_rtd_theme 6 | 7 | -------------------------------------------------------------------------------- /doc/src/ConfigAPI.rst: -------------------------------------------------------------------------------- 1 | .. File ConfigAPI.rst 2 | 3 | .. include:: global.rst 4 | 5 | Configuration API Reference 6 | --------------------------- 7 | 8 | .. toctree:: 9 | 10 | config_api/argv 11 | config_api/output 12 | config_api/measurement_images 13 | config_api/aperture 14 | config_api/model_fitting 15 | 16 | -------------------------------------------------------------------------------- /doc/src/Introduction.rst: -------------------------------------------------------------------------------- 1 | .. File Introduction.rst 2 | 3 | .. include:: global.rst 4 | 5 | Introduction 6 | ============ 7 | 8 | |SourceXtractor++|_ (Source-Extractor ++) is a program that extracts a catalog of sources from astronomical images. It is 9 | the successor to the original |SExtractor|_ package :cite:`1996AAS_117_393B`. |SourceXtractor++| has been completely rewritten in C++ and improves over its predecessor in many ways: 10 | 11 | * Support for multiple "measurement" images 12 | * Optimized multi-object, multi-frame model-fitting engine 13 | * Possibility to define complex priors and dependencies for model parameters 14 | * Flexible, Python-based configuration file 15 | * Efficient image data caching 16 | * Multithreaded processing 17 | * Modular code design with support for third-party plug-ins 18 | 19 | |SourceXtractor++| is a collaborative effort between the `Astronomy Department, Université de Genève `_, the `Faculty of Physics, LMU Munich `_, and `the IAP (CNRS/Sorbonne Université) `_. 20 | -------------------------------------------------------------------------------- /doc/src/Position.rst: -------------------------------------------------------------------------------- 1 | .. File Position.rst 2 | 3 | .. include:: global.rst 4 | 5 | Isophotal measurements 6 | ====================== 7 | 8 | Position and shape 9 | ------------------ 10 | 11 | The following quantities are derived from the spatial distribution :math:`\cal S` of pixels detected above the detection threshold (see :ref:`description `). 12 | 13 | .. important:: 14 | Unless otherwise noted, the pixel values used for computing "isophotal" positions and shapes are taken from the filtered, background-subtracted detection image. 15 | 16 | 17 | .. _flux_iso_def: 18 | 19 | Photometry 20 | ---------- 21 | 22 | 23 | -------------------------------------------------------------------------------- /doc/src/Processing.rst: -------------------------------------------------------------------------------- 1 | .. File Processing.rst 2 | 3 | .. include:: global.rst 4 | 5 | .. _processing: 6 | 7 | Processing 8 | ========== 9 | 10 | The complete analysis of an image is fully automated (:numref:`fig_flowchart`). 11 | There are three main steps in the processing: detection, collection and measurement: 12 | 13 | * During the detection step, image pixels from the detection image are background-subtracted, filtered and segmented on-the-fly. 14 | The extracted source candidates are then deblended. 15 | 16 | * During the collection step, a source model is fit to the detection image. 17 | Overlapping sources are identified, grouped and pruned ("cleaned"). 18 | 19 | * During the measurement step, sources are analysed individually or as part of their group. 20 | Measurements are written to the output catalog. 21 | 22 | .. _fig_flowchart: 23 | 24 | .. figure:: figures/flowchart.* 25 | :align: center 26 | :figwidth: 100% 27 | 28 | Layout of the main |SourceXtractor++| procedures. *Dashed arrows* represent 29 | optional inputs. 30 | 31 | The following sections describe each of these operations in more detail. 32 | 33 | .. toctree:: 34 | 35 | Background 36 | Weighting 37 | Flagging 38 | 39 | -------------------------------------------------------------------------------- /doc/src/Using.rst: -------------------------------------------------------------------------------- 1 | .. File Using.rst 2 | 3 | .. include:: global.rst 4 | 5 | .. _using-sextractor: 6 | 7 | Using SourceXtractor++ 8 | ====================== 9 | 10 | |SourceXtractor++| is run from the shell with the following syntax: 11 | 12 | .. code-block:: console 13 | 14 | $ sourcextractor++ [--