Skip to content

Commit 0a6feb4

Browse files
authored
Merge pull request #494 from astrorama/develop
Release 0.18
2 parents c3c9d4c + feddc72 commit 0a6feb4

File tree

130 files changed

+4894
-880
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+4894
-880
lines changed

.github/workflows/doc.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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+

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ __pycache__
99
/.settings/
1010
.pydevproject
1111
/packages
12+
/doc/build/
13+
/build/

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ find_package(ElementsProject)
66
#---------------------------------------------------------------
77

88
# Declare project name and version
9-
elements_project(SourceXtractorPlusPlus 0.17 USE Alexandria 2.25.0 DESCRIPTION "SourceXtractor++, the next generation SExtractor")
9+
elements_project(SourceXtractorPlusPlus 0.18 USE Alexandria 2.25.0 DESCRIPTION "SourceXtractor++, the next generation SExtractor")

ModelFitting/src/lib/Engine/GSLEngine.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "ModelFitting/Engine/GSLEngine.h"
2424
#include "ModelFitting/Engine/LeastSquareEngineManager.h"
2525
#include <ElementsKernel/Exception.h>
26+
#include <array>
2627
#include <chrono>
2728
#include <gsl/gsl_blas.h>
2829
#include <gsl/gsl_multifit_nlinear.h>

ModelFitting/src/lib/Engine/LevmarEngine.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
* along with this library; if not, write to the Free Software Foundation, Inc.,
1515
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1616
*/
17-
/**
17+
/**
1818
* @file LevmarEngine.cpp
1919
* @date August 17, 2015
2020
* @author Nikolaos Apostolakos
2121
*/
2222

23+
#include <array>
2324
#include <cmath>
2425
#include <mutex>
2526

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,19 @@ And install with
5959
dnf install SourceXtractorPlusPlus
6060
```
6161

62+
## References and Acknowledgment
63+
64+
While we are working on several refereed papers describing SourceXtractor++ and its software architecture, the software package can be referenced with two ADASS conference proceedings:
65+
66+
- [Bertin, E.; Schefer, M. ; Apostolakos, N. ; Álvarez-Ayllón, A.; Dubath, P. ; Kümmel, M.: 2020ASPC..527..461B](https://ui.adsabs.harvard.edu/abs/2020ASPC..527..461B/abstract)
67+
- [Kümmel, M. ; Bertin, E.; Schefer, M. ; Apostolakos, N. ; Álvarez-Ayllón, A.; Dubath, P.: 2020ASPC..527...29K](https://ui.adsabs.harvard.edu/abs/2020ASPC..527...29K/abstract)
68+
69+
The ressources for the SourceXtractor++ development are mostly provided by funding from the Euclid satellite project via the various national agencies.
70+
For Euclid Consortium papers it is sufficient to point to the [SourceXtractor++ webpage](https://github.com/astrorama/SourceXtractorPlusPlus) and add
71+
the standard EC acknowledgement text.
72+
73+
For scientific publication which are non EC papers we would be greatful if the following acknowledgment could be added:
74+
```
75+
This research made use of {\tt SourceXtractor++}\footnote{https://github.com/astrorama/SourceXtractorPlusPlus},
76+
an open source software package developed for the Euclid satellite project.
77+
```

SEFramework/SEFramework/Output/Output.h

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université
1+
/** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université
22
*
33
* This library is free software; you can redistribute it and/or modify it under
44
* the terms of the GNU Lesser General Public License as published by the Free
@@ -24,30 +24,27 @@
2424
#ifndef _SEFRAMEWORK_PIPELINE_OUTPUT_H_
2525
#define _SEFRAMEWORK_PIPELINE_OUTPUT_H_
2626

27-
#include "SEUtils/Observable.h"
28-
#include "SEFramework/Source/SourceInterface.h"
27+
#include "SEFramework/Pipeline/PipelineStage.h"
2928
#include "SEFramework/Source/SourceGroupInterface.h"
29+
#include "SEFramework/Source/SourceInterface.h"
3030

3131
namespace SourceXtractor {
3232

33-
class Output :
34-
public Observer<std::shared_ptr<SourceInterface>>,
35-
public Observer<std::shared_ptr<SourceGroupInterface>> {
33+
class Output : public PipelineReceiver<SourceGroupInterface> {
3634

3735
public:
38-
3936
virtual ~Output() = default;
4037

41-
void handleMessage(const std::shared_ptr<SourceInterface>& source) override {
42-
outputSource(*source);
43-
}
44-
45-
void handleMessage(const std::shared_ptr<SourceGroupInterface>& source_group) override {
38+
void receiveSource(std::unique_ptr<SourceGroupInterface> source_group) override {
4639
for (auto& source : *source_group) {
4740
outputSource(source);
4841
}
4942
}
5043

44+
void receiveProcessSignal(const ProcessSourcesEvent&) override {
45+
// pass
46+
}
47+
5148
virtual void outputSource(const SourceInterface& source) = 0;
5249

5350
/// @return Number of elements written

SEFramework/SEFramework/Pipeline/Deblending.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université
1+
/** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université
22
*
33
* This library is free software; you can redistribute it and/or modify it under
44
* the terms of the GNU Lesser General Public License as published by the Free
@@ -23,7 +23,7 @@
2323
#ifndef _SEFRAMEWORK_PIPELINE_DEBLENDING_H
2424
#define _SEFRAMEWORK_PIPELINE_DEBLENDING_H
2525

26-
#include "SEUtils/Observable.h"
26+
#include "SEFramework/Pipeline/PipelineStage.h"
2727
#include "SEFramework/Source/SourceGroupInterface.h"
2828
#include "SEFramework/Task/TaskProvider.h"
2929

@@ -53,8 +53,7 @@ class DeblendStep {
5353
* for deblending the group.
5454
*
5555
*/
56-
class Deblending : public Observer<std::shared_ptr<SourceGroupInterface>>,
57-
public Observable<std::shared_ptr<SourceGroupInterface>> {
56+
class Deblending : public PipelineReceiver<SourceGroupInterface>, public PipelineEmitter<SourceGroupInterface> {
5857

5958
public:
6059

@@ -65,7 +64,9 @@ class Deblending : public Observer<std::shared_ptr<SourceGroupInterface>>,
6564
explicit Deblending(std::vector<std::shared_ptr<DeblendStep>> deblend_steps);
6665

6766
/// Handles a new SourceGroup, applies the DeblendSteps and then notifies the observers with the result
68-
void handleMessage(const std::shared_ptr<SourceGroupInterface>& group) override;
67+
void receiveSource(std::unique_ptr<SourceGroupInterface> group) override;
68+
69+
void receiveProcessSignal(const ProcessSourcesEvent& event) override;
6970

7071
/// Returns the set of required properties to compute the deblending
7172
std::set<PropertyId> requiredProperties() const;

SEFramework/SEFramework/Pipeline/Measurement.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/** Copyright © 2019 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université
1+
/** Copyright © 2019-2022 Université de Genève, LMU Munich - Faculty of Physics, IAP-CNRS/Sorbonne Université
22
*
33
* This library is free software; you can redistribute it and/or modify it under
44
* the terms of the GNU Lesser General Public License as published by the Free
@@ -25,18 +25,16 @@
2525
#define _SEFRAMEWORK_PIPELINE_MEASUREMENT_H_
2626

2727

28-
#include "SEUtils/Observable.h"
28+
#include "SEFramework/Pipeline/PipelineStage.h"
2929
#include "SEFramework/Source/SourceGroupInterface.h"
3030
#include "SEFramework/Task/TaskProvider.h"
3131

3232
namespace SourceXtractor {
3333

34-
class Measurement :
35-
public Observer<std::shared_ptr<SourceGroupInterface>>,
36-
public Observable<std::shared_ptr<SourceGroupInterface>> {
34+
class Measurement : public PipelineReceiver<SourceGroupInterface>, public PipelineEmitter<SourceGroupInterface> {
3735
public:
3836

39-
virtual ~Measurement() = default;
37+
~Measurement() override = default;
4038

4139
virtual void startThreads() = 0;
4240
virtual void stopThreads() = 0;

SEFramework/SEFramework/Pipeline/Partition.h

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#ifndef _SEFRAMEWORK_PIPELINE_PARTITION_H
2424
#define _SEFRAMEWORK_PIPELINE_PARTITION_H
2525

26-
#include "SEUtils/Observable.h"
26+
#include "SEFramework/Pipeline/PipelineStage.h"
2727
#include "SEFramework/Source/SourceInterface.h"
2828

2929
namespace SourceXtractor {
@@ -36,13 +36,12 @@ namespace SourceXtractor {
3636
*/
3737
class PartitionStep {
3838
public:
39-
4039
/**
4140
* @brief Destructor
4241
*/
4342
virtual ~PartitionStep() = default;
4443

45-
virtual std::vector<std::shared_ptr<SourceInterface>> partition(std::shared_ptr<SourceInterface> source) const = 0;
44+
virtual std::vector<std::unique_ptr<SourceInterface>> partition(std::unique_ptr<SourceInterface> source) const = 0;
4645
};
4746

4847
/**
@@ -54,10 +53,9 @@ class PartitionStep {
5453
* notified to the Observers one by one.
5554
*
5655
*/
57-
class Partition : public Observer<std::shared_ptr<SourceInterface>>, public Observable<std::shared_ptr<SourceInterface>> {
56+
class Partition : public PipelineReceiver<SourceInterface>, public PipelineEmitter<SourceInterface> {
5857

5958
public:
60-
6159
/**
6260
* @brief Destructor
6361
*/
@@ -66,8 +64,8 @@ class Partition : public Observer<std::shared_ptr<SourceInterface>>, public Obse
6664
/// Constructor - takes a vector of PartitionSteps to be applied in order
6765
explicit Partition(std::vector<std::shared_ptr<PartitionStep>> steps);
6866

69-
/// Handles a Source (applies PartitionSteps) and notifies the Observers for every Source in the final result
70-
void handleMessage(const std::shared_ptr<SourceInterface>& source) override;
67+
void receiveSource(std::unique_ptr<SourceInterface> source) override;
68+
void receiveProcessSignal(const ProcessSourcesEvent& event) override;
7169

7270
private:
7371
std::vector<std::shared_ptr<PartitionStep>> m_steps;
@@ -76,5 +74,4 @@ class Partition : public Observer<std::shared_ptr<SourceInterface>>, public Obse
7674

7775
} /* namespace SourceXtractor */
7876

79-
8077
#endif

0 commit comments

Comments
 (0)