From 571d9a037917514099410e66a8f46dfbfb964fb4 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Mon, 23 May 2022 16:35:31 +0200 Subject: [PATCH 01/40] change fpsidentifier / bandname to fpsIdentifier / to bandName as stated in the spec --- serializations/2MASS_PhotSys.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/serializations/2MASS_PhotSys.xml b/serializations/2MASS_PhotSys.xml index a32dc50..3c83820 100644 --- a/serializations/2MASS_PhotSys.xml +++ b/serializations/2MASS_PhotSys.xml @@ -14,11 +14,11 @@ L.Michel, M.Louys - + - + @@ -48,11 +48,11 @@ L.Michel, M.Louys - + - + @@ -82,11 +82,11 @@ L.Michel, M.Louys - + - + From 24819ff84edd88c57151fb205a57cc9b70fb7a4e Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Mon, 23 May 2022 16:43:54 +0200 Subject: [PATCH 02/40] bandname/fpsidentifier typo corrections --- serializations/photdm.2MASS.2MASS.H.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serializations/photdm.2MASS.2MASS.H.xml b/serializations/photdm.2MASS.2MASS.H.xml index ce10307..ff9a166 100644 --- a/serializations/photdm.2MASS.2MASS.H.xml +++ b/serializations/photdm.2MASS.2MASS.H.xml @@ -45,7 +45,7 @@ - @@ -53,7 +53,7 @@ value="2MASS H" /> - + From 1c9313eeeeae35e68caec403dbee983505e58b4c Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Mon, 23 May 2022 16:46:30 +0200 Subject: [PATCH 03/40] typo fpsIdentifier+bandName --- serializations/photdm.2MASS.2MASS.Ks.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serializations/photdm.2MASS.2MASS.Ks.xml b/serializations/photdm.2MASS.2MASS.Ks.xml index 4c49acd..c917526 100644 --- a/serializations/photdm.2MASS.2MASS.Ks.xml +++ b/serializations/photdm.2MASS.2MASS.Ks.xml @@ -43,7 +43,7 @@ - @@ -51,7 +51,7 @@ value="2MASS Ks" /> - + From fd8f2583b142e084cf8094e7def93d610f2fbde6 Mon Sep 17 00:00:00 2001 From: laurentmichel Date: Sun, 29 May 2022 17:00:11 +0200 Subject: [PATCH 04/40] name-space "dm-mapping" removed everywhere --- .../2MASS_Filter_Mapping_Example.xml | 100 ++++----- serializations/2MASS_PhotSys.xml | 160 ++++++------- serializations/exampleXML2MASS.xml | 212 +++++++++--------- serializations/photdm.2MASS.2MASS.H.xml | 100 ++++----- serializations/photdm.2MASS.2MASS.J.xml | 100 ++++----- serializations/photdm.2MASS.2MASS.Ks.xml | 100 ++++----- serializations/photdm.GAIA.GAIA2.G.xml | 100 ++++----- serializations/photdm.WISE.WISE.W1.xml | 100 ++++----- serializations/photdm.WISE.WISE.W2.xml | 100 ++++----- serializations/photdm.WISE.WISE.W3.xml | 100 ++++----- serializations/photdm.WISE.WISE.W4.xml | 100 ++++----- serializations/photdm.XMMSL2.XMMSL2.EB6.xml | 82 +++---- serializations/photdm.XMMSL2.XMMSL2.EB7.xml | 82 +++---- serializations/photdm.XMMSL2.XMMSL2.EB8.xml | 80 +++---- 14 files changed, 759 insertions(+), 757 deletions(-) diff --git a/serializations/2MASS_Filter_Mapping_Example.xml b/serializations/2MASS_Filter_Mapping_Example.xml index da86d24..81068c1 100644 --- a/serializations/2MASS_Filter_Mapping_Example.xml +++ b/serializations/2MASS_Filter_Mapping_Example.xml @@ -1,86 +1,86 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/2MASS_PhotSys.xml b/serializations/2MASS_PhotSys.xml index 3c83820..381a3f8 100644 --- a/serializations/2MASS_PhotSys.xml +++ b/serializations/2MASS_PhotSys.xml @@ -7,110 +7,110 @@ L.Michel, M.Louys --> - - - + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + + - - - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + - - - + + + + + + + + + + + + + + + diff --git a/serializations/photdm.2MASS.2MASS.H.xml b/serializations/photdm.2MASS.2MASS.H.xml index ff9a166..51170a8 100644 --- a/serializations/photdm.2MASS.2MASS.H.xml +++ b/serializations/photdm.2MASS.2MASS.H.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.2MASS.2MASS.J.xml b/serializations/photdm.2MASS.2MASS.J.xml index 56f7c0f..e336d99 100644 --- a/serializations/photdm.2MASS.2MASS.J.xml +++ b/serializations/photdm.2MASS.2MASS.J.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.2MASS.2MASS.Ks.xml b/serializations/photdm.2MASS.2MASS.Ks.xml index c917526..1cf5632 100644 --- a/serializations/photdm.2MASS.2MASS.Ks.xml +++ b/serializations/photdm.2MASS.2MASS.Ks.xml @@ -1,83 +1,83 @@ - - + - - + - - - + + + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.GAIA.GAIA2.G.xml b/serializations/photdm.GAIA.GAIA2.G.xml index 1b5c375..d1d383b 100644 --- a/serializations/photdm.GAIA.GAIA2.G.xml +++ b/serializations/photdm.GAIA.GAIA2.G.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.WISE.WISE.W1.xml b/serializations/photdm.WISE.WISE.W1.xml index 4fe7b3b..741c298 100644 --- a/serializations/photdm.WISE.WISE.W1.xml +++ b/serializations/photdm.WISE.WISE.W1.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.WISE.WISE.W2.xml b/serializations/photdm.WISE.WISE.W2.xml index 044558e..7b71f1b 100644 --- a/serializations/photdm.WISE.WISE.W2.xml +++ b/serializations/photdm.WISE.WISE.W2.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.WISE.WISE.W3.xml b/serializations/photdm.WISE.WISE.W3.xml index 86f2fbc..7bc4589 100644 --- a/serializations/photdm.WISE.WISE.W3.xml +++ b/serializations/photdm.WISE.WISE.W3.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.WISE.WISE.W4.xml b/serializations/photdm.WISE.WISE.W4.xml index b620773..e3bcf91 100644 --- a/serializations/photdm.WISE.WISE.W4.xml +++ b/serializations/photdm.WISE.WISE.W4.xml @@ -1,85 +1,85 @@ - - + - - + - - + + - + - - + + - - + - - + - - - + + - - - + + - - - + + + - + - + - - + - - - - + - - + - - - + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + diff --git a/serializations/photdm.XMMSL2.XMMSL2.EB6.xml b/serializations/photdm.XMMSL2.XMMSL2.EB6.xml index 0e7d0b1..7460e34 100644 --- a/serializations/photdm.XMMSL2.XMMSL2.EB6.xml +++ b/serializations/photdm.XMMSL2.XMMSL2.EB6.xml @@ -1,65 +1,65 @@ - - - - + + + + - - + + - + - - + + - - - + + - + - + - + - - - - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - + + - - - - - + + + + + diff --git a/serializations/photdm.XMMSL2.XMMSL2.EB7.xml b/serializations/photdm.XMMSL2.XMMSL2.EB7.xml index 755601e..f06a83f 100644 --- a/serializations/photdm.XMMSL2.XMMSL2.EB7.xml +++ b/serializations/photdm.XMMSL2.XMMSL2.EB7.xml @@ -1,64 +1,64 @@ - - - - + + + + - - - + + + - - + + - - - + + - + - + - + - - - - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - + + - - - - - + + + + + diff --git a/serializations/photdm.XMMSL2.XMMSL2.EB8.xml b/serializations/photdm.XMMSL2.XMMSL2.EB8.xml index cde004e..2bd1362 100644 --- a/serializations/photdm.XMMSL2.XMMSL2.EB8.xml +++ b/serializations/photdm.XMMSL2.XMMSL2.EB8.xml @@ -4,67 +4,67 @@ XML serialization of Photometry Filter --> - - - - + + + + - - - + + + - - + + - - - + + - + - + - + - - - - - - + + + - - - - - + + + + + - - - - - - - + + + + + + + - - - + + - - - - + + + + From dc4eb22241fc7d96d2269572d86f1c1f2cb639ea Mon Sep 17 00:00:00 2001 From: jsalgado Date: Fri, 10 Jun 2022 13:23:23 +0200 Subject: [PATCH 05/40] Partial response to time domain goup --- PhotDM.tex | 118 ++++++++++++++++++++++------------------------------- 1 file changed, 49 insertions(+), 69 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index f617a7c..0139041 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -449,7 +449,7 @@ \section{Photometry Data Model} \label{datamodel} A magnitude system is characterised for a certain reference spectrum that will produce a certain zero point for a certain photometry filter. This reference spectrum could be an ideal one (as in STmag and ABmag systems), a -Vega-like spectrum (as in Vegamag systems) (please notice that different Vega +Vega-like spectrum (as in VegaMag systems) (please notice that different Vega spectrum versions have been historically used) or any other. In many cases, the reference spectrum has been calculated as an average of spectra from several astronomical objects. This would be characterised by a set of Source instances. @@ -475,7 +475,7 @@ \section{Photometry Data Model} \label{datamodel} PhotCal is the class node where a spectral data model interacts. It binds the filter and zeropoint information to the Flux Axis calibration. It can be understood as the -calibration configuration used , bringing together a specific photometry filter +calibration configuration used, bringing together a specific photometry filter instance with magnitude system and zeropoint. It leverages the handling of photometric data through IVOA protocols e.g. SSAP or TAP services. \par @@ -905,36 +905,18 @@ \subsubsection{PhotometryFilter.transmissionCurve} \paragraph{PhotometryFilter.transmissionCurve.transmissionPoint} The transmission curve is a mathematical function that describes the transmission fraction of a certain filter in a defined spectral range. This function can be discretised -as a set of transmission points and every point will be composed by two attributes: +as a set of transmission points and every point will be composed by five attributes: \par \begin{itemize} - \item One spectral coordinate (wavelength, energy or frequency) value, of type - PhysicalQuantity, and utype:\par - -\begin{center} -{\fontsize{10pt}{12.0pt}\selectfont -\textbf{\textit{photDM:PhotometryFilter.transmissionCurve. -transmissionPoint.spectralValue}}\par} -\end{center}\par - - \item One transmission unitless real value between 0 and 1 and associated with - utype:{\fontsize{11pt}{13.2pt}\selectfont \textit{ }\par} -\end{itemize}\par - -\begin{center} -{\fontsize{10pt}{12.0pt}\selectfont \textbf{\textit{photDM:PhotometryFilter.transmissionCurve. -transmissionPoint.transmissionValu}e}\par} -\end{center}\par - -\subparagraph{PhotometryFilter.transmissionCurve.transmissionPoint. -spectralValue.UCD: String} -This data model field contains a Unified Content Description string (UCD) -\citep{2018ivoa.spec.0527P} that specifies the nature of the spectral axis for this filter. -This applies to the full spectral axis description of the filter. -\par - -Example: + \item{spectralValue, type real, with the spectral coordinate (wavelength, energy or frequency) value} + \item{spectralErrorValue, type real, with the error on the spectral coordinate} + \item{unit, type Unit, with the unit used for the specralValue. This is also linked to the type of spectral coordinate used} + \item{ucd, type UCD, used to indicates the type of spectral coordinate from the ontological point of view} + \item{One transmissionValue, unitless real, with a value between 0 and 1} +\end{itemize} + +One example for PhotometryFilter.transmissionCurve.transmissionPoint.ucd could be, for example: \par %%%%%%%%%%%%%%%%%%%% Table No: 14 starts here %%%%%%%%%%%%%%%%%%%% @@ -964,15 +946,15 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} within the context of a photometry filter as follows. \par -\paragraph{PhotometryFilter.bandwith.UCD: String} +\paragraph{PhotometryFilter.bandwidth.UCD: String} Unified Content Description (UCD) string that specifies the nature of the bandwidth object. \par -\paragraph{PhotometryFilter.bandwith.unit: IVOA.Unit} +\paragraph{PhotometryFilter.bandwidth.unit: IVOA.Unit} Field that specifies the units of the bandwidth object. \par -\paragraph{PhotometryFilter.bandwith.extent: real} +\paragraph{PhotometryFilter.bandwidth.extent: real} For square filters (100$\%$ between the minimum and maximum wavelength and 0$\%$ otherwise), the bandwidth could be described as $\lambda_{max} - \lambda_{min}$. \par @@ -1108,8 +1090,7 @@ \subsubsection{ZeroPoint.referenceMagnitude.value: real} specified otherwise. \par -The reference magnitude is a dimensionless variable. It is modeled using a -PhysicalQuantity object type of appropriate precision(float,double). +The reference magnitude is a dimensionless variable. \par \subsubsection{ZeroPoint.referenceMagnitude.error: real} @@ -1337,15 +1318,15 @@ \subsubsection{MagnitudeSystem.type: String} \begin{table}[H] \centering -\begin{tabular}{|p{2.42in}|} +\begin{tabular}{|c|} \hline -MagnitudeSystem Type \\ +\bf{MagnitudeSystem Type}\\ \hline -VEGAmag \\ +VegaMag\\ \hline -ABMag \\ +ABMag\\ \hline -STMag \\ +STMag\\ \hline \end{tabular} \caption{Magnitude System Types} @@ -1385,7 +1366,7 @@ \subsubsection{MagnitudeSystem.referenceSpectrum: URI} \label{referenceSpectrum} \par \begin{itemize} - \item{VEGAmag: Makes use of Vega ($\alpha $Lyr) as the primary calibrating + \item{VegaMag: Makes use of Vega ($\alpha $Lyr) as the primary calibrating star. PhotometricSystem.referenceSpectrum would be the Vega SED\par} \item{ABmag: Makes use of a reference spectrum of constant flux @@ -1410,7 +1391,7 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \par \begin{itemize} - \item{It MUST have one field with\\ utype=$"$ spec:Spectrum.Data.FluxAxis.value$"$ + \item{It MUST have one field with\\ utype=$"$spec:Spectrum.Data.FluxAxis.value$"$ and UCD="phot.mag$"$ by measurement that includes the magnitude associated to this measurement. \par} @@ -1421,7 +1402,7 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \par \item{It MUST have one field per catalogue or measurement - with\\ utype=$"$photdm:PhotCal.identifier$"$ that includes the identifier within the + with\\ utype=$"$photDM:PhotCal.identifier$"$ that includes the identifier within the filter profile service of the filter.} \end{itemize}\par @@ -1437,13 +1418,13 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser information would be, at least:\par} \begin{itemize} - \item photdm:PhotCal.ZeroPoint.flux.value\par + \item photDM:PhotCal.ZeroPoint.flux.value\par - \item photdm:PhotCal.ZeroPoint.flux.unit.expression\par + \item photDM:PhotCal.ZeroPoint.flux.unit.expression\par - \item photdm:PhotCal.ZeroPoint.type\par + \item photDM:PhotCal.ZeroPoint.type\par - \item photdm:PhotometryFilter.spectralLocation.value + \item photDM:PhotometryFilter.spectralLocation.value \end{itemize} \end{itemize}\par @@ -1759,7 +1740,6 @@ \section{Data Model Summary} %%%%%%%%%%%%%%%%%%%% Table No: 21 starts here %%%%%%%%%%%%%%%%%%%% %Photometry Filter Spectral Axis Coverage -%mir changed photDM: in photdm: as MCD suggestion \begin{table}[H] \centering \begin{adjustbox}{angle=90} @@ -1785,7 +1765,7 @@ \section{Data Model Summary} \hline %row no:10 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.spectralLocation.\ value}} & +\selectfont photDM:PhotometryFilter.spectralLocation.\ value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;meta.main }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference position along the spectral axis. Spectral coordinate of the Zero Point }} & @@ -1794,7 +1774,7 @@ \section{Data Model Summary} \hline %row no:11 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.spectralLocation.\ unit.expression}} & +\selectfont photDM:PhotometryFilter.spectralLocation.\ unit.expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral axis used to characterize it}} & @@ -1803,7 +1783,7 @@ \section{Data Model Summary} \hline %row no:12 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.spectralLocation.\ UCD}} & +\selectfont photDM:PhotometryFilter.spectralLocation.\ UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral axis wl, freq, energy}} & @@ -1812,7 +1792,7 @@ \section{Data Model Summary} \hline %row no:13 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.bandwidth.unit.\ expression}} & +\selectfont photDM:PhotometryFilter.bandwidth.unit.\ expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral extent used to characterize the bandwidth object}} & @@ -1821,7 +1801,7 @@ \section{Data Model Summary} \hline %row no:14 \multicolumn{1}{p{2.5in}}{ -{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.\ bandwidth.UCD}} & +{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.\ bandwidth.UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral bandwidth: wl, freq, energy, wave number, ...}} & @@ -1829,7 +1809,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:15 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.bandwidth.extent.\ value}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.bandwidth.extent.\ value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont instr.bandwidth}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Spectral axis extent of the filter}} & \multicolumn{1}{p{0.74in}}{} & @@ -1837,7 +1817,7 @@ \section{Data Model Summary} \hline %row no:16 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.bandwidth.\ start.value}} & +\selectfont photDM:PhotometryFilter.bandwidth.\ start.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.min}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Minimum value of the filter spectral coverage}} & @@ -1846,7 +1826,7 @@ \section{Data Model Summary} \hline %row no:17 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.bandwidth.\ stop.value}} & +\selectfont photDM:PhotometryFilter.bandwidth.\ stop.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.max}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Maximum value of the filter spectral coverage}} & @@ -1886,7 +1866,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Data type}}} \\ \hline %row no:20 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.dateValidityFrom}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.dateValidityFrom}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont time.start}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Start of validity for this filter in ISOTime format }} & @@ -1895,7 +1875,7 @@ \section{Data Model Summary} \hline %row no:21 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.dateValidityTo}} & +\selectfont photDM:PhotometryFilter.dateValidityTo}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont time.end}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Stop of validity for this filter in ISOTime format }} & @@ -1903,7 +1883,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string }} \\ \hline %row no:24 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.identifier}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.identifier}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifier of the Photometry } \par {\fontsize{8pt}{8pt}\selectfont Calibration instance within a FPS}} & @@ -1912,21 +1892,21 @@ \section{Data Model Summary} \hline %row no:25 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotCal.zeroPoint.\-flux.unit.expression}} & +\selectfont photDM:PhotCal.zeroPoint.\-flux.unit.expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont unit for Zero point flux}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont Jy}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:26 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.UCD}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.\-flux.UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont ucd for Zero point flux}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont phot.flux.density}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:27 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.value}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.\-flux.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.flux.density }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont flux value at Zero point associated to this filter}} & @@ -1934,7 +1914,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ \hline %row no:28 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.error}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.\-flux.error}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont stat.error;phot.flux.density}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the flux value at Zero point associated to this filter}} & @@ -1943,7 +1923,7 @@ \section{Data Model Summary} \hline %row no:29 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotCal.zeroPoint.\newline referenceMagnitude.value}} & +\selectfont photDM:PhotCal.zeroPoint.\newline referenceMagnitude.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.mag}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference magnitude used for zero point}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0.0}} & @@ -1951,7 +1931,7 @@ \section{Data Model Summary} \hline %row no:30 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotCal.zeroPoint.\newline referenceMagnitude.error}} & +\selectfont photDM:PhotCal.zeroPoint.\newline referenceMagnitude.error}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont stat.error;phot.mag}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the reference magnitude used for zero point}} & @@ -1959,22 +1939,22 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real} \par } \\ \hline %row no:31 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.type}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.type}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of zero point}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont int}} \\ \hline %row no:32 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.magnitudeSystem.type}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.magnitudeSystem.type}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of magnitude system}} & -\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont VEGAMag}} & +\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont VegaMag}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:33 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotCal.magnitudeSystem.\-ReferenceSpectrumURI}} & +\selectfont photDM:PhotCal.magnitudeSystem.\-ReferenceSpectrumURI}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.url }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference SED or spectrum for this magnitude system}} & @@ -1983,7 +1963,7 @@ \section{Data Model Summary} \hline %row no:34 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:AsinhZeroPoint.softeningParameter}} & +\selectfont photDM:AsinhZeroPoint.softeningParameter}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.calib }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Correction parameter for luptitudes}} & From a8a443bfc3618efb39567a39cddae33c0679660d Mon Sep 17 00:00:00 2001 From: jsalgado Date: Fri, 10 Jun 2022 17:55:56 +0200 Subject: [PATCH 06/40] Update all photd: name space reference to lower case --- PhotDM.tex | 70 ++++++++++++++++---------------- serializations/conesearch_ex.xml | 20 ++++----- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 0139041..dd3b319 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -1402,7 +1402,7 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \par \item{It MUST have one field per catalogue or measurement - with\\ utype=$"$photDM:PhotCal.identifier$"$ that includes the identifier within the + with\\ utype=$"$photdm:PhotCal.identifier$"$ that includes the identifier within the filter profile service of the filter.} \end{itemize}\par @@ -1418,13 +1418,13 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser information would be, at least:\par} \begin{itemize} - \item photDM:PhotCal.ZeroPoint.flux.value\par + \item photdm:PhotCal.ZeroPoint.flux.value\par - \item photDM:PhotCal.ZeroPoint.flux.unit.expression\par + \item photdm:PhotCal.ZeroPoint.flux.unit.expression\par - \item photDM:PhotCal.ZeroPoint.type\par + \item photdm:PhotCal.ZeroPoint.type\par - \item photDM:PhotometryFilter.spectralLocation.value + \item photdm:PhotometryFilter.spectralLocation.value \end{itemize} \end{itemize}\par @@ -1588,14 +1588,14 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Data type}}} \\ \hline %row no:6 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometricSystem.description}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometricSystem.description}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.note }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont String representation Photometric System}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:7 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometricSystem.detectorType}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometricSystem.detectorType}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of detector (e.g energy or photon counter). Possible values defined by enumeration}} & @@ -1624,7 +1624,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Data type}}} \\ \hline %row no:10 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.identifer}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.identifer}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifer of filter within a Filter Profile Service (FPS)}} & @@ -1632,7 +1632,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:11 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.fpsIdentifier}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.fpsIdentifier}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont IVOA identifier of the Filter Profile Service}} & @@ -1640,7 +1640,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:12 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.name}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.name}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.id;instr.filter }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Filter Name in the instrumental } \par {\fontsize{10pt}{12.0pt}\selectfont configuration\ }} & @@ -1648,7 +1648,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:13 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.description}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.description}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.note }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Text description of the filter band}} & \multicolumn{1}{p{0.74in}}{} & @@ -1689,7 +1689,7 @@ \section{Data Model Summary} \hline %row no:3 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.transmissionCurve.\ access.reference}} & +\selectfont photdm:PhotometryFilter.transmissionCurve.\ access.reference}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont URI to the @@ -1699,7 +1699,7 @@ \section{Data Model Summary} \hline %row no:4 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.transmissionCurve.\ access.format}} & +\selectfont photdm:PhotometryFilter.transmissionCurve.\ access.format}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont File format of the pointed transmission curve}} & \multicolumn{1}{p{0.74in}}{} & @@ -1756,7 +1756,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Data type}}} \\ \hline %row no:9 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.bandName}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.bandName}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont instr.bandpass }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Generic name for the filter spectral band}} & @@ -1765,7 +1765,7 @@ \section{Data Model Summary} \hline %row no:10 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.spectralLocation.\ value}} & +\selectfont photdm:PhotometryFilter.spectralLocation.\ value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;meta.main }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference position along the spectral axis. Spectral coordinate of the Zero Point }} & @@ -1774,7 +1774,7 @@ \section{Data Model Summary} \hline %row no:11 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.spectralLocation.\ unit.expression}} & +\selectfont photdm:PhotometryFilter.spectralLocation.\ unit.expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral axis used to characterize it}} & @@ -1783,7 +1783,7 @@ \section{Data Model Summary} \hline %row no:12 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.spectralLocation.\ UCD}} & +\selectfont photdm:PhotometryFilter.spectralLocation.\ UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral axis wl, freq, energy}} & @@ -1792,7 +1792,7 @@ \section{Data Model Summary} \hline %row no:13 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.bandwidth.unit.\ expression}} & +\selectfont photdm:PhotometryFilter.bandwidth.unit.\ expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral extent used to characterize the bandwidth object}} & @@ -1801,7 +1801,7 @@ \section{Data Model Summary} \hline %row no:14 \multicolumn{1}{p{2.5in}}{ -{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.\ bandwidth.UCD}} & +{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.\ bandwidth.UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral bandwidth: wl, freq, energy, wave number, ...}} & @@ -1809,7 +1809,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:15 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.bandwidth.extent.\ value}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.bandwidth.extent.\ value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont instr.bandwidth}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Spectral axis extent of the filter}} & \multicolumn{1}{p{0.74in}}{} & @@ -1817,7 +1817,7 @@ \section{Data Model Summary} \hline %row no:16 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.bandwidth.\ start.value}} & +\selectfont photdm:PhotometryFilter.bandwidth.\ start.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.min}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Minimum value of the filter spectral coverage}} & @@ -1826,7 +1826,7 @@ \section{Data Model Summary} \hline %row no:17 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.bandwidth.\ stop.value}} & +\selectfont photdm:PhotometryFilter.bandwidth.\ stop.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.max}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Maximum value of the filter spectral coverage}} & @@ -1866,7 +1866,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Data type}}} \\ \hline %row no:20 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotometryFilter.dateValidityFrom}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.dateValidityFrom}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont time.start}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Start of validity for this filter in ISOTime format }} & @@ -1875,7 +1875,7 @@ \section{Data Model Summary} \hline %row no:21 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotometryFilter.dateValidityTo}} & +\selectfont photdm:PhotometryFilter.dateValidityTo}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont time.end}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Stop of validity for this filter in ISOTime format }} & @@ -1883,7 +1883,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string }} \\ \hline %row no:24 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.identifier}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.identifier}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifier of the Photometry } \par {\fontsize{8pt}{8pt}\selectfont Calibration instance within a FPS}} & @@ -1892,21 +1892,21 @@ \section{Data Model Summary} \hline %row no:25 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotCal.zeroPoint.\-flux.unit.expression}} & +\selectfont photdm:PhotCal.zeroPoint.\-flux.unit.expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont unit for Zero point flux}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont Jy}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:26 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.\-flux.UCD}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont ucd for Zero point flux}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont phot.flux.density}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:27 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.\-flux.value}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.flux.density }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont flux value at Zero point associated to this filter}} & @@ -1914,7 +1914,7 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ \hline %row no:28 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.\-flux.error}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.error}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont stat.error;phot.flux.density}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the flux value at Zero point associated to this filter}} & @@ -1923,7 +1923,7 @@ \section{Data Model Summary} \hline %row no:29 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotCal.zeroPoint.\newline referenceMagnitude.value}} & +\selectfont photdm:PhotCal.zeroPoint.\newline referenceMagnitude.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.mag}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference magnitude used for zero point}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0.0}} & @@ -1931,7 +1931,7 @@ \section{Data Model Summary} \hline %row no:30 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotCal.zeroPoint.\newline referenceMagnitude.error}} & +\selectfont photdm:PhotCal.zeroPoint.\newline referenceMagnitude.error}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont stat.error;phot.mag}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the reference magnitude used for zero point}} & @@ -1939,14 +1939,14 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real} \par } \\ \hline %row no:31 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.zeroPoint.type}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.type}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of zero point}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont int}} \\ \hline %row no:32 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photDM:PhotCal.magnitudeSystem.type}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.magnitudeSystem.type}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of magnitude system}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont VegaMag}} & @@ -1954,7 +1954,7 @@ \section{Data Model Summary} \hline %row no:33 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:PhotCal.magnitudeSystem.\-ReferenceSpectrumURI}} & +\selectfont photdm:PhotCal.magnitudeSystem.\-ReferenceSpectrumURI}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.url }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference SED or spectrum for this magnitude system}} & @@ -1963,7 +1963,7 @@ \section{Data Model Summary} \hline %row no:34 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM:AsinhZeroPoint.softeningParameter}} & +\selectfont photdm:photdm:AsinhZeroPoint.softeningParameter}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.calib }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Correction parameter for luptitudes}} & diff --git a/serializations/conesearch_ex.xml b/serializations/conesearch_ex.xml index a13bc46..71836e4 100644 --- a/serializations/conesearch_ex.xml +++ b/serializations/conesearch_ex.xml @@ -2,38 +2,38 @@ 2MASS J magnitude. - - - \ No newline at end of file + From 4c831baf4bef1db4836cf09818f7ed2ecedd5781 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Wed, 29 Jun 2022 16:27:01 +0100 Subject: [PATCH 07/40] Merging changes with Mireille --- PhotDM.tex | 1004 +++++++++-------- schema/BaseDataTypesDiagram_PR_20220520.png | Bin 0 -> 112348 bytes schema/PhotometryOverviewDiagram_20220520.png | Bin 0 -> 160656 bytes 3 files changed, 506 insertions(+), 498 deletions(-) create mode 100644 schema/BaseDataTypesDiagram_PR_20220520.png create mode 100644 schema/PhotometryOverviewDiagram_20220520.png diff --git a/PhotDM.tex b/PhotDM.tex index dd3b319..64748d6 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -4,7 +4,7 @@ \lstloadlanguages{sh,make,[latex]tex} \lstset{flexiblecolumns=true,numberstyle=\small,showstringspaces=False, identifierstyle=\texttt,defaultdialect=[latex]tex,language=tex} - + \usepackage{todonotes} \usepackage{float} \usepackage{adjustbox} @@ -28,11 +28,11 @@ \usepackage{float} \usepackage[titletoc]{appendix} \usepackage{listings} -% define colors for syntax XML -% include listing settings +% define colors for syntax XML +% include listing settings \include{syntaxXML} -% end define colors +% end define colors @@ -73,28 +73,28 @@ \begin{document} \begin{abstract} -The Photometry Data Model (\textbf{PhotDM}) standard describes photometry -filters, photometric systems, magnitude systems, zero points and its -interrelation with the other IVOA data models through a simple data model. -Particular attention is given necessarily to optical photometry where -specifications of magnitude systems and photometric zero points are required +The Photometry Data Model (\textbf{PhotDM}) standard describes photometry +filters, photometric systems, magnitude systems, zero points and its +interrelation with the other IVOA data models through a simple data model. +Particular attention is given necessarily to optical photometry where +specifications of magnitude systems and photometric zero points are required to convert photometric measurements into physical flux density units. \end{abstract} \section*{Acknowledgments} -We acknowledge the EuroVO Science Advisory Committee for the review of the -initial versions of the document and to the developers who have contributed +We acknowledge the EuroVO Science Advisory Committee for the review of the +initial versions of the document and to the developers who have contributed to the data model reference implementations. \pagebreak \section*{Link to IVOA Architecture} -The figure below shows where IVOA Photometry Data Model fits within the +The figure below shows where IVOA Photometry Data Model fits within the IVOA architecture: %%%%%%%%%%%%%%%%%%%% Figure/Image No: 1 starts here %%%%%%%%%%%%%%%%%%%% -\begin{figure}[H] +\begin{figure}[H] \centering % As of ivoatex 1.2, the architecture diagram is generated by ivoatex in @@ -104,12 +104,12 @@ \section*{Link to IVOA Architecture} % you must remove archdiag.svg from FIGURES in the Makefile. \includegraphics[width=0.9\textwidth]{role_diagram.pdf} -\caption{PhotDM can be used to enhance and abstract SSAP and TAP access, in particular -to help on the automatic translation of magnitudes to fluxes and to add provenance +\caption{PhotDM can be used to enhance and abstract SSAP and TAP access, in particular +to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. -PhotDM makes use of utypes from different IVOA data models, including CharDM and UCDs and +PhotDM makes use of UTypes from different IVOA data models, including CharDM and UCDs and also express quantities in line with the VOUnits definition. -PhotDM also adds serialization examples in VOTable. +PhotDM also adds serialisation examples in VOTable. } \label{fig:archdiag} \end{figure} @@ -131,207 +131,213 @@ \section*{Changes from Version 1.0} \label{changesTable} %row no:2 \multicolumn{1}{|p{3.75in}}{First PhotDM 1.1 Latex version} & \multicolumn{1}{|p{0.72in}}{All} & -\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2021/10/07}} \\ \hline %row no:3 -\multicolumn{1}{|p{3.75in}}{Use the Modelio class diagram +\multicolumn{1}{|p{3.75in}}{Use the Modelio class diagram figure} & \multicolumn{1}{|p{0.72in}}{\ref{datamodel}} & -\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2021/10/25}} \\ \hline %row no:4 -\multicolumn{1}{|p{3.75in}}{Data model summary updates and +\multicolumn{1}{|p{3.75in}}{Data model summary updates and correction of UCD tags} & \multicolumn{1}{|p{0.72in}}{All} & -\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2021/12/21}} \\ \hline %row no:5 \multicolumn{1}{|p{3.75in}}{Add changes table} & \multicolumn{1}{|p{0.72in}}{\ref{datamodel}} & -\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/02/02}} \\ \hline -%row no:5 +%row no:6 \multicolumn{1}{|p{3.75in}}{Add mapping example} & \multicolumn{1}{|p{0.72in}}{\ref{appendixmapping}} & -\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/03/01}} \\ \hline -%row no:6 +%row no:7 \multicolumn{1}{|p{3.75in}}{v1.1 Proposed Recommendation} & \multicolumn{1}{|p{0.72in}}{All} & -\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/03/01}} \\ +%row no:8 +\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC comments} & +\multicolumn{1}{|p{0.72in}}{All} & +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +2022/05/23}} \\ + \hline \end{tabular} \end{table} \pagebreak \section{Introduction} -A key role of the VO is to help astronomers find data and to -combine that data in a scientifically meaningful way. A Spectral -Energy Distribution (SED) is an example of combining data whereby -flux density measurements of an astrophysical source at different +A key role of the VO is to help astronomers find data and to +combine that data in a scientifically meaningful way. A Spectral +Energy Distribution (SED) is an example of combining data whereby +flux density measurements of an astrophysical source at different spectral energy coordinates (wavelengths/frequencies/energy) \citep{doi:10.1146/annurev.astro.41.082801.100251,longo,connell,brujine} -are plotted as a -graph of flux density versus a spectral energy coordinate. SEDs that -cover a wide range of the electromagnetic spectrum are particularly -useful for identifying the underlying physical processes operating -in the astrophysical source, and the use of SEDs is becoming more -prevalent as astronomy takes an increasingly multi-wavelength -approach. To combine individual flux density measurements and their -spectral energy coordinates into an SED, these phometric measurements -must be described in sufficient detail to allow for the conversion to -compatible flux density and spectral energy units, taking into -account the nature of the spectral energy bandpass of the measurements, -as well as the apertures and other details of the measurements. -This document outlines a photometry data model to describe photometric +are plotted as a +graph of flux density versus a spectral energy coordinate. SEDs that +cover a wide range of the electromagnetic spectrum are particularly +useful for identifying the underlying physical processes operating +in the astrophysical source, and the use of SEDs is becoming more +prevalent as astronomy takes an increasingly multi-wavelength +approach. To combine individual flux density measurements and their +spectral energy coordinates into an SED, these photometric measurements +must be described in sufficient detail to allow for the conversion to +compatible flux density and spectral energy units, taking into +account the nature of the spectral energy bandpass of the measurements, +as well as the apertures and other details of the measurements. +This document outlines a photometry data model to describe photometric measurements in a standard way. -The photometry data model aims to describe the essential elements -of flux density measurements made within all spectral energy domains -across the electromagnetic spectrum. In some domains this is -relatively straight forward, such as in radio astronomy where -measurements are commonly expressed in flux density units, and -where data are readily combined into SEDs. The data model fields -required to describe such a radio flux density measurement includes -a specification of the bandpass, the units of the measurement and -the associated uncertainties. Optical photometry measurements are -however commonly expressed in magnitudes, and a greater level of -description of the magnitude systems and bandpasses are required -to support the conversion of these measurements into flux densities -that could be combined into an SED. As such, much of this document -is necessarily devoted to defining the data model fields required +The photometry data model aims to describe the essential elements +of flux density measurements made within all spectral energy domains +across the electromagnetic spectrum. In some domains this is +relatively straight forward, such as in radio astronomy where +measurements are commonly expressed in flux density units, and +where data are readily combined into SEDs. The data model fields +required to describe such a radio flux density measurement includes +a specification of the bandpass, the units of the measurement and +the associated uncertainties. Optical photometry measurements are +however commonly expressed in magnitudes, and a greater level of +description of the magnitude systems and bandpasses are required +to support the conversion of these measurements into flux densities +that could be combined into an SED. As such, much of this document +is necessarily devoted to defining the data model fields required to describe optical photometry measurements. -Astronomical flux density measurements will often require a -greater level of description than provided by this simple model. -The level of accuracy required depends strongly on the scientific -use of the data. A study of broadband SEDs of active galaxies may -tolerate 20$\%$ uncertainties in the flux density measurements, -and it is usually sufficient in these cases to use average values -for the spectral energy coordinates of the bandpasses. Fitting to -stellar models or science that employs photometric measurements to -derive photometric redshifts requires a much greater level of accuracy. -To manage the different levels of description we take the overall -approach that the photometry data model should include the most -generic elements required to describe photometric measurements, -and that the photometry data model is intended to be used in -coordination with the IVOA Spectrum Data model and the IVOA +Astronomical flux density measurements will often require a +greater level of description than provided by this simple model. +The level of accuracy required depends strongly on the scientific +use of the data. A study of broadband SEDs of active galaxies may +tolerate 20$\%$ uncertainties in the flux density measurements, +and it is usually sufficient in these cases to use average values +for the spectral energy coordinates of the bandpasses. Fitting to +stellar models or science that employs photometric measurements to +derive photometric redshifts requires a much greater level of accuracy. +To manage the different levels of description we take the overall +approach that the photometry data model should include the most +generic elements required to describe photometric measurements, +and that the photometry data model is intended to be used in +coordination with the IVOA Spectrum Data model and the IVOA Characterization Data Model. -The scientific use case that has guided the choice of the level -of description of the metadata fields in the Photometry Data Model -is the use of the large collections of photometric data that are -published in catalogues (e.g. Vizier, \url{http://vizier.u-strasbg.fr/}) -in SEDs. The Photometry Data Model provides the metadata fields for -describing the photometry measurements in catalogues, so that those +The scientific use case that has guided the choice of the level +of description of the metadata fields in the Photometry Data Model +is the use of the large collections of photometric data that are +published in catalogues (e.g. Vizier, \url{http://vizier.u-strasbg.fr/}) +in SEDs. The Photometry Data Model provides the metadata fields for +describing the photometry measurements in catalogues, so that those data could then be added to, or compared with an SED. -The intended practical use of the Photometry Data Model is that the -metadata fields defined here will be included in the metadata of -catalogues, or of photometry data stored as a pseudo-spectrum. These -data would then be made accessible using Simple Spectral Access Protocol -(SSAP) or Table Access Protocol (TAP) services so that the photometric +The intended practical use of the Photometry Data Model is that the +metadata fields defined here will be included in the metadata of +catalogues, or of photometry data stored as a pseudo-spectrum. These +data would then be made accessible using Simple Spectral Access Protocol +(SSAP) or Table Access Protocol (TAP) services so that the photometric measurements can be used and combined in scientific software tools. -The proposed model is based on the description of the photometry -filters, and the description of how\ the\ units of the measurement -are related to flux density. The photometry filter description may -be as simple as specifying a central spectral energy coordinate and -a bandpass width. The more detailed description of optical bandpasses -is supported by allowing for specification of filter transmission -curves, and the photometric zero points necessary for the conversion +The proposed model is based on the description of the photometry +filters, and the description of how\ the\ units of the measurement +are related to flux density. The photometry filter description may +be as simple as specifying a central spectral energy coordinate and +a bandpass width. The more detailed description of optical bandpasses +is supported by allowing for specification of filter transmission +curves, and the photometric zero points necessary for the conversion of magnitudes to flux densities. -Information on the properties of filters is not always easily available, -and is sometimes only specified in manuals or in the literature and often -not in digital form. To aid the use of filters information, in particular -as part of the Photometry Data Model metadata fields, we propose a -mechanism for referencing external filter information. Such a +Information on the properties of filters is not always easily available, +and is sometimes only specified in manuals or in the literature and often +not in digital form. To aid the use of filters information, in particular +as part of the Photometry Data Model metadata fields, we propose a +mechanism for referencing external filter information. Such a \textit{Filter Profile Service} has been implemented in the Spanish Virtual Observatory -\citep{2012ivoa.rept.1015R}, \citep{2020sea..confE.182R} and exposes this information so software -client applications could discover it. - -The following sections of this document summarize some key points -about astronomical photometry (Section 2). The detailed metadata -structure of the data model is presented in Section 3. Section 4 -describes use cases in which the model description could be used in -making photometry data available through VO protocols, and, very briefly, +\citep{2012ivoa.rept.1015R}, \citep{2020sea..confE.182R} and exposes this information so software +client applications could discover it. + +The following sections of this document summarize some key points +about astronomical photometry (Section 2). The detailed metadata +structure of the data model is presented in Section 3. Section 4 +describes use cases in which the model description could be used in +making photometry data available through VO protocols, and, very briefly, how scientific tools could use this information. -PhotDM is related to other IVOA Data models (Spectrum DM, Characterization DM, -Observation and Provenance DM), and is intended to provide photometry -metadata for data that would be accessed via the IVOA Data Access Protocols +PhotDM is related to other IVOA Data models (Spectrum DM, Characterization DM, +Observation and Provenance DM), and is intended to provide photometry +metadata for data that would be accessed via the IVOA Data Access Protocols such as SSAP (Simple Spectra Access Protocol) or TAP (Table Access Protocol). -As with most of the VO Data Models, PhotDM makes use of STC, Utypes, Units +As with most of the VO Data Models, PhotDM makes use of STC, UTypes, Units and UCDs. PhotDM will be serializable with a VOTable. \section{Astronomical Photometry} -Astronomical photometry refers to measuring the brightness, flux or -intensity of an astrophysical object. Consider an astronomical source -with a flux density at the observer $F(x)$, where $x$ is a spectral coordinate -(wavelength, frequency or energy). The photometry measurement will be related -to $$ a flux weighted integral of this flux density over an observed band -with a relative spectral response $T(x)$. The flux weighted integral in its most +Astronomical photometry refers to measuring the brightness, flux or +intensity of an astrophysical object. Consider an astronomical source +with a flux density at the observer $F(x)$, where $x$ is a spectral coordinate +(wavelength, frequency or energy). The photometry measurement will be related +to $$ a flux weighted integral of this flux density over an observed band +with a relative spectral response $T(x)$. The flux weighted integral in its most simple form is defined as \begin{equation} \label{eq:1} -\langle F\rangle = \int F(x)T(x)dx +\langle F\rangle = \int F(x)T(x)dx \end{equation} -Calibration of photometric measurements is in general done by comparison to a -reference spectrum that has a known effective flux density $f_0$ at a specific +Calibration of photometric measurements is in general done by comparison to a +reference spectrum that has a known effective flux density $f_0$ at a specific spectral band. For this reference spectrum, the flux weighted integral is defined as: \begin{equation} \label{eq:2} -\langle F_R \rangle= \int F_R (x)T(x)dx +\langle F_R \rangle= \int F_R (x)T(x)dx \end{equation} so that the effective flux density of the source can be evaluated as: \begin{equation} \label{eq:3} -f = f_0 ( \frac{\langle F\rangle }{\langle F_R \rangle } ) +f = f_0 ( \frac{\langle F\rangle }{\langle F_R \rangle } ) \end{equation} -This represents the most simple and easy to use flux measurement. Flux -measurements expressed in physical flux density units can be easily combined -into SEDs. Many flux measurements published in catalogues of radio sources +This represents the most simple and easy to use flux measurement. Flux +measurements expressed in physical flux density units can be easily combined +into SEDs. Many flux measurements published in catalogues of radio sources for example are simple flux densities of this form. \par -In optical photometry measurements are often expressed as magnitudes and it -is necessary to define the magnitude system being used, and the zero point +In optical photometry measurements are often expressed as magnitudes and it +is necessary to define the magnitude system being used, and the zero point fluxes of the reference spectrum. \par Pogson magnitudes are defined as: \begin{equation} \label{eq:4} -m = -2.5\log_{10} (\langle F\rangle ) +m = -2.5\log_{10} (\langle F\rangle ) \end{equation} which when compared to a reference spectrum $F_R$ leads to: \begin{equation} \label{eq:5} -m = m_R -2.5 \log_{10} \left(\langle F\rangle /\langle F_R \rangle \right) +m = m_R -2.5 \log_{10} \left(\langle F\rangle /\langle F_R \rangle \right) \end{equation} As explained above, this is equivalent to: @@ -348,27 +354,27 @@ \section{Astronomical Photometry} \end{equation} -Using this expression a measurement in magnitudes can be converted to a -flux density, given the zero point flux of the reference spectrum. The -magnitude of reference $m_{R}$ and the zero point $f_0$ will be defined -in the document. $m_{R}$ is initially chosen to be zero (or one for -linear photometric systems) in most of the photometric systems although, -continuous recalibration of the photometric system could +Using this expression a measurement in magnitudes can be converted to a +flux density, given the zero point flux of the reference spectrum. The +magnitude of reference $m_{R}$ and the zero point $f_0$ will be defined +in the document. $m_{R}$ is initially chosen to be zero (or one for +linear photometric systems) in most of the photometric systems although, +continuous recalibration of the photometric system could produce a deviation of this initial value. \par -There are a number of magnitude systems that are defined by the reference -spectrum. The three most commonly used magnitude systems are the Vega -magnitude, $AB_{\nu }$ magnitude and $ST_{\lambda }$ magnitude systems. -The Vega magnitude system uses the spectrum of Vega (Alpha Lyrae) as the -reference spectrum $F_R (x)$. The $AB_{\nu }$ magnitude system uses -reference spectrum defined by a constant flux density per unit frequency +There are a number of magnitude systems that are defined by the reference +spectrum. The three most commonly used magnitude systems are the Vega +magnitude, $AB_{\nu }$ magnitude and $ST_{\lambda }$ magnitude systems. +The Vega magnitude system uses the spectrum of Vega (Alpha Lyrae) as the +reference spectrum $F_R (x)$. The $AB_{\nu }$ magnitude system uses +reference spectrum defined by a constant flux density per unit frequency ($F_{\nu }$) and the -$ST_{\lambda }$ magnitude system uses a reference spectrum of a constant -flux density per unit wavelength ($F_{\lambda }$). The values of $F_{\nu }$ +$ST_{\lambda }$ magnitude system uses a reference spectrum of a constant +flux density per unit wavelength ($F_{\lambda }$). The values of $F_{\nu }$ and $F_{\lambda }$ that respectively define the zero points $m_{AB,\nu } =0$ and -$m_{ST,\lambda } =0$ have been chosen to be the mean flux density of +$m_{ST,\lambda } =0$ have been chosen to be the mean flux density of Vega in the Johnson V band. \begin{equation} \label{eq:7_0} @@ -388,120 +394,114 @@ \section{Astronomical Photometry} \end{equation} -A convenient graphical representation of these systems is shown in +A convenient graphical representation of these systems is shown in Figure 3.1 of the Synphot manual: \url{http://www.stsci.edu/resources/software_hardware/stsdas/synphot/SynphotManual.pdf}. \par -For a photometric system that uses Vega magnitudes, the zero point -flux for each filter is the average flux density of Vega over that -bandpass $f_{Vega}$. Some typical values of $f_{Vega}$ are tabulated in -\citep{2001eaa..book.....M} for the Johnson photometric system. Although -the agreed Vega spectrum has changed historically, the commonly referred to -spectrum of Vega in digital form described in \citep{2004AJ....127.3508B} +For a photometric system that uses Vega magnitudes, the zero point +flux for each filter is the average flux density of Vega over that +bandpass $f_{Vega}$. Some typical values of $f_{Vega}$ are tabulated in +\citep{2001eaa..book.....M} for the Johnson photometric system. Although +the agreed Vega spectrum has changed historically, the commonly referred to +spectrum of Vega in digital form described in \citep{2004AJ....127.3508B} is available as file at \emph{alpha\_lyr\_stis\_002.fits} at:\par \url{http://www.stsci.edu/instruments/observatory/cdbs/calspec} \par -In the AB system, the flux density (in units of $erg\, cm^{_2}\, s^{-1}\, Hz^{-1}$) +In the AB system, the flux density (in units of $erg\, cm^{_2}\, s^{-1}\, Hz^{-1}$) corresponding to a given magnitude is simply obtained via: \begin{equation} \label{eq:11} f_{\nu} = 10^{-0.4(m_{AB}+48.6)} \end{equation} -And, in the same way, in the ST system, the flux density (in units of $erg\, +And, in the same way, in the ST system, the flux density (in units of $erg\, cm^{_2}\, s^{-1}\, \angstrom^{-1}$) corresponding to a given magnitude is: \begin{equation} \label{eq:12} f_{\lambda} = 10^{-0.4(m_{ST}+21.1)} \end{equation} -Another magnitude system is the Asinh magnitude system in which magnitudes +Another magnitude system is the Asinh magnitude system in which magnitudes are defined as \begin{equation} \label{eq:13} m = \frac{2.5}{ln(10)} \left[ sinh^{-1}(\frac{f}{2bf_0}) +ln(b) \right] \end{equation} -where b is known as the softening parameter. Details of the Asinh magnitude -system and the softening parameters are described in +where b is known as the softening parameter. Details of the Asinh magnitude +system and the softening parameters are described in \url{http://www.sdss.org/DR7/algorithms/photometry.html} \par \section{Photometry Data Model} \label{datamodel} -The model shown in Figure 1, organizes the structure and detailed metadata -fields of the Photometry Data Model in a logical manner, and shows the -relationship to other IVOA data models. The metadata fields for each class +The model shown in Figure 1, organizes the structure and detailed metadata +fields of the Photometry Data Model in a logical manner, and shows the +relationship to other IVOA data models. The metadata fields for each class specify the essential elements required to describe a photometric measurement. \par -The main class in this diagram is Photometry Filter. This class contains -all the attributes necessary to describe a filter from the data discovery +The main class in this diagram is Photometry Filter. This class contains +all the attributes necessary to describe a filter from the data discovery point of view. \par -A Photometric System is a grouping of individual Photometry Filters. This may +A Photometric System is a grouping of individual Photometry Filters. This may represent a particular set of filters that are related in some way. \par -A magnitude system is characterised for a certain reference spectrum that -will produce a certain zero point for a certain photometry filter. This -reference spectrum could be an ideal one (as in STmag and ABmag systems), a -Vega-like spectrum (as in VegaMag systems) (please notice that different Vega -spectrum versions have been historically used) or any other. In many cases, -the reference spectrum has been calculated as an average of spectra from several +A magnitude system is characterised for a certain reference spectrum that +will produce a certain zero point for a certain photometry filter. This +reference spectrum could be an ideal one (as in STmag and ABmag systems), a +Vega-like spectrum (as in VegaMag systems) (please notice that different Vega +spectrum versions have been historically used) or any other. In many cases, +the reference spectrum has been calculated as an average of spectra from several astronomical objects. This would be characterised by a set of Source instances. \par -A zero point would then be a flux value that can be considered as zero -magnitude, so its value will allow conversions from fluxes to magnitudes -and the other way around. It has associated a photometry filter and it also -depends on the magnitude system (reference spectrum) used to calculate this +A zero point would then be a flux value that can be considered as zero +magnitude, so its value will allow conversions from fluxes to magnitudes +and the other way around. It has associated a photometry filter and it also +depends on the magnitude system (reference spectrum) used to calculate this magnitude. \par -There are different types of zero points (Pogson, asinh, linear etc) that will -essentially differ in the way that getFluxFromMagnitude and getMagnitudeFromFlux -operators are implemented plus extra information that could be needed to do +There are different types of zero points (Pogson, asinh, linear etc) that will +essentially differ in the way that getFluxFromMagnitude and getMagnitudeFromFlux +operators are implemented plus extra information that could be needed to do these conversions. \par -An intermediate class, PhotCal, can be understood as a certain photometry -filter instance, i.e., a certain photometry filter using a certain magnitude -system and linked to a certain zero point class. -%mir as suggested by MCD -PhotCal is the class node where a spectral data model interacts. -It binds the filter and -zeropoint information to the Flux Axis calibration. It can be understood as the -calibration configuration used, bringing together a specific photometry filter -instance with magnitude system and zeropoint. It leverages the handling of +An intermediate class, PhotCal, can be understood as a certain photometry +filter instance, i.e., a certain photometry filter using a certain magnitude +system and linked to a certain zero point class. +%mir as suggested by MCD +PhotCal is the class node where a spectral data model interacts. +It binds the filter and +zeropoint information to the Flux Axis calibration. It can be understood as the +calibration configuration used, bringing together a specific photometry filter +instance with magnitude system and zeropoint. It leverages the handling of photometric data through IVOA protocols e.g. SSAP or TAP services. \par -A Spectrum would have a Characterization Coordsys element that will have -associated a certain PhotCal element in the case of photometry data. Using -this information, magnitudes from different photometric systems could be +A Spectrum would have a Characterization Coordsys element that will have +associated a certain PhotCal element in the case of photometry data. Using +this information, magnitudes from different photometric systems could be compared between them or compared to spectroscopic data expressed in flux. \par %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 starts here %%%%%%%%%%%%%%%%%%%% -% -- MireilleLouys -% I would prefer to use the diagram I provided in Modelio, -% because it traces more details on the associations, and contains the -% descriptions inserted in -% the generated VO-DML xml file -% the file for replacement will be -% "./schema/PhotDMv1-1-overview diagram-2021-04-12.png" -% -- Mireille Louys \begin{figure}[H] -%\includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotDMv1-1.png} -% update Mireille new diagram -\includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_jan22.png} +\includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_20220520.png} \caption{Overview class diagram of the Photometry Data Model maintained with Modelio 3.8.} \end{figure} +\begin{figure}[H] +\includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesDiagram_PR_20220520.png} +\caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} +\end{figure} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 Ends here %%%%%%%%%%%%%%%%%%%% @@ -514,25 +514,27 @@ \section{Photometry Data Model} \label{datamodel} %%%%%%%%%%%% Starting New Page here %%%%%%%%%%%%%% \newpage -In order to fully describe values of the magnitudes inside photometry point -instances, the class diagram makes use of physical quantity classes. These -classes glue all the basic fields that compose a physical measurement: value, -error, units, etc. However, within the present specification, we will describe -individual attributes of the different quantities and as a consequence. All -the utypes will be also generated from individual physical quantity -attributes what will facilitate the use within IVOA Data Access Layer protocols. +In order to fully describe values of the magnitudes inside photometry point +instances, the former PhotDM v1.0 used physical quantity classes which used to +aggregate all the basic fields that compose a physical measurement: value, +error, units, etc. However, within the present specification, we will describe +individual attributes of the different quantities separately. +This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 +did not match the one proposed in the VODML ivoa template. As a consequence, the UTypes are also +generated from individual attributes to facilitate the use within IVOA Data Access Layer protocols. + \par \subsection{PhotometricSystem Class} -This class briefly describes the photometric system that contains a set of -photometry filters. Photometry filters can be contained in a certain -photometric system as part of the same observatory/telescope or as part +This class briefly describes the photometric system that contains a set of +photometry filters. Photometry filters can be contained in a certain +photometric system as part of the same observatory/telescope or as part of a known system. \par \subsubsection{PhotometricSystem.description: String} -This String contains a human readable short-text representation of the -photometric system. This will allow client applications to display +This String contains a human readable short-text representation of the +photometric system. This will allow client applications to display textual information to final users. \par @@ -549,7 +551,7 @@ \subsubsection{PhotometricSystem.description: String} \subsubsection{PhotometricSystem.detectorType: integer} -Detector type associated to this photometric system. Possible +Detector type associated to this photometric system. Possible values are: @@ -582,11 +584,11 @@ \subsubsection{PhotometricSystem.detectorType: integer} %%%%%%%%%%%%%%%%%%%% Table No: 3 ends here %%%%%%%%%%%%%%%%%%%% -This will be used in order to decide how to calculate the -flux average in, e.g., the synthetic photometry calculations. -% mir MCD Suggestion -At present, this list is exhaustive. -See the description of photometry filter +This will be used in order to decide how to calculate the +flux average in, e.g., the synthetic photometry calculations. +% mir MCD Suggestion +At present, this list is exhaustive. +See the description of photometry filter transmission curve to understand how to use this field. \par @@ -595,9 +597,9 @@ \subsection{PhotometryFilter Class} \par \subsubsection{PhotometryFilter.identifier: String} -This field identifies, in a unique way, within a certain Photometry -Filter Profile service, a filter. Although the main requirement of -this data model field is to be unique within a Filter Profile Service, +This field identifies, in a unique way, within a certain Photometry +Filter Profile service, a filter. Although the main requirement of +this data model field is to be unique within a Filter Profile Service, the suggested syntax would be: \par @@ -609,12 +611,12 @@ \subsubsection{PhotometryFilter.identifier: String} %%%%%%%%%%%%%%%%%%%% Table No: 4 ends here %%%%%%%%%%%%%%%%%%%% -where \textit{Facility} is the telescope, observatory, space mission, -etc that has this filter, \textit{Subcategory} is a meaningful -classification of filters within a facility (usually instrument), -\textit{Band} is the generic name used to describe the wavelength -band used by this filter and \textit{Suffix} is optional metadata added -to the unique identifier string to ensure uniqueness within a Filter +where \textit{Facility} is the telescope, observatory, space mission, +etc that has this filter, \textit{Subcategory} is a meaningful +classification of filters within a facility (usually instrument), +\textit{Band} is the generic name used to describe the wavelength +band used by this filter and \textit{Suffix} is optional metadata added +to the unique identifier string to ensure uniqueness within a Filter Profile Service. \par @@ -627,12 +629,12 @@ \subsubsection{PhotometryFilter.identifier: String} %%%%%%%%%%%%%%%%%%%% Table No: 5 ends here %%%%%%%%%%%%%%%%%%%% \subsubsection{PhotometryFilter.fpsIdentifier: String} -IVOA identifier of the filter profile service where this photometry -filter is registered to be used in the discovery of all the relevant +IVOA identifier of the filter profile service where this photometry +filter is registered to be used in the discovery of all the relevant photometry filter properties. \par -This identifier follows the IVOA syntax defined for IVOA +This identifier follows the IVOA syntax defined for IVOA identifiers \citep{2016ivoa.spec.0523D} which gives a string built up as: \par @@ -657,9 +659,9 @@ \subsubsection{PhotometryFilter.fpsIdentifier: String} \par Whenever the definition of the FPS filter profile service is standardised, -the service url of the filter profile service could be obtained -from the registry by requesting the associated information of this -registry resource, e.g., once registered the service URL associated +the service url of the filter profile service could be obtained +from the registry by requesting the associated information of this +registry resource, e.g., once registered the service URL associated to this Filter Profile Service would be, e.g.: \par @@ -672,8 +674,8 @@ \subsubsection{PhotometryFilter.fpsIdentifier: String} URL would be the previously mentioned. \subsubsection{PhotometryFilter.name: String} -This String contains a human readable representation of the filter -name. This will allow client applications to display information +This String contains a human readable representation of the filter +name. This will allow client applications to display information to the final user. \par @@ -689,16 +691,16 @@ \subsubsection{PhotometryFilter.name: String} %%%%%%%%%%%%%%%%%%%% Table No: 9 ends here %%%%%%%%%%%%%%%%%%%% \subsubsection{PhotometryFilter.description: String} -This String contains a verbose human readable string description of the -filter. This will allow client applications to display text information +This String contains a verbose human readable string description of the +filter. This will allow client applications to display text information to the final user. \par \subsubsection{PhotometryFilter.bandName: String} -This String contains a standard representation of the spectral band -associated to this filter (if any). This information is useful for human -interpretation but it is discouraged to use it for discovery purposes. The -reason is that a filter is not always properly represented by a standard +This String contains a standard representation of the spectral band +associated to this filter (if any). This information is useful for human +interpretation but it is discouraged to use it for discovery purposes. The +reason is that a filter is not always properly represented by a standard band so filters could be lost in a query response. \par @@ -716,47 +718,47 @@ \subsubsection{PhotometryFilter.bandName: String} \par \subsubsection{PhotometryFilter Time Validity Range} -The following fields will be used to characterize the validity time range of -this specific photometry filter configuration. This is particularly useful -for ground based telescopes where filter, electronics, etc. could easily +The following fields will be used to characterize the validity time range of +this specific photometry filter configuration. This is particularly useful +for ground based telescopes where filter, electronics, etc. could easily change generating versions of the same photometry filter. -Validity time stamps are expressed as ISOTime as specified in DALI \citep{2017ivoa.spec.0517D} -timestamps\par +Validity time stamps are expressed as ISOTime as specified in DALI \citep{2017ivoa.spec.0517D} +timestamps\par %%%%%%%%%%%%%%%%%%%% Table No: 11 starts here %%%%%%%%%%%%%%%%%%%% YYYY-MM-DD[T[hh[:mm[:ss[.s]]]]] \bigskip %%%%%%%%%%%%%%%%%%%% Table No: 11 ends here %%%%%%%%%%%%%%%%%%%% \paragraph{PhotometryFilter.dateValidityFrom: ISOTime} -Start time of the time coverage when this filter configuration is -applicable. +Start time of the time coverage when this filter configuration is +applicable. \paragraph{PhotometryFilter.dateValidityTo: ISOTime} -End time of the time coverage when this filter configuration is +End time of the time coverage when this filter configuration is applicable. \subsubsection{PhotometryFilter.transmissionCurve} -Here we consider how wavelengths/frequencies are filtered in the whole -acquisition chain for a calibrated observation stemming from a given +Here we consider how wavelengths/frequencies are filtered in the whole +acquisition chain for a calibrated observation stemming from a given data collection. \par -This means that within the same data collection most observations will +This means that within the same data collection most observations will point to the same PhotometryFilter.transmissionCurve. \par -The effective transmission curve may be represented as a 2-D graph that -describes the transmission properties of the filter over a wavelength +The effective transmission curve may be represented as a 2-D graph that +describes the transmission properties of the filter over a wavelength range defined by the filter bandpass. \par -It is composed of a spectral coordinate in the x-axis and a scalar in -the y-axis. This effective response curve encloses all the possible -components that modify the energy/photon collection, including detector, -telescope and even atmosphere for transmission curves referenced in -measurements. -Most modern surveys try to reduce everything according to a given airmass -(e.g. 1.3) and this is particularly important for ground-based filters +It is composed of a spectral coordinate in the x-axis and a scalar in +the y-axis. This effective response curve encloses all the possible +components that modify the energy/photon collection, including detector, +telescope and even atmosphere for transmission curves referenced in +measurements. +Most modern surveys try to reduce everything according to a given airmass +(e.g. 1.3) and this is particularly important for ground-based filters with $\lambda < 4000 \angstrom $ or $\lambda > 7000 \angstrom $. \par @@ -772,10 +774,10 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par -This curve can be used, e.g. for the creation of synthetic photometry -\citep{1996BaltA...5..459S,2004A&A...422..205G} from an observational -or a theoretical spectrum by applying it to the spectrum in the filter band-pass. -Taking as input a certain flux, the effective flux as seen using a certain +This curve can be used, e.g. for the creation of synthetic photometry +\citep{1996BaltA...5..459S,2004A&A...422..205G} from an observational +or a theoretical spectrum by applying it to the spectrum in the filter band-pass. +Taking as input a certain flux, the effective flux as seen using a certain filter would be, for energy counters \citep{2007ASPC..364..227M}: \begin{equation} \label{eq:14} @@ -788,56 +790,56 @@ \subsubsection{PhotometryFilter.transmissionCurve} f(\lambda_{eff}) = \frac{\int T(\lambda)F(\lambda)\lambda d\lambda}{\int T(\lambda)\lambda d\lambda} \end{equation} -Where $T(\lambda)$ is the transmission curve, $f(\lambda)$ is the flux of -the spectrum. As the transmission curve is defined only in the filter -band-pass, the limits of the integrals corresponds to the spectral range where -the transmission curve is defined (stored as \textit{PhotometryFilter.bandwidth} +Where $T(\lambda)$ is the transmission curve, $f(\lambda)$ is the flux of +the spectrum. As the transmission curve is defined only in the filter +band-pass, the limits of the integrals corresponds to the spectral range where +the transmission curve is defined (stored as \textit{PhotometryFilter.bandwidth} in this data model) \par -The transmission curve can be closely (although not fully) identified as an array -of points as in a spectrum. There are various ways to provide this information -either directly in an embedded table, or using a reference to a serialized table +The transmission curve can be closely (although not fully) identified as an array +of points as in a spectrum. There are various ways to provide this information +either directly in an embedded table, or using a reference to a serialised table file. \par -Spectral and transmission coordinates can be gathered directly as a table using -TransmissionPoint utypes (see \ref{serializationfilter}). +Spectral and transmission coordinates can be gathered directly as a table using +UTypes of TransmissionPoint attributes (see \ref{serialisationfilter}). \par \subsubsection{PhotometryFilter.spectralLocation.value: real} -A spectral coordinate value that can be considered by the data provider as the -most representative for this specific filter band-pass. The selection of this -value should take into account the filter transmission curve profile and in -general should be close to the wavelength mean value, defined +A spectral coordinate value that can be considered by the data provider as the +most representative for this specific filter band-pass. The selection of this +value should take into account the filter transmission curve profile and in +general should be close to the wavelength mean value, defined in \citet{1982AJ.....87..670O} as: \par \begin{equation} \label{eq:16} \lambda_{mean} = \frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda)d\lambda} \end{equation} -where $\lambda_{mean}$ is the spectral bounds mean value, $T(\lambda)$ is -the transmission curve (see below), $\lambda$ is the wavelength. Please -notice that, since the transmission curve will only be defined in a specific -spectral range, the integrals will also be effectively defined in this +where $\lambda_{mean}$ is the spectral bounds mean value, $T(\lambda)$ is +the transmission curve (see below), $\lambda$ is the wavelength. Please +notice that, since the transmission curve will only be defined in a specific +spectral range, the integrals will also be effectively defined in this spectral range. \par -Another convenient definition of an effective wavelength is the +Another convenient definition of an effective wavelength is the $``$pivot wavelength$"$ defined as follows: \begin{equation} \label{eq:17} \lambda_{pivot} = \sqrt{\frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda)\frac{d\lambda}{\lambda}}} \end{equation} -It can be proved that the pivot wavelength fulfills the following +It can be proved that the pivot wavelength fulfills the following relation between the $f_\lambda$ and $f_\nu $: \begin{equation} \label{eq:18} \langle f_\nu \rangle =\langle f_\lambda \rangle \lambda^2_{pivot}/c \end{equation} -Other definitions for effective wavelengths commonly used in the literature +Other definitions for effective wavelengths commonly used in the literature are source dependent as, e.g., the isophotal wavelength: \begin{equation} \label{eq:19} \lambda_{mean} = \frac{\int \lambda F_\lambda(\lambda)T(\lambda)d\lambda}{\int F_\lambda(\lambda)T(\lambda)d\lambda} @@ -851,33 +853,33 @@ \subsubsection{PhotometryFilter.spectralLocation.value: real} but these source dependent definitions have two caveats: \begin{itemize} - \item{Real spectra do not necessarily satisfy the requirements of the mean value theorem, + \item{Real spectra do not necessarily satisfy the requirements of the mean value theorem, which could produce multiple values for the wavelength.} - \item{Calculation of these wavelengths implies the knowledge of $F_\lambda $ (usually - what you want to measure) and it does not look like an intrinsic property of the + \item{Calculation of these wavelengths implies the knowledge of $F_\lambda $ (usually + what you want to measure) and it does not look like an intrinsic property of the photometry filter.} \end{itemize}\par \subsubsection{PhotometryFilter.transmissionCurve} -This data model field stores points of the curve in place in a simple table using spectrum -data fields as shown above. See serialization example in section -\ref{serializationfilter} \par +This data model field stores points of the curve in place in a simple table using spectrum +data fields as shown above. See serialisation example in section +\ref{serialisationfilter} \par \paragraph{PhotometryFilter.transmissionCurve.access} -If the transmission curve is hooked as an external file, we use the \textit{Access} class -defined in the Observation Core Components data model \citep{2017ivoa.spec.0509L} and inherited +If the transmission curve is hooked as an external file, we use the \textit{Access} class +defined in the Observation Core Components data model \citep{2017ivoa.spec.0509L} and inherited from the SSA specification \citep{2012ivoa.spec.0210T}. \par -\subparagraph{PhotometryFilter.transmissionCurve.access.reference} +\subparagraph{PhotometryFilter.transmissionCurve.access.reference} -The access reference is a URI (typically a URL) which can be used to retrieve the +The access reference is a URI (typically a URL) which can be used to retrieve the specific dataset described in a row of the query table response. \par \subparagraph{PhotometryFilter.transmissionCurve.access.format} -The PhotometryFilter.transmissionCurve.access.format data model field tells the MIME -type of the file pointed to and used to store the curve points. Values for this +The PhotometryFilter.transmissionCurve.access.format data model field tells the MIME +type of the file pointed to and used to store the curve points. Values for this string can generally be:\par %%%%%%%%%%%%%%%%%%%% Table No: 13 starts here %%%%%%%%%%%%%%%%%%%% @@ -890,21 +892,21 @@ \subsubsection{PhotometryFilter.transmissionCurve} %%%%%%%%%%%%%%%%%%%% Table No: 13 ends here %%%%%%%%%%%%%%%%%%%% -The file content will be a spectrum serialization with -\textit{PhotometryFilter.transmissionCurve.spectrum.Dataset.DataModel} set to -$``$Spectrum1.1$"$ for instance, and all necessary fields for the spectral and +The file content will be a spectrum serialisation with +\textit{PhotometryFilter.transmissionCurve.spectrum.Dataset.DataModel} set to +$``$Spectrum1.1$"$ for instance, and all necessary fields for the spectral and flux coordinates. \par -\subparagraph{PhotometryFilter.transmissionCurve.access.size} -Approximate estimated size of the dataset, specified in kilobytes. This would -help the client estimate download times and storage requirements when generating -execution plans. Only an approximate, order of magnitude value is required (a value +\subparagraph{PhotometryFilter.transmissionCurve.access.size} +Approximate estimated size of the dataset, specified in kilobytes. This would +help the client estimate download times and storage requirements when generating +execution plans. Only an approximate, order of magnitude value is required (a value rounded up to the nearest hundred kB would be sufficient).\par -\paragraph{PhotometryFilter.transmissionCurve.transmissionPoint} -The transmission curve is a mathematical function that describes the transmission -fraction of a certain filter in a defined spectral range. This function can be discretised +\paragraph{PhotometryFilter.transmissionCurve.transmissionPoint} +The transmission curve is a mathematical function that describes the transmission +fraction of a certain filter in a defined spectral range. This function can be discretised as a set of transmission points and every point will be composed by five attributes: \par @@ -915,7 +917,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} \item{ucd, type UCD, used to indicates the type of spectral coordinate from the ontological point of view} \item{One transmissionValue, unitless real, with a value between 0 and 1} \end{itemize} - + One example for PhotometryFilter.transmissionCurve.transmissionPoint.ucd could be, for example: \par @@ -926,7 +928,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} Where \textit{em.wl }indicates that the spectral coordinate is provided in wavelength. \par -The Unit and UCD strings follow specific constraints defined in the IVOA standards and are +The Unit and UCD strings follow specific constraints defined in the IVOA standards and are implemented using type restrictions on strings. \par @@ -941,8 +943,8 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} Char.SpectralAxis.Coverage.Location.Bounds \end{center}\par -\noindent concept of the Characterization Data Model, -the basic elements of this object are described +\noindent concept of the Characterization Data Model, +the basic elements of this object are described within the context of a photometry filter as follows. \par @@ -955,27 +957,27 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} \par \paragraph{PhotometryFilter.bandwidth.extent: real} -For square filters (100$\%$ between the minimum and maximum wavelength and 0$\%$ otherwise), +For square filters (100$\%$ between the minimum and maximum wavelength and 0$\%$ otherwise), the bandwidth could be described as $\lambda_{max} - \lambda_{min}$. \par -However, for real filters, the bandwidth is not very usable to describe the band-pass of the +However, for real filters, the bandwidth is not very usable to describe the band-pass of the filter, but the effective width, that can be described as follows: \begin{equation} \label{eq:21} w = \frac{\int T(\lambda)d\lambda}{Max(T(\lambda))} \end{equation} -where $w$ is the effective width, $T(\lambda)$ is the transmission curve (see below) -and $Max(T(\lambda))$ the maximum value of the transmission curve. As in previous points, -please notice that, since the transmission curve will be only defined in a specific spectral +where $w$ is the effective width, $T(\lambda)$ is the transmission curve (see below) +and $Max(T(\lambda))$ the maximum value of the transmission curve. As in previous points, +please notice that, since the transmission curve will be only defined in a specific spectral range, the integrals will also be defined in this spectral range. \par \paragraph{PhotometryFilter.bandwith.start: real} %mir suggestion from MCD review -Also called $\lambda_{min}$ in the rest of the document, this is a spectral value that better describes +Also called $\lambda_{min}$ in the rest of the document, this is a spectral value that better describes the reasonable minimum value of the spectral range of the filter band-pass. In general, -although this -will not be imposed in order to allow a better description for different types of +although this +will not be imposed in order to allow a better description for different types of transmission curves, this quantity will be close to: \begin{equation} \label{eq:22} %mir suggestion from MCD review @@ -986,27 +988,27 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} \par \paragraph{PhotometryFilter.bandwith.stop: real} -Also called $\lambda_{max}$ in the rest of the document, this is a spectral value that -better describes the reasonable maximum value of the spectral range of the filter band-pass. -In general, -although this will not be imposed in order to allow a better description for different +Also called $\lambda_{max}$ in the rest of the document, this is a spectral value that +better describes the reasonable maximum value of the spectral range of the filter band-pass. +In general, +although this will not be imposed in order to allow a better description for different types of transmission curves, this quantity will be close to: \begin{equation} \label{eq:23} \lambda_{max} = \lambda_{mean} + \frac{w}{2} \end{equation} -In practice, this could be taken as the maximum value of the filter transmission +In practice, this could be taken as the maximum value of the filter transmission curve.\par \subsection{PhotCal Class} -PhotDM is a class to describe the use of a photometry filter by using a certain magnitude system +PhotDM is a class to describe the use of a photometry filter by using a certain magnitude system configuration. It has associated a certain zero point object. \par \subsubsection{PhotCal.identifier: String} -This field identifies, in a unique way, within a certain Photometry Filter Profile -service, a zero point assigned to a filter and a certain photometric system type. -Although the main requirement of the uniqueIdentifier is to be unique within a Filter +This field identifies, in a unique way, within a certain Photometry Filter Profile +service, a zero point assigned to a filter and a certain photometric system type. +Although the main requirement of the uniqueIdentifier is to be unique within a Filter Profile Service, the suggested syntax would be: \par @@ -1016,17 +1018,17 @@ \subsubsection{PhotCal.identifier: String} %%%%%%%%%%%%%%%%%%%% Table No: 15 ends here %%%%%%%%%%%%%%%%%%%% -where \textit{Facility} is the telescope, observatory, space mission, etc that -has this filter, \textit{Subcategory} is a meaningful classification of filters -within a facility (usually instrument), \textit{Band} is the generic name used to -describe the wavelength band used by this filter \textit{Photometric System Type} -makes reference to the type of system as per classification within this document -and \textit{Suffix} is optional metadata added to the unique identifier string to +where \textit{Facility} is the telescope, observatory, space mission, etc that +has this filter, \textit{Subcategory} is a meaningful classification of filters +within a facility (usually instrument), \textit{Band} is the generic name used to +describe the wavelength band used by this filter \textit{Photometric System Type} +makes reference to the type of system as per classification within this document +and \textit{Suffix} is optional metadata added to the unique identifier string to ensure uniqueness within a Filter Profile Service. \par -Please notice the suggested syntax of PhotCal unique identifier syntax corresponds -with the Photometry Filter unique identifier concatenated with the photometric +Please notice the suggested syntax of PhotCal unique identifier syntax corresponds +with the Photometry Filter unique identifier concatenated with the photometric system type. \par @@ -1052,15 +1054,15 @@ \subsubsection{PhotCal.magnitudeSystem: MagnitudeSystem} \par \subsection{ZeroPoint Class} -This class is used to characterize a zero point flux obtained during the -calibration of a certain photometry filter on a certain photometric system -configuration. This object includes references to the relevant Photometric +This class is used to characterize a zero point flux obtained during the +calibration of a certain photometry filter on a certain photometric system +configuration. This object includes references to the relevant Photometric System and Photometry Filter objects. \par \subsubsection{ZeroPoint.flux.value: real} -Flux of an astronomical object that produces a magnitude of reference -(usually set as zero) for this particular filter and photometric system. +Flux of an astronomical object that produces a magnitude of reference +(usually set as zero) for this particular filter and photometric system. This quantity is necessary to convert to flux a certain magnitude. \par @@ -1073,34 +1075,34 @@ \subsubsection{ZeroPoint.flux.value: real} See ZeroPoint.type description for other definitions. \par -The flux could be expressed as $f_{\lambda}$ or $f_{\nu}$, leaving the -characterization of the type of flux to the units in which this quantity +The flux could be expressed as $f_{\lambda}$ or $f_{\nu}$, leaving the +characterization of the type of flux to the units in which this quantity is expressed. \par \subsubsection{ZeroPoint.referenceMagnitude.value: real} -Most of the time, the zero point flux is defined for a magnitude=0 value. -However, to give room to other cases, another reference magnitude value can -be given instead of zero. The use of this reference magnitude is described in -the different getMagnitudeFromFlux() and getFluxFromMagnitude() zero point +Most of the time, the zero point flux is defined for a magnitude=0 value. +However, to give room to other cases, another reference magnitude value can +be given instead of zero. The use of this reference magnitude is described in +the different getMagnitudeFromFlux() and getFluxFromMagnitude() zero point extension operations. \par -Please notice that, by default, reference magnitude will be zero unless +Please notice that, by default, reference magnitude will be zero unless specified otherwise. \par -The reference magnitude is a dimensionless variable. +The reference magnitude is a dimensionless variable. \par \subsubsection{ZeroPoint.referenceMagnitude.error: real} -Total error estimated of the reference magnitude whenever applicable. Reference +Total error estimated of the reference magnitude whenever applicable. Reference Magnitude error is a dimensionless variable.\par \subsubsection{ZeroPoint.type: integer} -Usual definition of magnitudes, also called Pogson magnitudes, can be improved -for faint sources by replacing the usual logarithm with an inverse hyperbolic -sine function. These kinds of magnitudes are called $``$asinh magnitudes$"$ +Usual definition of magnitudes, also called Pogson magnitudes, can be improved +for faint sources by replacing the usual logarithm with an inverse hyperbolic +sine function. These kinds of magnitudes are called $``$asinh magnitudes$"$ or $``$luptitudes$"$ \citep{2004A&A...422..205G}.\par %%%%%%%%%%%%%%%%%%%% Table No: 17 starts here %%%%%%%%%%%%%%%%%%%% @@ -1123,13 +1125,13 @@ \subsubsection{ZeroPoint.type: integer} %row no:3 \multicolumn{1}{|p{2.42in}}{Asinh} & \multicolumn{1}{|p{0.8in}}{1} & -\multicolumn{1}{|p{1.55in}|}{Used for faint sources, replacing the usual +\multicolumn{1}{|p{1.55in}|}{Used for faint sources, replacing the usual logarithm with an inverse hyperbolic sine function.} \\ \hline %row no:4 \multicolumn{1}{|p{2.42in}}{LinearFlux} & \multicolumn{1}{|p{0.8in}}{2} & -\multicolumn{1}{|p{1.55in}|}{Linear (not logarithmic) magnitudes used in +\multicolumn{1}{|p{1.55in}|}{Linear (not logarithmic) magnitudes used in Radio, Far Infrared, X-Ray spectral } \\ \hline \end{tabular} @@ -1139,18 +1141,18 @@ \subsubsection{ZeroPoint.type: integer} %%%%%%%%%%%%%%%%%%%% Table No: 17 ends here %%%%%%%%%%%%%%%%%%%% -The main difference between the three types of zero points is the -conversion formulae to be used when translating magnitudes into flux and +The main difference between the three types of zero points is the +conversion formulae to be used when translating magnitudes into flux and reverse.\par -In the ZeroPoint class we define two conversion functions; +In the ZeroPoint class we define two conversion functions; getMagnitudeFromFlux() and getFluxFromMagnitude() defined as:\par \begin{itemize} \item getMagnitudeFromFlux()\par \begin{itemize} - \item{Input Parameters: Flux given in units defined in the + \item{Input Parameters: Flux given in units defined in the ZeroPoint.unit data model field.\par} \item{Output Result: Corresponding magnitude in double.\par} @@ -1164,7 +1166,7 @@ \subsubsection{ZeroPoint.type: integer} \begin{itemize} \item{Input Parameters: Magnitude as real number\par} - \item{Output Result: Corresponding flux given in units defined in + \item{Output Result: Corresponding flux given in units defined in the ZeroPoint.unit data model field.} \end{itemize} \end{itemize} @@ -1172,32 +1174,32 @@ \subsubsection{ZeroPoint.type: integer} \subsection{PogsonZeroPoint Class} -Extension of ZeroPoint to accommodate standard logarithm magnitudes. It +Extension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion functions. \par \subsubsection{PogsonZeroPoint.getFluxFromMagnitude()} -Operator to convert from a flux to a magnitude for Pogson magnitudes. For +Operator to convert from a flux to a magnitude for Pogson magnitudes. For Pogson magnitudes, the usual definition should be used: \par \begin{equation} \label{eq:25} f = f_0 10^{-(m-m_R)/2.5} \end{equation} -Where $f$ is the associated flux, $f_0$ is the flux of reference, $m_0$ is -the magnitude of reference (by default equals to zero) and $m$ is the +Where $f$ is the associated flux, $f_0$ is the flux of reference, $m_0$ is +the magnitude of reference (by default equals to zero) and $m$ is the observed magnitude. \par \subsubsection{PogsonZeroPoint.getMagnitudeFromFlux()} -Operator to convert from a flux to a magnitude for Pogson magnitudes. +Operator to convert from a flux to a magnitude for Pogson magnitudes. For Pogson magnitudes, the usual definition should be used: \begin{equation} \label{eq:26} m = m_R - 2.5\log(\frac{f}{f_0 }) \end{equation} -Where $f$ is the associated flux, $f_0$ is the flux of reference, -$m_R$ is the magnitude of reference (by default equals to zero) and +Where $f$ is the associated flux, $f_0$ is the flux of reference, +$m_R$ is the magnitude of reference (by default equals to zero) and $m$ is the observed magnitude. \par @@ -1206,8 +1208,8 @@ \subsection{AsinhZeroPoint Class} \par \subsubsection{AsinhZeroPoint.softeningParameter: real} -Parameter used to correct the calculation of magnitudes for faint -sources. Usually called b. See \citep{1999AJ....118.1406L} for +Parameter used to correct the calculation of magnitudes for faint +sources. Usually called b. See \citep{1999AJ....118.1406L} for a formal explanation. \par @@ -1242,11 +1244,11 @@ \subsubsection{AsinhZeroPoint.getFluxFromMagnitude()} f = f_0 10^{-(m-m_R )/2.5} \left[ 1-b^2 10^{2(m-m_R )/2.5}\right] \end{equation} -Where $f$ is the flux of the observed source, $f_0$ is the zero -point flux value, $m$ is the magnitude assigned to this source, -$m_0$ is the reference magnitude (default value to zero unless -specified otherwise) and a new parameter appears, $b$, called the -softening parameter which is referenced in this data model as the +Where $f$ is the flux of the observed source, $f_0$ is the zero +point flux value, $m$ is the magnitude assigned to this source, +$m_0$ is the reference magnitude (default value to zero unless +specified otherwise) and a new parameter appears, $b$, called the +softening parameter which is referenced in this data model as the AsihnZeroPoint.softeningParameter. \par @@ -1256,58 +1258,58 @@ \subsubsection{AsinhZeroPoint.getMagnitudeFromFlux()} m = m_R - \frac{-2.5}{ln(10)}\left[ sinh^{-1}\left (\frac{f}{2bf_0}\right) + ln(b) \right] \end{equation} -Where $m$ is the magnitude assigned to this source, $m_R$ is the -reference magnitude (default value to zero unless specified otherwise), -$f$ is the flux of the observed source, $f_0$ is the zero point flux value, -and a new parameter appears, $b$ , called the softening parameter, +Where $m$ is the magnitude assigned to this source, $m_R$ is the +reference magnitude (default value to zero unless specified otherwise), +$f$ is the flux of the observed source, $f_0$ is the zero point flux value, +and a new parameter appears, $b$ , called the softening parameter, which is referenced in this data model as the AsihnZeroPoint.softeningParameter. \par -It can be seen that Pogson and Asinh magnitudes are the same if b=0 -although, numerically it is recommended to use different equations +It can be seen that Pogson and Asinh magnitudes are the same if b=0 +although, numerically it is recommended to use different equations to prevent infinites. See \ref{a.1conversion} \par \subsection{LinearFluxZeroPoint Class} -Extension of ZeroPoint to describe simple linear flux photometry, -commonly used in Radio, Far Infrared and X-ray spectral ranges. -Although not being magnitudes as such, relative linear flux measurements +Extension of ZeroPoint to describe simple linear flux photometry, +commonly used in Radio, Far Infrared and X-ray spectral ranges. +Although not being magnitudes as such, relative linear flux measurements can be included as a special and trivial case of magnitude.\par \subsubsection{LinearFluxZeroPoint.getFluxFromMagnitude()} -For Linear Flux measurements, conversion used would be a linear +For Linear Flux measurements, conversion used would be a linear relation instead of a logarithmic one: \begin{equation} \label{eq:29} f = f_0\frac{m}{m_R} \end{equation} -Where $f$ is the associated flux, $f_0$ is the flux of reference, $m_R$ is -the measurement of reference (default value to one, for this type of zero -points, unless specified otherwise) and $m$ is the relative observed +Where $f$ is the associated flux, $f_0$ is the flux of reference, $m_R$ is +the measurement of reference (default value to one, for this type of zero +points, unless specified otherwise) and $m$ is the relative observed measurement. \par \subsubsection{LinearFluxZeroPoint.getMagnitudeFromFlux()} -For Linear Flux measurements, linear conversion should be used to obtain +For Linear Flux measurements, linear conversion should be used to obtain the relative observed measurement: \begin{equation} \label{eq:30} m = m_R \frac{f}{f_0} \end{equation} -Where $m$ is the relative observed measurement, $m_R$ is the measurement -of reference (default value to one for this type of zero points unless -specified otherwise), $f$ is the associated flux and $f_0$ is the flux +Where $m$ is the relative observed measurement, $m_R$ is the measurement +of reference (default value to one for this type of zero points unless +specified otherwise), $f$ is the associated flux and $f_0$ is the flux of reference.\par \subsection{MagnitudeSystem Class} -The main difference between magnitude systems is the reference spectrum -used to evaluate the magnitudes. In some occasions, the magnitude system -will have a real spectrum of an existing source to calibrate all the magnitudes. +The main difference between magnitude systems is the reference spectrum +used to evaluate the magnitudes. In some occasions, the magnitude system +will have a real spectrum of an existing source to calibrate all the magnitudes. In other occasions, a synthetic spectrum will be used. \par \subsubsection{MagnitudeSystem.type: String} -Photometric system type used to calculate the associated zero point. +Photometric system type used to calculate the associated zero point. Some example values are: \par @@ -1335,19 +1337,19 @@ \subsubsection{MagnitudeSystem.type: String} %%%%%%%%%%%%%%%%%%%% Table No: 19 ends here %%%%%%%%%%%%%%%%%%%% -The list is not exhaustive. The principal difference between these -photometric systems is the reference spectrum used to calculate the +The list is not exhaustive. The principal difference between these +photometric systems is the reference spectrum used to calculate the zero point. See section \ref{referenceSpectrum} for a detailed description. \par \subsubsection{MagnitudeSystem.referenceSpectrum: URI} \label{referenceSpectrum} -This describes the spectrum of an astronomical object used as +This describes the spectrum of an astronomical object used as reference to perform photometric calibration. \par -This points to a Spectrum object as defined in the IVOA spectrum data -model \citep{2011ivoa.spec.1120M}. Instead of having the whole spectrum -attached, we define a link to it as referenceSpectrumURI. +This points to a Spectrum object as defined in the IVOA spectrum data +model \citep{2011ivoa.spec.1120M}. Instead of having the whole spectrum +attached, we define a link to it as referenceSpectrumURI. The spectrum will be retrieved by invoking the URI. For example: \par @@ -1366,10 +1368,10 @@ \subsubsection{MagnitudeSystem.referenceSpectrum: URI} \label{referenceSpectrum} \par \begin{itemize} - \item{VegaMag: Makes use of Vega ($\alpha $Lyr) as the primary calibrating + \item{VegaMag: Makes use of Vega ($\alpha $Lyr) as the primary calibrating star. PhotometricSystem.referenceSpectrum would be the Vega SED\par} - \item{ABmag: Makes use of a reference spectrum of constant flux + \item{ABmag: Makes use of a reference spectrum of constant flux density per unit frequency $f_\nu $:} \end{itemize} \begin{equation} \label{eq:31} @@ -1377,7 +1379,7 @@ \subsubsection{MagnitudeSystem.referenceSpectrum: URI} \label{referenceSpectrum} \end{equation} \begin{itemize} - \item{STmag: Introduced for the HST project, it makes use of a reference spectrum of + \item{STmag: Introduced for the HST project, it makes use of a reference spectrum of constant flux density per unit of wavelength: \begin{equation} \label{eq:32} f_0^{ST} = 3.631 \times 10^{-9} erg\, s^-1 cm^{-2} \angstrom ^{-1} @@ -1385,24 +1387,24 @@ \subsubsection{MagnitudeSystem.referenceSpectrum: URI} \label{referenceSpectrum} \end{itemize} \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Service} -The following fields are the minimal information needed in a DAL service response (SSAP -or TAP) or into a serialization of the magnitude information in a catalogue in order to +The following fields are the minimal information needed in a DAL service response (SSAP +or TAP) or into a serialisation of the magnitude information in a catalogue in order to allow the conversion from magnitudes to fluxes if a filter profile service is used: \par \begin{itemize} - \item{It MUST have one field with\\ utype=$"$spec:Spectrum.Data.FluxAxis.value$"$ - and UCD="phot.mag$"$ by measurement that includes the magnitude associated to + \item{It MUST have one field with\\ utype=$"$spec:Spectrum.Data.FluxAxis.value$"$ + and UCD="phot.mag$"$ by measurement that includes the magnitude associated to this measurement. \par} -Attributes\ to characterize the error of the measurement like\\ -spec:Spectrum.Data.FluxAxis.Accuracy.StatError,\\ -spec:Spectrum.Data.FluxAxis.Accuracy.SysError, etc could also be present +Attributes\ to characterize the error of the measurement like\\ +spec:Spectrum.Data.FluxAxis.Accuracy.StatError,\\ +spec:Spectrum.Data.FluxAxis.Accuracy.SysError, etc could also be present in the response. \par - \item{It MUST have one field per catalogue or measurement - with\\ utype=$"$photdm:PhotCal.identifier$"$ that includes the identifier within the + \item{It MUST have one field per catalogue or measurement + with\\ utype=$"$photdm:PhotCal.identifier$"$ that includes the identifier within the filter profile service of the filter.} \end{itemize}\par @@ -1410,11 +1412,11 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \par \begin{itemize} - \item{Go to the registry to obtain registration details of the Filter Profile service, - using the IVOA identifier. In particular, the service URL of the service will be used + \item{Go to the registry to obtain registration details of the Filter Profile service, + using the IVOA identifier. In particular, the service URL of the service will be used to query this service using the uniqueIdentifier.\par} - \item{Query the Filter Profile Service to obtain basic information of this filter. This + \item{Query the Filter Profile Service to obtain basic information of this filter. This information would be, at least:\par} \begin{itemize} @@ -1428,31 +1430,31 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \end{itemize} \end{itemize}\par -And optionally, any other information that could be used for a better use of the selected +And optionally, any other information that could be used for a better use of the selected data, as, e.g. the Photometry Filter related information. \par -Please notice that all the information of the Filter Profile Service can be overwritten -either in the DAL service or in the data serialization. As an example, it could be -decided that the ZeroPoint.flux to be used was not the general one for this filter -within the filter profile service but the night one. In this case, this corrected -value would appear in the DAL response or in the data serialization so this value, +Please notice that all the information of the Filter Profile Service can be overwritten +either in the DAL service or in the data serialisation. As an example, it could be +decided that the ZeroPoint.flux to be used was not the general one for this filter +within the filter profile service but the night one. In this case, this corrected +value would appear in the DAL response or in the data serialisation so this value, and not the one on the FPS will be used for the conversions. \par -Flux could be then calculated as (for Pogson magnitudes, i.e. Zeropoint.type=0 and +Flux could be then calculated as (for Pogson magnitudes, i.e. Zeropoint.type=0 and reference magnitude = 0) \begin{equation} \label{eq:33} f = f_0 10^{-m/2.5} \end{equation} -Where $f_0$ is the ZeroPoint.flux.value, is the magnitude associated to the -measurement and $f$ is the associated flux. The type of flux ($f_\lambda $ or $f_\nu $) -and the associated units, although they can be indirectly deduced from the field +Where $f_0$ is the ZeroPoint.flux.value, is the magnitude associated to the +measurement and $f$ is the associated flux. The type of flux ($f_\lambda $ or $f_\nu $) +and the associated units, although they can be indirectly deduced from the field MagnitudeSystem, will be the same as those for the ZeroPoint.flux. \par -In case ZeroPoint.type=1 (asinh magnitudes) the value of -AsinhZeroPoint.softeningParameter.value should also be used to modify the conversion +In case ZeroPoint.type=1 (asinh magnitudes) the value of +AsinhZeroPoint.softeningParameter.value should also be used to modify the conversion formula to: \begin{equation} \label{eq:34} f = f_0 10^{-m/2.5}\left[ 1 - b^2 10^{2m/2.5}\right] @@ -1461,13 +1463,13 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \begin{appendices} \section{Conversions} \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} -The zero point flux can also be interpreted as a magnitude in the following way. +The zero point flux can also be interpreted as a magnitude in the following way. Taking the equation \ref{eq:33} and clearing the magnitude: \begin{equation} \label{eq:35} m=-2.5\log_{10}(f/f_0 )=-2.5\log_{10}(f)+2.5\log_{10}(f_0 )=-2.5\log_{10} (f)+m_R \end{equation} -Where we have defined $m_R$, zero point magnitude, as the magnitude associated to +Where we have defined $m_R$, zero point magnitude, as the magnitude associated to the zero point flux: \begin{equation} \label{eq:36} m_R = 2.5\log_{10} (f_0 ) @@ -1478,7 +1480,7 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} m_{AB,\nu } = -2.5\log_{10} (f_\nu ) - 48.6 \end{equation} -Which is consistent with the definition of a zero point flux of the +Which is consistent with the definition of a zero point flux of the monochromatic $f_\nu $ flux: \begin{equation} \label{eq:38} f_{R}^{AB}=3.63 \times 10^{-20} erg\, s^{-1} cm^{-2} Hz^{-1} @@ -1489,8 +1491,8 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} m_R = 2.5\log_{10} (f_{0}^{AB})=2.5 log_10(3.63\times 10^{-20})=-48.6 \end{equation} -Other systems usually define the zero point flux as a $f_\lambda $ flux, as -it is usually done by, e.g., STMag systems. For these systems, the reference +Other systems usually define the zero point flux as a $f_\lambda $ flux, as +it is usually done by, e.g., STMag systems. For these systems, the reference flux would be a monochromatic $f_\lambda $ flux: \begin{equation} \label{eq:40} f_0 ^{ST} = 3.631 \times 10^{-9} erg\, s^{-1} cm^{-2} \angstrom ^{-1} @@ -1511,11 +1513,11 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} m_R =2.5\log_{10} (f_0 ^{ST})=2.5\log_{10} (3.63\times 10^{-9})=-21.1 \end{equation} -In the present model and in order to provide a uniform treatment for all the -different photometric systems, we have used the zero point flux as the quantity -to characterize the photometry filter. The type of flux ($f_\nu $ or $f_lambda $) -and the units of any converted to flux magnitude would coincide with the ones -used to express the zero point flux, i.e., the zero point flux contains information +In the present model and in order to provide a uniform treatment for all the +different photometric systems, we have used the zero point flux as the quantity +to characterize the photometry filter. The type of flux ($f_\nu $ or $f_lambda $) +and the units of any converted to flux magnitude would coincide with the ones +used to express the zero point flux, i.e., the zero point flux contains information lost in the zero point magnitude. \par @@ -1545,10 +1547,16 @@ \subsection{Interrelation between Pogson and Asinh magnitudes} Although, as can be seen in the previous calculation, Asinh magnitudes are equivalent to Pogson when b=0, it is recommended to use different implementation conversion codes for both types of magnitudes as a general implementation both for Pogson (b=0) and asinh (b>0) could easily produce numerical infinites during the evaluation. \par +\section{Data Model VODML documentation} +The VODML description of this model is available at \\ \url{http://ivoa.net/xml/}. -\section{Data Model Summary} +The documentation page generated from this reference XML document is available on the Phot DM v1.1 RFC discussion page : \\ +\url{https://wiki.ivoa.net/internal/IVOA/PhotDM11RFC/Photv1_1_PR_20220520.html} +\section{Data Model Summary} +Here is the table summary of the model, backward compatible to PhotDM v1.0. +It shows the UTypes and UCDs used for each data model element. %%%%%%%%%%%%%%%%%%%% Table No: 20 starts here %%%%%%%%%%%%%%%%%%%% % Mireille : some UCDs need to be changed : @@ -1559,11 +1567,11 @@ \section{Data Model Summary} \begin{adjustbox}{angle=90} \begin{tabular}{p{2.5in}|p{1.5in}|p{2in}|p{0.74in}|p{0.35in}} %row no:1 -\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering +\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{8pt}{8pt}\selectfont \textbf{General Metadata}}} \\ \hline %row no:2 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Utype}}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Default value}}} & @@ -1577,11 +1585,11 @@ \section{Data Model Summary} \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:4 -\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering +\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{8pt}{8pt}\selectfont \textbf{Photometric System Metadata}}} \\ \hline %row no:5 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Utype}}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Default value}}} & @@ -1597,7 +1605,7 @@ \section{Data Model Summary} %row no:7 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometricSystem.detectorType}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.code }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of detector +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Type of detector (e.g energy or photon counter). Possible values defined by enumeration}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0\ (Energy Counter)}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont int}} \\ @@ -1613,11 +1621,11 @@ \section{Data Model Summary} \begin{adjustbox}{angle=90} \begin{tabular}{p{2.5in}|p{1.5in}|p{2in}|p{0.74in}|p{0.35in}} %row no:8 -\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering +\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{8pt}{8pt}\selectfont \textbf{Photometry Filter General Metadata}}} \\ \hline %row no:9 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Utype}}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Default value}}} & @@ -1626,7 +1634,7 @@ \section{Data Model Summary} %row no:10 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.identifer}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifer of +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifer of filter within a Filter Profile Service (FPS)}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1634,7 +1642,7 @@ \section{Data Model Summary} %row no:11 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.fpsIdentifier}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont IVOA identifier of the +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont IVOA identifier of the Filter Profile Service}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1642,7 +1650,7 @@ \section{Data Model Summary} %row no:12 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.name}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.id;instr.filter }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Filter Name in the instrumental } +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Filter Name in the instrumental } \par {\fontsize{10pt}{12.0pt}\selectfont configuration\ }} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1677,11 +1685,11 @@ \section{Data Model Summary} \begin{adjustbox}{angle=90} \begin{tabular}{p{2.5in}|p{1.5in}|p{2in}|p{0.74in}|p{0.35in}} %row no:1 -\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering +\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{10pt}{12.0pt}\selectfont \textbf{Photometry Filter Access Metadata}}} \\ \hline %row no:2 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Utype}}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Default value}}} & @@ -1692,7 +1700,7 @@ \section{Data Model Summary} \selectfont photdm:PhotometryFilter.transmissionCurve.\ access.reference}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont URI to the +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont URI to the effective transmission curve}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont URI type}} \\ @@ -1709,7 +1717,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.spectralValue.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Spectral value +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Spectral value of one element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1719,7 +1727,7 @@ \section{Data Model Summary} \selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.transmissionValue.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt} \selectfont phys.transmission}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Transmission value of +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Transmission value of one element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1745,11 +1753,11 @@ \section{Data Model Summary} \begin{adjustbox}{angle=90} \begin{tabular}{p{2.5in}|p{1.5in}|p{2in}|p{0.74in}|p{0.35in}} %row no:1 -\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering +\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{8pt}{8pt}\selectfont \textbf{Photometry Filter Spectral Axis Coverage}}} \\ \hline %row no:8 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Utype}}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Default value}}} & @@ -1758,7 +1766,7 @@ \section{Data Model Summary} %row no:9 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.bandName}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont instr.bandpass }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Generic name for the +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Generic name for the filter spectral band}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1767,7 +1775,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.spectralLocation.\ value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;meta.main }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference position along the +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference position along the spectral axis. Spectral coordinate of the Zero Point }} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1776,7 +1784,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.spectralLocation.\ unit.expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral axis used +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral axis used to characterize it}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont angstrom}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1785,7 +1793,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.spectralLocation.\ UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral axis wl, freq, energy}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1794,7 +1802,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.bandwidth.unit.\ expression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral extent +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral extent used to characterize the bandwidth object}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont angstrom}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1803,7 +1811,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{ {\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.\ bandwidth.UCD}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral bandwidth: wl, freq, energy, wave number, ...}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont em.*\ as appropriate}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1819,7 +1827,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.bandwidth.\ start.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.min}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Minimum value of the filter +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Minimum value of the filter spectral coverage}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1828,7 +1836,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.bandwidth.\ stop.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.max}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Maximum value of the +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Maximum value of the filter spectral coverage}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1855,11 +1863,11 @@ \section{Data Model Summary} \begin{adjustbox}{angle=90} \begin{tabular}{p{2.5in}|p{1.5in}|p{2in}|p{0.74in}|p{0.35in}} %row no:7 -\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering +\multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{10pt}{12.0pt}\selectfont \textbf{PhotCal Metadata}}} \\ \hline %row no:19 -\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Utype}}} & +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Default value}}} & @@ -1868,7 +1876,7 @@ \section{Data Model Summary} %row no:20 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotometryFilter.dateValidityFrom}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont time.start}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Start of validity for +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Start of validity for this filter in ISOTime format }} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string }} \\ @@ -1877,7 +1885,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.dateValidityTo}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont time.end}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Stop of validity +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Time stamp for Stop of validity for this filter in ISOTime format }} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string }} \\ @@ -1885,7 +1893,7 @@ \section{Data Model Summary} %row no:24 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.identifier}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifier of the Photometry } +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unique identifier of the Photometry } \par {\fontsize{8pt}{8pt}\selectfont Calibration instance within a FPS}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ @@ -1908,7 +1916,7 @@ \section{Data Model Summary} %row no:27 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.value}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.flux.density }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont flux value at Zero point associated +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont flux value at Zero point associated to this filter}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1916,7 +1924,7 @@ \section{Data Model Summary} %row no:28 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont photdm:PhotCal.zeroPoint.\-flux.error}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont stat.error;phot.flux.density}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the flux value at Zero point +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the flux value at Zero point associated to this filter}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1933,7 +1941,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotCal.zeroPoint.\newline referenceMagnitude.error}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont stat.error;phot.mag}} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the reference magnitude +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error in the reference magnitude used for zero point}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0.0}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real} \par } \\ @@ -1956,16 +1964,16 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotCal.magnitudeSystem.\-ReferenceSpectrumURI}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.url }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference SED or spectrum for +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference SED or spectrum for this magnitude system}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont uri type}} \\ \hline %row no:34 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:photdm:AsinhZeroPoint.softeningParameter}} & +\selectfont photdm:AsinhZeroPoint.softeningParameter}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont phot.calib }} & -\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Correction parameter +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Correction parameter for luptitudes}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont 0.0}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ @@ -1979,19 +1987,19 @@ \section{Data Model Summary} %%%%%%%%%%%%%%%%%%%% Table No: 21 ends here %%%%%%%%%%%%%%%%%%%% -The Utypes given here are to be considered opaque strings pointing to data model +The UTypes given here are to be considered opaque strings pointing to data model elements that can be used by consumers of instance documents. -ZeroPoints may belong to one of three categories: Pogson, Asinh or LinearFlux -(leaving room for other future extensions). The treatment of the different +ZeroPoints may belong to one of three categories: Pogson, Asinh or LinearFlux +(leaving room for other future extensions). The treatment of the different categories ZeroPoints differs from the algorithmic point of view. -However, the data structure only differs in the current DM by the addition +However, the data structure only differs in the current DM by the addition of the softening parameter attached to the Asinh case. \par -\section{Data Model Serializations} \label{serialization} -\subsection{Filter Profile Service Serialization} \label{serializationfilter} +\section{Data Model Serialisations} \label{serialisation} +\subsection{Filter Profile Service Serialisation} \label{serialisationfilter} \lstset{ language=xml, @@ -2013,18 +2021,18 @@ \subsection{Filter Profile Service Serialization} \label{serializationfilter} basicstyle=\footnotesize, emph={dmid,dmtype,dmrole,value},emphstyle={\color{magenta}} } - -The following serialization is an example of a response of a filter profile -service making use of the Photometry Filter DM through utypes: + +The following serialisation is an example of a response of a filter profile +service making use of the Photometry Filter DM through UTypes: \par %%%%%%%%%%%%%%%%%%%% listing phot system 2Mass : starts here %%%%%%%%%%%%%%%%%%%% -\lstinputlisting[language=XML,breaklines, caption={SVO Filter Profile +\lstinputlisting[language=XML,breaklines, caption={SVO Filter Profile Service output: Simple VOTable Format}]{./serializations/fpsFilterExample.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% \subsection{Photometric Data in Cone Search} -Catalogs could include photometric measurements in some columns. In order -to allow the publication of these measurements in a. e.g., cone search +Catalogs could include photometric measurements in some columns. In order +to allow the publication of these measurements in a. e.g., cone search service, the creation of a new capability has been proposed. \par @@ -2032,44 +2040,44 @@ \subsection{Photometric Data in Cone Search} \par \begin{itemize} - \item{A cone search (or a future TAP service) will be registered with a + \item{A cone search (or a future TAP service) will be registered with a certain agreed capability, e.g., Photometry.\par} - \item{The response of this service will contain some VOTable groups that - make use of Photometry, Spectral and Characterization data model utypes + \item{The response of this service will contain some VOTable groups that + make use of Photometry, Spectral and Characterization data model UTypes (it could also make use of links to a Filter Profile Service).\par} - \item{Client applications able to process this photometric information - will first look for services with this capability and make use of the - information attached in the VOTable groups to handle it, e.g. by the + \item{Client applications able to process this photometric information + will first look for services with this capability and make use of the + information attached in the VOTable groups to handle it, e.g. by the conversion from magnitude to fluxes.} \end{itemize}\par -As an example, the serialization of the 2MASS catalogue in a cone search service, +As an example, the serialisation of the 2MASS catalogue in a cone search service, could have the following information in the VOTable header: \par %%%%%%%%%%%%%%%%%%%% Table No: starts here %%%%%%%%%%%%%%%%%%%% -\lstinputlisting[language=XML,breaklines, caption={VOTable response example +\lstinputlisting[language=XML,breaklines, caption={VOTable response example from Cone Search service}]{./serializations/conesearch_ex.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% Exact details on how to serialize the response are contained in \citep{derriere}. -\subsection{Serialization using VO/DML model} \label{appendixmapping} -The VO/DML view of the PhotDM allows the serialization of the PhotDM elements -using mapping techniques into, e.g. VOTable formats. We show one of the possible -serializations in line with the mapping efforts of the IVOA DM working group. -This serialization describes the PhotCal Vega calibration of the 2MASS Ks filter. -\par +\subsection{Serialisation using VO/DML model} \label{appendixmapping} +The VO/DML view of the PhotDM allows the serialisation of the PhotDM elements +using mapping techniques into, e.g. VOTable formats. We show one of the possible +serialisations in line with the mapping efforts of the IVOA DM working group. +This serialisation describes the PhotCal Vega calibration of the 2MASS Ks filter. +\par %%%%%%%%%%%%%%%%%%%% Table No: starts here %%%%%%%%%%%%%%%%%%%% -\lstinputlisting[language=XML,breaklines, caption={XML mapping block for the +\lstinputlisting[language=XML,breaklines, caption={XML mapping block for the 2MASS Ks Filter}]{./serializations/photdm.2MASS.2MASS.Ks.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% Example for the full 2MASS photometric system with all filters. - -\lstinputlisting[language=XML,caption={XML mapping block for the 2MASS Photometric + +\lstinputlisting[language=XML,caption={XML mapping block for the 2MASS Photometric system, as annotation block for e.g. a SED data set}]{./serializations/exampleXML2MASS.xml} \end{appendices} diff --git a/schema/BaseDataTypesDiagram_PR_20220520.png b/schema/BaseDataTypesDiagram_PR_20220520.png new file mode 100644 index 0000000000000000000000000000000000000000..5d7fea2aea28a1ce1ec425c69e07d5f1f303979e GIT binary patch literal 112348 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

vekjnO4>MaNEDNO0$z8^vk-} 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 Bep>(l literal 0 HcmV?d00001 diff --git a/schema/PhotometryOverviewDiagram_20220520.png b/schema/PhotometryOverviewDiagram_20220520.png new file mode 100644 index 0000000000000000000000000000000000000000..1d92f3c1cc0314c832a838ebee3d6fd3b9030878 GIT binary patch literal 160656 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 Z-y0@ubg>dLeEHY^^hyRUoiB;>`yU&1D(3(I literal 0 HcmV?d00001 From ac6f62297e21106d216f936d8c994f97c242cbb0 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:54:54 +0200 Subject: [PATCH 08/40] removed CharDM and STC from the other DMs dependency no dependency in this version towards STC , nor CharDM --- role_diagram.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/role_diagram.xml b/role_diagram.xml index dd7062b..7dfa406 100644 --- a/role_diagram.xml +++ b/role_diagram.xml @@ -14,9 +14,8 @@ with missing dependencies. - - + From 01104e32ad550a6714f1c69c3bd77a2b718006c2 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:57:15 +0200 Subject: [PATCH 09/40] change dates --- ivoatexmeta.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ivoatexmeta.tex b/ivoatexmeta.tex index 038ea4a..d52032f 100644 --- a/ivoatexmeta.tex +++ b/ivoatexmeta.tex @@ -1,6 +1,6 @@ % GENERATED FILE -- edit this in the Makefile \newcommand{\ivoaDocversion}{1.1} -\newcommand{\ivoaDocdate}{2022-04-22} -\newcommand{\ivoaDocdatecode}{20220422} +\newcommand{\ivoaDocdate}{2022-06-29} +\newcommand{\ivoaDocdatecode}{20220629} \newcommand{\ivoaDoctype}{PR} \newcommand{\ivoaDocname}{PhotDM} From e3d8eb626431ca7fc686c8a62c9c83b770ba668f Mon Sep 17 00:00:00 2001 From: jsalgado Date: Thu, 30 Jun 2022 12:46:49 +0200 Subject: [PATCH 10/40] Removing STC --- archdiag.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/archdiag.xml b/archdiag.xml index 8fec170..0f9f3b4 100644 --- a/archdiag.xml +++ b/archdiag.xml @@ -53,7 +53,6 @@ with missing dependencies. - From f8ee3ca4faeb831cd39defcfdb760ccb3f45cefe Mon Sep 17 00:00:00 2001 From: jsalgado Date: Thu, 30 Jun 2022 17:43:53 +0200 Subject: [PATCH 11/40] Update updated DM dependencies diagram --- role_diagram.pdf | Bin 33085 -> 60107 bytes role_diagram.svg | 71 +++++++++++++++++++++++------------------------ role_diagram.xml | 4 +-- 3 files changed, 35 insertions(+), 40 deletions(-) diff --git a/role_diagram.pdf b/role_diagram.pdf index ac75c75c522a777a1497f51b30d8e02022a2a606..a916fc810027a38098b2ab61c840e68771113771 100644 GIT binary patch literal 60107 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 literal 33085 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 K$b@A@p#Kl*jY(tx diff --git a/role_diagram.svg b/role_diagram.svg index d617cfe..193e0f5 100644 --- a/role_diagram.svg +++ b/role_diagram.svg @@ -1,51 +1,48 @@ -IVOA Architecture DiagramThis image shows the architecture of the Virtual Observatory + (cf. http://ivoa.net), together with the relevant standards.UsersComputersProvidersRegistryData Access ProtocolsUser LayerUsingResource LayerSharingVOCoreFindingGettingDesktop AppsIn-BrowserAppsUserProgramsData and Metadata CollectionStorageComputationSemanticsDataModelsVO QueryLanguagesFormats UCD VOTable - CharDM - ProvDM - ProvDM + PhotDM VOUnits - STC UTypes TAP SSAP diff --git a/role_diagram.xml b/role_diagram.xml index dd7062b..d80e68d 100644 --- a/role_diagram.xml +++ b/role_diagram.xml @@ -14,9 +14,7 @@ with missing dependencies. - - - + From 1439921f55e08ca6ae111506b0e1c30bce70e232 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Fri, 1 Jul 2022 16:58:56 +0200 Subject: [PATCH 12/40] improve xml rendering and comments 2MASS.Ks improve xml rendering and comments in serialised 2MASS.Ks Filter description. --- serializations/photdm.2MASS.2MASS.Ks.xml | 28 +++++++++--------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/serializations/photdm.2MASS.2MASS.Ks.xml b/serializations/photdm.2MASS.2MASS.Ks.xml index 1cf5632..17c0cbf 100644 --- a/serializations/photdm.2MASS.2MASS.Ks.xml +++ b/serializations/photdm.2MASS.2MASS.Ks.xml @@ -30,37 +30,29 @@ - + - + - + - - - - + + + + - - - + + + From c76d63a6eb2aff9b5627052f42615659a77503a2 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Fri, 8 Jul 2022 18:42:27 +0200 Subject: [PATCH 13/40] added last version of VODML xml representation this has been generated on 2022, may 20. --- Phot-v1_1.vo-dml.xml | 775 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 775 insertions(+) create mode 100644 Phot-v1_1.vo-dml.xml diff --git a/Phot-v1_1.vo-dml.xml b/Phot-v1_1.vo-dml.xml new file mode 100644 index 0000000..42ffa92 --- /dev/null +++ b/Phot-v1_1.vo-dml.xml @@ -0,0 +1,775 @@ + + + Phot + Data model describing Photometric properties for data sets to be used for data calibration, comparison or reprocessing. + + + PhotDM + Jesús Salgado, Carlos Rodrigo, Pedro Osuna, Mark Allen, Mireille Louys, Jonathan McDowell, Deborah Baines, Jesús Maíz Apellániz, +Evanthia Hatziminaoglou, Sebastien Derriere, Gerard Lemson + 1.1 + 1.0 + 2022-05-20T18:03:25 + + ivoa + http://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml + https://github.com/ivoa/vo-dml/blob/master/models/ivoa/vo-dml/IVOA-v1.0.html + + + UCD + UCD + Specialized string type derived from ivoa:string. UCD words belong to a controlled vocabulary. They are used as semantics tags for the content of table columns . See the UCD IVOA Recommendation. + + + ivoa:string + + + + + ISOTime + ISOTime + Time stamp, represented as a string. This representaion is compliant to the DALI time stamp definition : section 3.3.3 Timestamp in +https://www.ivoa.net/documents/DALI/20170517/REC-DALI-1.1.pdf +This class derives from the ivoa:datetime class. + +It could be inserted in the ivoa: template data model for types in a next version. + + ivoa:datetime + + + + + TypeOfMagSystem + TypeOfMagSystem + The type of System used to compute magnitude for this photometric calibration procedure . + + TypeOfMagSystem.VEGAmag + VEGAmag + Magnitude system related to VEGA. + + + TypeOfMagSystem.ABmag + ABmag + AB magnitude system. + + + TypeOfMagSystem.STmag + STmag + ST magnitude system. + + + + + PhotometricSystem + PhotometricSystem + The reference photometric system used to interpret photometric measurements. + + One association at the time + + + + PhotometricSystem.description + description + This string contains a human readable short-text representation of the photometric system. This will allow client applications to display textual information to final users. + + ivoa:string + + + 1 + 1 + + + + PhotometricSystem.detectorType + detectorType + Detector type associated to this photometric system. Possible values are: 0 for Energy counter (amplifiers), 1 for Photon counter (CCDs, Photomultipliers). + + ivoa:integer + + + 1 + 1 + + + + PhotometricSystem.photometryFilter + photometryFilter + The Photometric information is related to a Photometric system, and gathers filter descriptions, for one or several . + + + Phot:PhotometryFilter + + + 1 + -1 + + + + + + PhotometryFilter + PhotometryFilter + Filter class to store ids, name and properties. + + + One association at the time + + + + PhotometryFilter.fpsIdentifier + fpsIdentifier + IVOA identifier of the filter profile service where this photometry filter is registered to be used in the discovery of all the relevant photometry filter properties. + + ivoa:string + + + 1 + 1 + + + + PhotometryFilter.identifier + identifier + This field identifies a filter, in a unique way, within a certain Photometry Filter Profile service. +Example to build this string : Facility/Subcategory/Band[/Suffix] like SDSS/SDSS.G/G + + ivoa:string + + + 1 + 1 + + + + PhotometryFilter.name + name + A human readable string to represent the filter name. + + ivoa:string + + + 1 + 1 + + + + PhotometryFilter.description + description + This string contains a verbose human readable label for the filter. This will allow client applications to display textual information to final users. + + ivoa:string + + + 1 + 1 + + + + PhotometryFilter.bandName + bandName + A standard label representing the spectral band associated to this filter (if any). + + ivoa:string + + + 1 + 1 + + + + PhotometryFilter.dateValidityFrom + dateValidityFrom + Start time of the time coverage for which this filter configuration is applicable. String time format accepted is ISO8601. + + + Phot:ISOTime + + + 1 + 1 + + + + PhotometryFilter.dateValidityTo + dateValidityTo + End time of the time coverage for which this filter configuration is applicable. String time format accepted is ISO8601. + + + Phot:ISOTime + + + 1 + 1 + + + + PhotometryFilter.bandwidth + bandwidth + Association to the spectral band-pass of the Filter. + + + + + Phot:Bandwidth + + + 1 + 1 + + + + PhotometryFilter.transmissionCurve + transmissionCurve + Link to the Transmission Curve of the Filter, when this is described. + + Phot:TransmissionCurve + + + 0 + 1 + + + + PhotometryFilter.spectralLocation + spectralLocation + Association to a spectral coordinate value for locating the Filter band-pass. Usually the mean value. + + + + Phot:SpectralLocation + + + 1 + 1 + + + + + + PhotCal + PhotCal + A class to bind together all photometic calibration reference information: a photometry filter, a certain magnitude system configuration and a certain zero point object. + + One association at the time + + + + PhotCal.identifier + identifier + A unique identifier of the Photometry calibration instance within the project and a filterprofile service . Suggested syntax would be: +Facility/Subcategory/Band/Photometric System Type[/Suffix] + + ivoa:string + + + 1 + 1 + + + + PhotCal.zeroPoint + zeroPoint + The ZeroPoint value for the flux to mag translation belongs to a Photcal element and is defined for one Filter element and one MagnitudeSystem . + + Phot:ZeroPoint + + + 1 + 1 + + + + PhotCal.magnitudeSystem + magnitudeSystem + ZeroPoint values are given with one computation method corresponding to a defined Magnitude system. + + + Phot:MagnitudeSystem + + + 1 + 1 + + + + PhotCal.photometryFilter + photometryFilter + Each PhotCal element is related to one single Filter. Some Filter object may have no calibration registered yet. + + Phot:PhotometryFilter + + + 1 + 1 + + + + + + ZeroPoint + ZeroPoint + This class is used to characterize a zero point flux obtained during the calibration of a certain photometry filter on a certain photometric system configuration. + + One association at the time + + + + ZeroPoint.type + type + Type describing the way the zeropoint value is defined . Is an integer value : {0=Pogson, 1=Asinh, 2=Linear} corresponding to zero point definitions. + + ivoa:integer + + + 1 + 1 + + + + ZeroPoint.referenceMagnitudeValue + referenceMagnitudeValue + Reference magnitude value of the calibrating object. can be a implemented as a double number to get the maximum precision. +Default value is zero, but sometimes the reference mag measured is slightly above. + + + + ivoa:real + + + 1 + 1 + + + + ZeroPoint.referenceMagnitudeError + referenceMagnitudeError + Total error estimated on the reference magnitude value whenever applicable. + + + ivoa:real + + + 1 + 1 + + + + ZeroPoint.flux + flux + Points to the flux value associated to this ZeroPoint magnitude. + + + Phot:Flux + + + 1 + 1 + + + + + + PogsonZeropoint + PogsonZeropoint + Extension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion functions. + + + Phot:ZeroPoint + + + + + AsinhZeropoint + AsinhZeropoint + Extension of ZeroPoint to describe asinh magnitudes, a.k.a. luptitudes. + + Phot:ZeroPoint + + + AsinhZeropoint.softeningParameter + softeningParameter + Parameter used to correct the calculation of magnitudes for faint sources. Usually called 'b'. See (Lupton and Gunn et al. [1999]) for a formal explanation. + + ivoa:real + + + 1 + 1 + + + + + + LinearFluxZeropoint + LinearFluxZeropoint + Extension of ZeroPoint to describe simple linear flux photometry, commonly used in Radio, Far Infrared and X-ray spectral ranges. Although not being magnitudes as such, relative linear flux measurements can be included as a special and trivial case of magnitude. + + + Phot:ZeroPoint + + + + + MagnitudeSystem + MagnitudeSystem + A class to describe the Magnitude System used , its type and the reference spectrum attached if present. + + MagnitudeSystem.type + type + Type of magnitude system used to compute the associated zeropoint . Typical values are : VEGAmag, ABmag, STmag . + + + Phot:TypeOfMagSystem + + + 1 + 1 + + + + MagnitudeSystem.referenceSpectrum + referenceSpectrum + Link to the reference spectrum as a URI. + + ivoa:anyURI + + + 1 + 1 + + + + + + Bandwidth + Bandwidth + This class is used to characterize the spectral properties of a filter. + + + One association at the time + + + + Bandwidth.ucd + ucd + Unified Content Description (UCD) string that specifies the nature of the bandwidth object. + + Phot:UCD + + + 1 + 1 + + + + Bandwidth.unitexpression + unitexpression + Unit string that specifies the spectral unit for this filter. + + ivoa:Unit + + + 1 + 1 + + + + Bandwidth.extent + extent + Bandwidth’s extent of the filter , as length of the covered spectral interval , or effective width following appropriate filter type. + + + ivoa:real + + + 0 + 1 + + + + Bandwidth.start + start + In practice, this could be taken as the minimum value of the filter transmission curve. + + ivoa:real + + + 1 + 1 + + + + Bandwidth.stop + stop + In practice, this could be taken as the maximum value of the filter transmission curve. + + ivoa:real + + + 1 + 1 + + + + + + TransmissionPoint + TransmissionPoint + This class is used to represent a point in the transmission function of a Filter. + + + + One association at the time + + + + TransmissionPoint.transmissionValue + transmissionValue + Transmitted value for the filter at this point of the transmission curve. Usually between 0 and 1. + + + ivoa:real + + + 1 + 1 + + + + TransmissionPoint.spectralValue + spectralValue + Spectral coordinate value for the transmission point. + + ivoa:real + + + 1 + 1 + + + + TransmissionPoint.spectralErrorValue + spectralErrorValue + Error on the spectral coordinate value for the transmission point. + + ivoa:real + + + 0 + 1 + + + + TransmissionPoint.ucd + ucd + Unified Content Description (UCD) string that specifies the nature of the spectral axis in the transmission curve. + + Phot:UCD + + + 1 + 1 + + + + TransmissionPoint.unit + unit + Unit string that specifies the spectral unit for this filter. + + ivoa:Unit + + + 1 + 1 + + + + + + Access + Access + Gathers all properties to access a resource : uri, format and size . + + + Access.reference + reference + URI to access the resource. + + ivoa:anyURI + + + 1 + 1 + + + + Access.size + size + Approximate estimated size of the dataset, specified in kilobytes. + + ivoa:integer + + + 1 + 1 + + + + Access.format + format + Format of the accessed resource. Typically a MIME type is used : application/fits, application/x-votable+xml, text/csv, text/xml, etc. + + ivoa:string + + + 1 + 1 + + + + + + TransmissionCurve + TransmissionCurve + A collection of points along the spectral axis to indicate how flux are transmitted by a filter. +The transmission profile can be described by an external file and accessed through the Access instance, or can be stored as a collection of transmission points stored together in the PhotometryFilter serialized instance. + + TransmissionCurve.transmissionPoint + transmissionPoint + Set of points of the transmission curve. + + Phot:TransmissionPoint + + + 1 + -1 + + + + TransmissionCurve.access + access + Access to an external file containing the set of Transmission Points. + + Phot:Access + + + 0 + 1 + + + + + + SpectralLocation + SpectralLocation + A spectral coordinate value for locating the Filter band-pass. Usually the mean value (for instance in wavelength units). +This class is used to characterize the spectral properties of a filter. + + + One association at the time + + + + SpectralLocation.ucd + ucd + Unified Content Description (UCD) string that specifies the nature of the spectral location for this filter. + + Phot:UCD + + + 1 + 1 + + + + SpectralLocation.unitexpression + unitexpression + Unit string that specifies the spectral units for this filter. + + ivoa:Unit + + + 1 + 1 + + + + SpectralLocation.value + value + A spectral coordinate value that can be considered by the data provider as the most representative for this specific filter bandpass. +In the Optical regime this can represent the effective wavelength, for instance. + + + ivoa:real + + + 1 + 1 + + + + + + Flux + Flux + This class is used to characterize the photometric calibration Flux<—> Magnitude associated to the ZeroPoint used by a PhotCal instance. + + + One association at the time + + + + Flux.ucd + ucd + Unified Content Description (UCD) string that specifies the nature of the flux. + + + Phot:UCD + + + 1 + 1 + + + + Flux.unitexpression + unitexpression + Unit string that specifies the flux unit. + + + ivoa:Unit + + + 1 + 1 + + + + Flux.value + value + A flux value. + + ivoa:real + + + 1 + 1 + + + + Flux.error + error + Flux value error corresponding to the reference magnitude value of the calibrating object. + + ivoa:real + + + 1 + 1 + + + + + \ No newline at end of file From b59f49f28ff681433d3281e2ebf2a34998fff1de Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Fri, 8 Jul 2022 18:46:13 +0200 Subject: [PATCH 14/40] add documentation file in HTML --- Phot-v1_1.html | 2260 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2260 insertions(+) create mode 100644 Phot-v1_1.html diff --git a/Phot-v1_1.html b/Phot-v1_1.html new file mode 100644 index 0000000..4e9ae41 --- /dev/null +++ b/Phot-v1_1.html @@ -0,0 +1,2260 @@ + + + + PhotDM + + + + +

PhotDM

+

Table of Contents

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1.    model: Phot
2.    Packages and Types
2.1    [root package]
2.1.1    objectType:Access
2.1.2    objectType:AsinhZeropoint
2.1.3    objectType:Bandwidth
2.1.4    objectType:Flux
2.1.5    primitiveType:ISOTime
2.1.6    objectType:LinearFluxZeropoint
2.1.7    objectType:MagnitudeSystem
2.1.8    objectType:PhotCal
2.1.9    objectType:PhotometricSystem
2.1.10    objectType:PhotometryFilter
2.1.11    objectType:PogsonZeropoint
2.1.12    objectType:SpectralLocation
2.1.13    objectType:TransmissionCurve
2.1.14    objectType:TransmissionPoint
2.1.15    enumeration:TypeOfMagSystem
2.1.16    primitiveType:UCD
2.1.17    objectType:ZeroPoint
3. +     vodml-id-s
4. +     Imported Models
4.1 +     ivoa
+
+
+

1. Model: PhotDM (Phot)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Authors : Jesús Salgado, Carlos Rodrigo, Pedro Osuna, Mark Allen, Mireille Louys, Jonathan McDowell, Deborah Baines, Jesús Maíz Apellániz, + Evanthia Hatziminaoglou, Sebastien Derriere, Gerard Lemson +
Date : 2022-05-20T18:03:25
Version : 1.1
Previous version: : 1.0
Abstract : Data model describing Photometric properties for data sets to be used for data calibration, comparison or reprocessing. + +
Diagram : The following diagram has been generated with Modelio 3.8. + It represents the Overview of the model classes. + + PhotDM v1.1 Overview Class Diagram +
Diagram : The following diagram has been generated from the model using the GraphViz tool.
+ The classes and packages in the diagram can be clicked and are mapped to the descriptions of the corresponding element elsewhere + in the document. +
+ + + + + + + + + + + + + + + + + + + + + +
+

2.Model contents: Packages and Types

+

+ The following sub-sections present all packages in the model with their types. + The packages are listed here in alphabetical order. + Each sub-section contains a description of the package and a table containing its various features. + +

+

2.1 [root package] +

+ + + + + + + + + + + + + + + + + +
ModelPhot
Object typesAccess AsinhZeropoint Bandwidth Flux LinearFluxZeropoint MagnitudeSystem PhotCal PhotometricSystem PhotometryFilter PogsonZeropoint SpectralLocation TransmissionCurve TransmissionPoint ZeroPoint +
EnumerationsTypeOfMagSystem +
Primitive typesISOTime UCD +
+

2.1.1 objectType: Access +

+
+ + + + + + + + + + + + +
vodml-idAccess
descriptionGathers all properties to access a resource : uri, format and size . + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
referencetypeivoa:anyURI
vodml-idAccess.reference
multiplicity1
descriptionURI to access the resource.
sizetypeivoa:integer
vodml-idAccess.size
multiplicity1
descriptionApproximate estimated size of the dataset, specified in kilobytes.
formattypeivoa:string
vodml-idAccess.format
multiplicity1
descriptionFormat of the accessed resource. Typically a MIME type is used : application/fits, application/x-votable+xml, text/csv, text/xml, + etc. +
+
+
+

2.1.2 objectType: AsinhZeropoint +

+
+ + + + + + + + + + + + +
vodml-idAsinhZeropoint
descriptionExtension of ZeroPoint to describe asinh magnitudes, a.k.a. luptitudes.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
extendsZeroPoint [Phot:ZeroPoint]
attributes
namefeaturevalue
softeningParametertypeivoa:real
vodml-idAsinhZeropoint.softeningParameter
multiplicity1
descriptionParameter used to correct the calculation of magnitudes for faint sources. Usually called 'b'. See (Lupton and Gunn et al. + [1999]) for a formal explanation. +
+
+
+

2.1.3 objectType: Bandwidth +

+
+ + + + + + + + + + + + +
vodml-idBandwidth
descriptionThis class is used to characterize the spectral properties of a filter. + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
ucdtypeUCD [Phot:UCD]
vodml-idBandwidth.ucd
multiplicity1
descriptionUnified Content Description (UCD) string that specifies the nature of the bandwidth object.
unitexpressiontypeivoa:Unit
vodml-idBandwidth.unitexpression
multiplicity1
descriptionUnit string that specifies the spectral unit for this filter.
extenttypeivoa:real
vodml-idBandwidth.extent
multiplicity0..1
descriptionBandwidth’s extent of the filter , as length of the covered spectral interval , or effective width following appropriate filter + type. + +
starttypeivoa:real
vodml-idBandwidth.start
multiplicity1
descriptionIn practice, this could be taken as the minimum value of the filter transmission curve.
stoptypeivoa:real
vodml-idBandwidth.stop
multiplicity1
descriptionIn practice, this could be taken as the maximum value of the filter transmission curve.
constraints
One association at the time + +
+
+
+

2.1.4 objectType: Flux +

+
+ + + + + + + + + + + + +
vodml-idFlux
descriptionThis class is used to characterize the photometric calibration Flux<—> Magnitude associated to the ZeroPoint used by a PhotCal + instance. + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
ucdtypeUCD [Phot:UCD]
vodml-idFlux.ucd
multiplicity1
descriptionUnified Content Description (UCD) string that specifies the nature of the flux. + +
unitexpressiontypeivoa:Unit
vodml-idFlux.unitexpression
multiplicity1
descriptionUnit string that specifies the flux unit. + +
valuetypeivoa:real
vodml-idFlux.value
multiplicity1
descriptionA flux value.
errortypeivoa:real
vodml-idFlux.error
multiplicity1
descriptionFlux value error corresponding to the reference magnitude value of the calibrating object.
constraints
One association at the time + +
+
+
+

2.1.5 primitiveType: ISOTime +

+ + + + + + + + + +
vodml-idISOTime
descriptionTime stamp, represented as a string. This representaion is compliant to the DALI time stamp definition : section 3.3.3 Timestamp + in + https://www.ivoa.net/documents/DALI/20170517/REC-DALI-1.1.pdf + This class derives from the ivoa:datetime class. + + It could be inserted in the ivoa: template data model for types in a next version. +

2.1.6 objectType: LinearFluxZeropoint +

+
+ + + + + + + + + + + + +
vodml-idLinearFluxZeropoint
descriptionExtension of ZeroPoint to describe simple linear flux photometry, commonly used in Radio, Far Infrared and X-ray spectral + ranges. Although not being magnitudes as such, relative linear flux measurements can be included as a special and trivial + case of magnitude. + +
+ + + + +
+ + + + + +
extendsZeroPoint [Phot:ZeroPoint]
+
+
+

2.1.7 objectType: MagnitudeSystem +

+
+ + + + + + + + + + + + +
vodml-idMagnitudeSystem
descriptionA class to describe the Magnitude System used , its type and the reference spectrum attached if present.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
typetypeTypeOfMagSystem [Phot:TypeOfMagSystem]
vodml-idMagnitudeSystem.type
multiplicity1
descriptionType of magnitude system used to compute the associated zeropoint . Typical values are : VEGAmag, ABmag, STmag . + +
referenceSpectrumtypeivoa:anyURI
vodml-idMagnitudeSystem.referenceSpectrum
multiplicity1
descriptionLink to the reference spectrum as a URI.
+
+
+

2.1.8 objectType: PhotCal +

+
+ + + + + + + + + + + + +
vodml-idPhotCal
descriptionA class to bind together all photometic calibration reference information: a photometry filter, a certain magnitude system + configuration and a certain zero point object. +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
identifiertypeivoa:string
vodml-idPhotCal.identifier
multiplicity1
descriptionA unique identifier of the Photometry calibration instance within the project and a filterprofile service . Suggested syntax + would be: + Facility/Subcategory/Band/Photometric System Type[/Suffix] +
references
namefeaturevalue
photometryFiltertypePhotometryFilter [Phot:PhotometryFilter]
vodml-idPhotCal.photometryFilter
multiplicity1
descriptionEach PhotCal element is related to one single Filter. Some Filter object may have no calibration registered yet.
compositions
namefeaturevalue
magnitudeSystemtypeMagnitudeSystem [Phot:MagnitudeSystem]
vodml-idPhotCal.magnitudeSystem
multiplicity1
isOrderedfalse
descriptionZeroPoint values are given with one computation method corresponding to a defined Magnitude system. + +
zeroPointtypeZeroPoint [Phot:ZeroPoint]
vodml-idPhotCal.zeroPoint
multiplicity1
isOrderedfalse
descriptionThe ZeroPoint value for the flux to mag translation belongs to a Photcal element and is defined for one Filter element and + one MagnitudeSystem . +
constraints
One association at the time + +
+
+
+

2.1.9 objectType: PhotometricSystem +

+
+ + + + + + + + + + + + +
vodml-idPhotometricSystem
descriptionThe reference photometric system used to interpret photometric measurements.
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
descriptiontypeivoa:string
vodml-idPhotometricSystem.description
multiplicity1
descriptionThis string contains a human readable short-text representation of the photometric system. This will allow client applications + to display textual information to final users. +
detectorTypetypeivoa:integer
vodml-idPhotometricSystem.detectorType
multiplicity1
descriptionDetector type associated to this photometric system. Possible values are: 0 for Energy counter (amplifiers), 1 for Photon + counter (CCDs, Photomultipliers). +
compositions
namefeaturevalue
photometryFiltertypePhotometryFilter [Phot:PhotometryFilter]
vodml-idPhotometricSystem.photometryFilter
multiplicity1..*
isOrderedfalse
descriptionThe Photometric information is related to a Photometric system, and gathers filter descriptions, for one or several . + +
constraints
One association at the time + +
+
+
+

2.1.10 objectType: PhotometryFilter +

+
+ + + + + + + + + + + + +
vodml-idPhotometryFilter
descriptionFilter class to store ids, name and properties. + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
referrersPhotCal +
attributes
namefeaturevalue
fpsIdentifiertypeivoa:string
vodml-idPhotometryFilter.fpsIdentifier
multiplicity1
descriptionIVOA identifier of the filter profile service where this photometry filter is registered to be used in the discovery of all + the relevant photometry filter properties. +
identifiertypeivoa:string
vodml-idPhotometryFilter.identifier
multiplicity1
descriptionThis field identifies a filter, in a unique way, within a certain Photometry Filter Profile service. + Example to build this string : Facility/Subcategory/Band[/Suffix] like SDSS/SDSS.G/G +
nametypeivoa:string
vodml-idPhotometryFilter.name
multiplicity1
descriptionA human readable string to represent the filter name.
descriptiontypeivoa:string
vodml-idPhotometryFilter.description
multiplicity1
descriptionThis string contains a verbose human readable label for the filter. This will allow client applications to display textual + information to final users. +
bandNametypeivoa:string
vodml-idPhotometryFilter.bandName
multiplicity1
descriptionA standard label representing the spectral band associated to this filter (if any).
dateValidityFromtypeISOTime [Phot:ISOTime]
vodml-idPhotometryFilter.dateValidityFrom
multiplicity1
descriptionStart time of the time coverage for which this filter configuration is applicable. String time format accepted is ISO8601. + +
dateValidityTotypeISOTime [Phot:ISOTime]
vodml-idPhotometryFilter.dateValidityTo
multiplicity1
descriptionEnd time of the time coverage for which this filter configuration is applicable. String time format accepted is ISO8601. + +
compositions
namefeaturevalue
bandwidthtypeBandwidth [Phot:Bandwidth]
vodml-idPhotometryFilter.bandwidth
multiplicity1
isOrderedfalse
descriptionAssociation to the spectral band-pass of the Filter. + + + +
spectralLocationtypeSpectralLocation [Phot:SpectralLocation]
vodml-idPhotometryFilter.spectralLocation
multiplicity1
isOrderedfalse
descriptionAssociation to a spectral coordinate value for locating the Filter band-pass. Usually the mean value. + + +
transmissionCurvetypeTransmissionCurve [Phot:TransmissionCurve]
vodml-idPhotometryFilter.transmissionCurve
multiplicity0..1
isOrderedfalse
descriptionLink to the Transmission Curve of the Filter, when this is described.
constraints
One association at the time + +
+
+
+

2.1.11 objectType: PogsonZeropoint +

+
+ + + + + + + + + + + + +
vodml-idPogsonZeropoint
descriptionExtension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion + functions. + +
+ + + + +
+ + + + + +
extendsZeroPoint [Phot:ZeroPoint]
+
+
+

2.1.12 objectType: SpectralLocation +

+
+ + + + + + + + + + + + +
vodml-idSpectralLocation
descriptionA spectral coordinate value for locating the Filter band-pass. Usually the mean value (for instance in wavelength units). + This class is used to characterize the spectral properties of a filter. + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
ucdtypeUCD [Phot:UCD]
vodml-idSpectralLocation.ucd
multiplicity1
descriptionUnified Content Description (UCD) string that specifies the nature of the spectral location for this filter.
unitexpressiontypeivoa:Unit
vodml-idSpectralLocation.unitexpression
multiplicity1
descriptionUnit string that specifies the spectral units for this filter.
valuetypeivoa:real
vodml-idSpectralLocation.value
multiplicity1
descriptionA spectral coordinate value that can be considered by the data provider as the most representative for this specific filter + bandpass. + In the Optical regime this can represent the effective wavelength, for instance. + +
constraints
One association at the time + +
+
+
+

2.1.13 objectType: TransmissionCurve +

+
+ + + + + + + + + + + + +
vodml-idTransmissionCurve
descriptionA collection of points along the spectral axis to indicate how flux are transmitted by a filter. + The transmission profile can be described by an external file and accessed through the Access instance, or can be stored as + a collection of transmission points stored together in the PhotometryFilter serialized instance. +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
compositions
namefeaturevalue
accesstypeAccess [Phot:Access]
vodml-idTransmissionCurve.access
multiplicity0..1
isOrderedfalse
descriptionAccess to an external file containing the set of Transmission Points.
transmissionPointtypeTransmissionPoint [Phot:TransmissionPoint]
vodml-idTransmissionCurve.transmissionPoint
multiplicity1..*
isOrderedfalse
descriptionSet of points of the transmission curve.
+
+
+

2.1.14 objectType: TransmissionPoint +

+
+ + + + + + + + + + + + +
vodml-idTransmissionPoint
descriptionThis class is used to represent a point in the transmission function of a Filter. + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
attributes
namefeaturevalue
transmissionValuetypeivoa:real
vodml-idTransmissionPoint.transmissionValue
multiplicity1
descriptionTransmitted value for the filter at this point of the transmission curve. Usually between 0 and 1. + +
spectralValuetypeivoa:real
vodml-idTransmissionPoint.spectralValue
multiplicity1
descriptionSpectral coordinate value for the transmission point.
spectralErrorValuetypeivoa:real
vodml-idTransmissionPoint.spectralErrorValue
multiplicity0..1
descriptionError on the spectral coordinate value for the transmission point.
ucdtypeUCD [Phot:UCD]
vodml-idTransmissionPoint.ucd
multiplicity1
descriptionUnified Content Description (UCD) string that specifies the nature of the spectral axis in the transmission curve.
unittypeivoa:Unit
vodml-idTransmissionPoint.unit
multiplicity1
descriptionUnit string that specifies the spectral unit for this filter.
constraints
One association at the time + +
+
+
+

2.1.15 enumeration: TypeOfMagSystem +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
vodml-idTypeOfMagSystem
descriptionThe type of System used to compute magnitude for this photometric calibration procedure .
literals
namefeaturevalue
VEGAmag + vodml-idTypeOfMagSystem.VEGAmag
descriptionMagnitude system related to VEGA.
ABmag + vodml-idTypeOfMagSystem.ABmag
descriptionAB magnitude system.
STmag + vodml-idTypeOfMagSystem.STmag
descriptionST magnitude system.

2.1.16 primitiveType: UCD +

+ + + + + + + + + +
vodml-idUCD
descriptionSpecialized string type derived from ivoa:string. UCD words belong to a controlled vocabulary. They are used as semantics + tags for the content of table columns . See the UCD IVOA Recommendation. + +

2.1.17 objectType: ZeroPoint +

+
+ + + + + + + + + + + + +
vodml-idZeroPoint
descriptionThis class is used to characterize a zero point flux obtained during the calibration of a certain photometry filter on a certain + photometric system configuration. +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Subclasses in this modelAsinhZeropoint LinearFluxZeropoint PogsonZeropoint +
attributes
namefeaturevalue
typetypeivoa:integer
vodml-idZeroPoint.type
multiplicity1
descriptionType describing the way the zeropoint value is defined . Is an integer value : {0=Pogson, 1=Asinh, 2=Linear} corresponding + to zero point definitions. +
referenceMagnitudeValuetypeivoa:real
vodml-idZeroPoint.referenceMagnitudeValue
multiplicity1
descriptionReference magnitude value of the calibrating object. can be a implemented as a double number to get the maximum precision. + + Default value is zero, but sometimes the reference mag measured is slightly above. + + +
referenceMagnitudeErrortypeivoa:real
vodml-idZeroPoint.referenceMagnitudeError
multiplicity1
descriptionTotal error estimated on the reference magnitude value whenever applicable. + +
compositions
namefeaturevalue
fluxtypeFlux [Phot:Flux]
vodml-idZeroPoint.flux
multiplicity1
isOrderedfalse
descriptionPoints to the flux value associated to this ZeroPoint magnitude. + +
constraints
One association at the time + +
+
+
+


+

3.Element Identifiers/VO-DMLrefs

+ The following table shows all fully qualified vodml-ids for this data model. + It is ordered alphabetically and the identifiers are hyper-linked to the location + in the document where the actual element is fully defined. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
vodml-idfeature typedescription
vo-dml:modelData model describing Photometric properties for data sets to be used for data calibration, comparison or reprocessing. + +
AccessobjectTypeGathers all properties to access a resource : uri, format and size . + +
Access.formatattributeFormat of the accessed resource. Typically a MIME type is used : application/fits, application/x-votable+xml, text/csv, text/xml, + etc. +
Access.referenceattributeURI to access the resource.
Access.sizeattributeApproximate estimated size of the dataset, specified in kilobytes.
AsinhZeropointobjectTypeExtension of ZeroPoint to describe asinh magnitudes, a.k.a. luptitudes.
AsinhZeropoint.softeningParameterattributeParameter used to correct the calculation of magnitudes for faint sources. Usually called 'b'. See (Lupton and Gunn et al. + [1999]) for a formal explanation. +
BandwidthobjectTypeThis class is used to characterize the spectral properties of a filter. + +
Bandwidth.extentattributeBandwidth’s extent of the filter , as length of the covered spectral interval , or effective width following appropriate filter + type. + +
Bandwidth.startattributeIn practice, this could be taken as the minimum value of the filter transmission curve.
Bandwidth.stopattributeIn practice, this could be taken as the maximum value of the filter transmission curve.
Bandwidth.ucdattributeUnified Content Description (UCD) string that specifies the nature of the bandwidth object.
Bandwidth.unitexpressionattributeUnit string that specifies the spectral unit for this filter.
FluxobjectTypeThis class is used to characterize the photometric calibration Flux<—> Magnitude associated to the ZeroPoint used by a PhotCal + instance. + +
Flux.errorattributeFlux value error corresponding to the reference magnitude value of the calibrating object.
Flux.ucdattributeUnified Content Description (UCD) string that specifies the nature of the flux. + +
Flux.unitexpressionattributeUnit string that specifies the flux unit. + +
Flux.valueattributeA flux value.
ISOTimeprimitiveTypeTime stamp, represented as a string. This representaion is compliant to the DALI time stamp definition : section 3.3.3 Timestamp + in + https://www.ivoa.net/documents/DALI/20170517/REC-DALI-1.1.pdf + This class derives from the ivoa:datetime class. + + It could be inserted in the ivoa: template data model for types in a next version. +
LinearFluxZeropointobjectTypeExtension of ZeroPoint to describe simple linear flux photometry, commonly used in Radio, Far Infrared and X-ray spectral + ranges. Although not being magnitudes as such, relative linear flux measurements can be included as a special and trivial + case of magnitude. + +
MagnitudeSystemobjectTypeA class to describe the Magnitude System used , its type and the reference spectrum attached if present.
MagnitudeSystem.referenceSpectrumattributeLink to the reference spectrum as a URI.
MagnitudeSystem.typeattributeType of magnitude system used to compute the associated zeropoint . Typical values are : VEGAmag, ABmag, STmag . + +
PhotCalobjectTypeA class to bind together all photometic calibration reference information: a photometry filter, a certain magnitude system + configuration and a certain zero point object. +
PhotCal.identifierattributeA unique identifier of the Photometry calibration instance within the project and a filterprofile service . Suggested syntax + would be: + Facility/Subcategory/Band/Photometric System Type[/Suffix] +
PhotCal.magnitudeSystemcompositionZeroPoint values are given with one computation method corresponding to a defined Magnitude system. + +
PhotCal.photometryFilterreferenceEach PhotCal element is related to one single Filter. Some Filter object may have no calibration registered yet.
PhotCal.zeroPointcompositionThe ZeroPoint value for the flux to mag translation belongs to a Photcal element and is defined for one Filter element and + one MagnitudeSystem . +
PhotometricSystemobjectTypeThe reference photometric system used to interpret photometric measurements.
PhotometricSystem.descriptionattributeThis string contains a human readable short-text representation of the photometric system. This will allow client applications + to display textual information to final users. +
PhotometricSystem.detectorTypeattributeDetector type associated to this photometric system. Possible values are: 0 for Energy counter (amplifiers), 1 for Photon + counter (CCDs, Photomultipliers). +
PhotometricSystem.photometryFiltercompositionThe Photometric information is related to a Photometric system, and gathers filter descriptions, for one or several . + +
PhotometryFilterobjectTypeFilter class to store ids, name and properties. + +
PhotometryFilter.bandNameattributeA standard label representing the spectral band associated to this filter (if any).
PhotometryFilter.bandwidthcompositionAssociation to the spectral band-pass of the Filter. + + + +
PhotometryFilter.dateValidityFromattributeStart time of the time coverage for which this filter configuration is applicable. String time format accepted is ISO8601. + +
PhotometryFilter.dateValidityToattributeEnd time of the time coverage for which this filter configuration is applicable. String time format accepted is ISO8601. + +
PhotometryFilter.descriptionattributeThis string contains a verbose human readable label for the filter. This will allow client applications to display textual + information to final users. +
PhotometryFilter.fpsIdentifierattributeIVOA identifier of the filter profile service where this photometry filter is registered to be used in the discovery of all + the relevant photometry filter properties. +
PhotometryFilter.identifierattributeThis field identifies a filter, in a unique way, within a certain Photometry Filter Profile service. + Example to build this string : Facility/Subcategory/Band[/Suffix] like SDSS/SDSS.G/G +
PhotometryFilter.nameattributeA human readable string to represent the filter name.
PhotometryFilter.spectralLocationcompositionAssociation to a spectral coordinate value for locating the Filter band-pass. Usually the mean value. + + +
PhotometryFilter.transmissionCurvecompositionLink to the Transmission Curve of the Filter, when this is described.
PogsonZeropointobjectTypeExtension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion + functions. + +
SpectralLocationobjectTypeA spectral coordinate value for locating the Filter band-pass. Usually the mean value (for instance in wavelength units). + This class is used to characterize the spectral properties of a filter. + +
SpectralLocation.ucdattributeUnified Content Description (UCD) string that specifies the nature of the spectral location for this filter.
SpectralLocation.unitexpressionattributeUnit string that specifies the spectral units for this filter.
SpectralLocation.valueattributeA spectral coordinate value that can be considered by the data provider as the most representative for this specific filter + bandpass. + In the Optical regime this can represent the effective wavelength, for instance. + +
TransmissionCurveobjectTypeA collection of points along the spectral axis to indicate how flux are transmitted by a filter. + The transmission profile can be described by an external file and accessed through the Access instance, or can be stored as + a collection of transmission points stored together in the PhotometryFilter serialized instance. +
TransmissionCurve.accesscompositionAccess to an external file containing the set of Transmission Points.
TransmissionCurve.transmissionPointcompositionSet of points of the transmission curve.
TransmissionPointobjectTypeThis class is used to represent a point in the transmission function of a Filter. + + +
TransmissionPoint.spectralErrorValueattributeError on the spectral coordinate value for the transmission point.
TransmissionPoint.spectralValueattributeSpectral coordinate value for the transmission point.
TransmissionPoint.transmissionValueattributeTransmitted value for the filter at this point of the transmission curve. Usually between 0 and 1. + +
TransmissionPoint.ucdattributeUnified Content Description (UCD) string that specifies the nature of the spectral axis in the transmission curve.
TransmissionPoint.unitattributeUnit string that specifies the spectral unit for this filter.
TypeOfMagSystemenumerationThe type of System used to compute magnitude for this photometric calibration procedure .
TypeOfMagSystem.ABmagliteralAB magnitude system.
TypeOfMagSystem.STmagliteralST magnitude system.
TypeOfMagSystem.VEGAmagliteralMagnitude system related to VEGA.
UCDprimitiveTypeSpecialized string type derived from ivoa:string. UCD words belong to a controlled vocabulary. They are used as semantics + tags for the content of table columns . See the UCD IVOA Recommendation. + +
ZeroPointobjectTypeThis class is used to characterize a zero point flux obtained during the calibration of a certain photometry filter on a certain + photometric system configuration. +
ZeroPoint.fluxcompositionPoints to the flux value associated to this ZeroPoint magnitude. + +
ZeroPoint.referenceMagnitudeErrorattributeTotal error estimated on the reference magnitude value whenever applicable. + +
ZeroPoint.referenceMagnitudeValueattributeReference magnitude value of the calibrating object. can be a implemented as a double number to get the maximum precision. + + Default value is zero, but sometimes the reference mag measured is slightly above. + + +
ZeroPoint.typeattributeType describing the way the zeropoint value is defined . Is an integer value : {0=Pogson, 1=Asinh, 2=Linear} corresponding + to zero point definitions. +
+
+

4.Imported Models

+

This section lists the external models imported by the current data model. + For each imported model we list URLs to the VO-DML and HTML representations and the prefix used for vodml-ids from inside + the model. +

+

4.1 ivoa +

+ + + + + + + + + + + + + +
Model vodml-idivoa
urlhttp://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml
documentation urlhttps://github.com/ivoa/vo-dml/blob/master/models/ivoa/vo-dml/IVOA-v1.0.html
+ +

4.2 ivoa template derived classes +

+ + + + +
Base Types derived classes + + PhotDM v1.1 Base types from ivoa and derived +
+ + From 7db52f1a12f36056da5e9b5f3965333678b151c2 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Mon, 11 Jul 2022 11:21:37 +0200 Subject: [PATCH 15/40] Update fpsFilterExample.xml --- serializations/fpsFilterExample.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serializations/fpsFilterExample.xml b/serializations/fpsFilterExample.xml index 1dce98c..8974522 100644 --- a/serializations/fpsFilterExample.xml +++ b/serializations/fpsFilterExample.xml @@ -45,11 +45,11 @@ From 84147b3a75b6a9c626d7b2cad071ac5421f733b7 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Mon, 1 Aug 2022 12:57:52 +0100 Subject: [PATCH 16/40] Covering all registry comments except Capabilities --- PhotDM.tex | 133 ++++++++++++++++++++++++++--------------------------- 1 file changed, 65 insertions(+), 68 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 64748d6..a4ec584 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -397,7 +397,7 @@ \section{Astronomical Photometry} A convenient graphical representation of these systems is shown in Figure 3.1 of the Synphot manual: -\url{http://www.stsci.edu/resources/software_hardware/stsdas/synphot/SynphotManual.pdf}. +\url{http://stsdas.stsci.edu/Files/SynphotManual.pdf}. \par For a photometric system that uses Vega magnitudes, the zero point @@ -406,8 +406,8 @@ \section{Astronomical Photometry} \citep{2001eaa..book.....M} for the Johnson photometric system. Although the agreed Vega spectrum has changed historically, the commonly referred to spectrum of Vega in digital form described in \citep{2004AJ....127.3508B} -is available as file at \emph{alpha\_lyr\_stis\_002.fits} at:\par -\url{http://www.stsci.edu/instruments/observatory/cdbs/calspec} +is available as file at \emph{alpha\_lyr\_stis\_010.fits} at:\par +\url{https://archive.stsci.edu/hlsps/reference-atlases/cdbs/current_calspec/} \par In the AB system, the flux density (in units of $erg\, cm^{_2}\, s^{-1}\, Hz^{-1}$) @@ -658,7 +658,7 @@ \subsubsection{PhotometryFilter.fpsIdentifier: String} where svo.cab is the authority id, fps is the resource key of the service. \par -Whenever the definition of the FPS filter profile service is standardised, +Whenever the definition of the Filter Profile Service (FPS) is standardised, the service url of the filter profile service could be obtained from the registry by requesting the associated information of this registry resource, e.g., once registered the service URL associated @@ -804,68 +804,10 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par Spectral and transmission coordinates can be gathered directly as a table using -UTypes of TransmissionPoint attributes (see \ref{serialisationfilter}). +UTypes of TransmissionPoint attributes (see \ref{serialisationfilter}). Transmission points +of the curve are stored into a simple table using spectrum data fields. \par -\subsubsection{PhotometryFilter.spectralLocation.value: real} -A spectral coordinate value that can be considered by the data provider as the -most representative for this specific filter band-pass. The selection of this -value should take into account the filter transmission curve profile and in -general should be close to the wavelength mean value, defined -in \citet{1982AJ.....87..670O} as: -\par -\begin{equation} \label{eq:16} -\lambda_{mean} = \frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda)d\lambda} -\end{equation} - -where $\lambda_{mean}$ is the spectral bounds mean value, $T(\lambda)$ is -the transmission curve (see below), $\lambda$ is the wavelength. Please -notice that, since the transmission curve will only be defined in a specific -spectral range, the integrals will also be effectively defined in this -spectral range. -\par - -Another convenient definition of an effective wavelength is the -$``$pivot wavelength$"$ defined as follows: - -\begin{equation} \label{eq:17} -\lambda_{pivot} = \sqrt{\frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda)\frac{d\lambda}{\lambda}}} -\end{equation} - -It can be proved that the pivot wavelength fulfills the following -relation between the $f_\lambda$ and $f_\nu $: - -\begin{equation} \label{eq:18} -\langle f_\nu \rangle =\langle f_\lambda \rangle \lambda^2_{pivot}/c -\end{equation} - -Other definitions for effective wavelengths commonly used in the literature -are source dependent as, e.g., the isophotal wavelength: -\begin{equation} \label{eq:19} -\lambda_{mean} = \frac{\int \lambda F_\lambda(\lambda)T(\lambda)d\lambda}{\int F_\lambda(\lambda)T(\lambda)d\lambda} -\end{equation} - -Or the photon distribution based effective wavelength: -\begin{equation} \label{eq:20} -\lambda_{mean} = \frac{\int \lambda^2 F_\lambda(\lambda)T(\lambda)d\lambda}{\int \lambda F_\lambda(\lambda)T(\lambda)d\lambda} -\end{equation} - -but these source dependent definitions have two caveats: - -\begin{itemize} - \item{Real spectra do not necessarily satisfy the requirements of the mean value theorem, - which could produce multiple values for the wavelength.} - - \item{Calculation of these wavelengths implies the knowledge of $F_\lambda $ (usually - what you want to measure) and it does not look like an intrinsic property of the - photometry filter.} -\end{itemize}\par - -\subsubsection{PhotometryFilter.transmissionCurve} -This data model field stores points of the curve in place in a simple table using spectrum -data fields as shown above. See serialisation example in section -\ref{serialisationfilter} \par - \paragraph{PhotometryFilter.transmissionCurve.access} If the transmission curve is hooked as an external file, we use the \textit{Access} class defined in the Observation Core Components data model \citep{2017ivoa.spec.0509L} and inherited @@ -913,7 +855,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} \begin{itemize} \item{spectralValue, type real, with the spectral coordinate (wavelength, energy or frequency) value} \item{spectralErrorValue, type real, with the error on the spectral coordinate} - \item{unit, type Unit, with the unit used for the specralValue. This is also linked to the type of spectral coordinate used} + \item{unit, type Unit, with the unit used for the spectralValue. This is also linked to the type of spectral coordinate used} \item{ucd, type UCD, used to indicates the type of spectral coordinate from the ontological point of view} \item{One transmissionValue, unitless real, with a value between 0 and 1} \end{itemize} @@ -932,6 +874,61 @@ \subsubsection{PhotometryFilter.transmissionCurve} implemented using type restrictions on strings. \par + +\subsubsection{PhotometryFilter.spectralLocation.value: real} +A spectral coordinate value that can be considered by the data provider as the +most representative for this specific filter band-pass. The selection of this +value should take into account the filter transmission curve profile and in +general should be close to the wavelength mean value, defined +in \citet{1982AJ.....87..670O} as: +\par +\begin{equation} \label{eq:16} +\lambda_{mean} = \frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda)d\lambda} +\end{equation} + +where $\lambda_{mean}$ is the spectral bounds mean value, $T(\lambda)$ is +the transmission curve (see below), $\lambda$ is the wavelength. Please +notice that, since the transmission curve will only be defined in a specific +spectral range, the integrals will also be effectively defined in this +spectral range. +\par + +Another convenient definition of an effective wavelength is the +$``$pivot wavelength$"$ defined as follows: + +\begin{equation} \label{eq:17} +\lambda_{pivot} = \sqrt{\frac{\int T(\lambda)\lambda d\lambda}{\int T(\lambda)\frac{d\lambda}{\lambda}}} +\end{equation} + +It can be proved that the pivot wavelength fulfills the following +relation between the $f_\lambda$ and $f_\nu $: + +\begin{equation} \label{eq:18} +\langle f_\nu \rangle =\langle f_\lambda \rangle \lambda^2_{pivot}/c +\end{equation} + +Other definitions for effective wavelengths commonly used in the literature +are source dependent as, e.g., the isophotal wavelength: +\begin{equation} \label{eq:19} +\lambda_{mean} = \frac{\int \lambda F_\lambda(\lambda)T(\lambda)d\lambda}{\int F_\lambda(\lambda)T(\lambda)d\lambda} +\end{equation} + +Or the photon distribution based effective wavelength: +\begin{equation} \label{eq:20} +\lambda_{mean} = \frac{\int \lambda^2 F_\lambda(\lambda)T(\lambda)d\lambda}{\int \lambda F_\lambda(\lambda)T(\lambda)d\lambda} +\end{equation} + +but these source dependent definitions have two caveats: + +\begin{itemize} + \item{Real spectra do not necessarily satisfy the requirements of the mean value theorem, + which could produce multiple values for the wavelength.} + + \item{Calculation of these wavelengths implies the knowledge of $F_\lambda $ (usually + what you want to measure) and it does not look like an intrinsic property of the + photometry filter.} +\end{itemize}\par + \subsubsection{PhotometryFilter.bandwidth: Bandwidth} A reference position along the spectral axis coverage of the referenced photometry filter. \par @@ -1439,7 +1436,7 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser decided that the ZeroPoint.flux to be used was not the general one for this filter within the filter profile service but the night one. In this case, this corrected value would appear in the DAL response or in the data serialisation so this value, -and not the one on the FPS will be used for the conversions. +and not the one on the Filter Profile Service will be used for the conversions. \par Flux could be then calculated as (for Pogson magnitudes, i.e. Zeropoint.type=0 and @@ -2030,8 +2027,8 @@ \subsection{Filter Profile Service Serialisation} \label{serialisationfilter} Service output: Simple VOTable Format}]{./serializations/fpsFilterExample.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% -\subsection{Photometric Data in Cone Search} -Catalogs could include photometric measurements in some columns. In order +\subsection{Photometric Data in Cone Search and TAP} +Catalogues could include photometric measurements in some columns. In order to allow the publication of these measurements in a. e.g., cone search service, the creation of a new capability has been proposed. \par From 1ffb02ab7abc6ef7381f1949d21a6f34fa560aa8 Mon Sep 17 00:00:00 2001 From: James Dempsey Date: Sat, 6 Aug 2022 13:33:44 +1000 Subject: [PATCH 17/40] Correct figure reference --- PhotDM.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PhotDM.tex b/PhotDM.tex index a4ec584..d267ba5 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -437,7 +437,7 @@ \section{Astronomical Photometry} \par \section{Photometry Data Model} \label{datamodel} -The model shown in Figure 1, organizes the structure and detailed metadata +The model shown in Figure~\ref{fig:overview}, organizes the structure and detailed metadata fields of the Photometry Data Model in a logical manner, and shows the relationship to other IVOA data models. The metadata fields for each class specify the essential elements required to describe a photometric measurement. @@ -496,6 +496,7 @@ \section{Photometry Data Model} \label{datamodel} \begin{figure}[H] \includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_20220520.png} \caption{Overview class diagram of the Photometry Data Model maintained with Modelio 3.8.} +\label{fig:overview} \end{figure} \begin{figure}[H] From ab71102b64517fbb0e46c9e5ee01b9897adb7db4 Mon Sep 17 00:00:00 2001 From: loumir Date: Mon, 5 Sep 2022 18:26:58 +0200 Subject: [PATCH 18/40] update following F. Bonnarel comments issue #108 --- .DS_Store | Bin 0 -> 6148 bytes Makefile | 4 +- PhotDM.tex | 65 +++---- inkscape | 1 + ivoatexmeta.tex | 4 +- role_diagram.pdf | Bin 60107 -> 52169 bytes role_diagram.svg | 68 +++---- role_diagram.xml | 2 + .../2MASS_Filter_Mapping_Example.xml | 1 + serializations/photdm.2MASS.2MASS.Ks.xml | 178 +++++++++++------- 10 files changed, 180 insertions(+), 143 deletions(-) create mode 100644 .DS_Store create mode 120000 inkscape diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d3fe4095b8ad087d5f0157aa90c7831f7562e80c GIT binary patch literal 6148 zcmeHKJ!>055S>lVv9KUg3PVETaK9iyog0Odk*knO7}5lyFC@W9C-jA|30&tN;l{l? zcdqQhe29?|q>jdo0#TlbGH8s!9=a9Aer`+l z%#OSTDxM>56)N?l+h2R=8^d~BOOkknOHh6H<3Upu$u8CY!Szh8UC8W|aH+135>($u%x8zXpxD4{ zRl!AFe34$4NBifenPg7B%VBkdsITt0{tFsX9gnRE9+JU+vAXDYIea@W%{YiTTo&tM z1dn~q<0W`BX}~&AjQ&(Vybc~>kB068+!!b&%zefJHpaUP3U7jwS9Sd^Y{{AbDt|Xe zELiDnbz_Z5WzdV0UJLxOA8$1qlgVz4^Z{N0ufYGN0Dm7sG{(qcYEXYV(CH%pFu<@j zT=Q9ib3%)e#nd1?FlADKCRN!ZhBE0G4{cmzF*Rt?N!i1PvXzxRp(tG)^M^W|RAkWi zUIDLwRN%R}&GY_$y#D+zll+}mz$@@iDWHOKrF?`X*}ZjXalF@tXy4J;I4(7)Q_$J% hSYPl~{2EOgd?8-|Ba5j)jKKUK0WE{?yaInzfhXpn=otV2 literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile index 432bb33..61e07d8 100644 --- a/Makefile +++ b/Makefile @@ -7,10 +7,10 @@ DOCNAME = PhotDM DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -DOCDATE = 2022-04-22 +DOCDATE = 2022-09-05 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN -DOCTYPE = WD +DOCTYPE = PR # An e-mail address of the person doing the submission to the document # repository (can be empty until a make upload is being made) diff --git a/PhotDM.tex b/PhotDM.tex index d267ba5..3802cca 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -82,9 +82,14 @@ \end{abstract} \section*{Acknowledgments} -We acknowledge the EuroVO Science Advisory Committee for the review of the -initial versions of the document and to the developers who have contributed +We acknowledge the support of EuroVO Science Advisory Committee for the review of the +initial versions of PhotDMv1.0 , and the Spanish VO developers who have contributed to the data model reference implementations. +The design changes and the modeling for the translation to VODML was supported in part by the +the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) +that has received funding from the European Union?s Horizon 2020 research and innovation programme under the Grant Agreement n. 824064. + + \pagebreak \section*{Link to IVOA Architecture} @@ -107,10 +112,9 @@ \section*{Link to IVOA Architecture} \caption{PhotDM can be used to enhance and abstract SSAP and TAP access, in particular to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. -PhotDM makes use of UTypes from different IVOA data models, including CharDM and UCDs and -also express quantities in line with the VOUnits definition. -PhotDM also adds serialisation examples in VOTable. -} +PhotDMv1.1 makes use of UTypes, for backward compatibility to PhotDMv1.0 , and of UCDs as well as VOUnits. +PhotDM can have serialisation in the VOTable format. This version relies on the VODML modeling principles and +is described in a VODML xml reference document .} \label{fig:archdiag} \end{figure} @@ -283,7 +287,7 @@ \section{Introduction} such as SSAP (Simple Spectra Access Protocol) or TAP (Table Access Protocol). As with most of the VO Data Models, PhotDM makes use of STC, UTypes, Units -and UCDs. PhotDM will be serializable with a VOTable. +and UCDs. PhotDM will be serialisable with a VOTable. \section{Astronomical Photometry} Astronomical photometry refers to measuring the brightness, flux or @@ -410,7 +414,7 @@ \section{Astronomical Photometry} \url{https://archive.stsci.edu/hlsps/reference-atlases/cdbs/current_calspec/} \par -In the AB system, the flux density (in units of $erg\, cm^{_2}\, s^{-1}\, Hz^{-1}$) +In the AB system, the flux density (in units of $erg\, cm^{-2}\, s^{-1}\, Hz^{-1}$) corresponding to a given magnitude is simply obtained via: \begin{equation} \label{eq:11} @@ -418,7 +422,7 @@ \section{Astronomical Photometry} \end{equation} And, in the same way, in the ST system, the flux density (in units of $erg\, -cm^{_2}\, s^{-1}\, \angstrom^{-1}$) corresponding to a given magnitude is: +cm^{-2}\, s^{-1}\, \angstrom^{-1}$) corresponding to a given magnitude is: \begin{equation} \label{eq:12} f_{\lambda} = 10^{-0.4(m_{ST}+21.1)} @@ -478,11 +482,11 @@ \section{Photometry Data Model} \label{datamodel} filter instance, i.e., a certain photometry filter using a certain magnitude system and linked to a certain zero point class. %mir as suggested by MCD -PhotCal is the class node where a spectral data model interacts. -It binds the filter and +PhotDM will interact with Spectral data models (any version) with using PhotCal +as a node. It binds the filter and zeropoint information to the Flux Axis calibration. It can be understood as the calibration configuration used, bringing together a specific photometry filter -instance with magnitude system and zeropoint. It leverages the handling of +instance with magnitude system and zero point. It leverages the handling of photometric data through IVOA protocols e.g. SSAP or TAP services. \par @@ -521,8 +525,8 @@ \section{Photometry Data Model} \label{datamodel} error, units, etc. However, within the present specification, we will describe individual attributes of the different quantities separately. This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 -did not match the one proposed in the VODML ivoa template. As a consequence, the UTypes are also -generated from individual attributes to facilitate the use within IVOA Data Access Layer protocols. +did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM1.1 are also +generated from these individual attributes to facilitate the use within IVOA Data Access Layer protocols. \par @@ -589,8 +593,8 @@ \subsubsection{PhotometricSystem.detectorType: integer} flux average in, e.g., the synthetic photometry calculations. % mir MCD Suggestion At present, this list is exhaustive. -See the description of photometry filter -transmission curve to understand how to use this field. +See the description of the photometry filter +transmission curve ( section \ref{sec:transmissioncurve} to understand how to use this field. \par \subsection{PhotometryFilter Class} @@ -739,6 +743,7 @@ \subsubsection{PhotometryFilter Time Validity Range} applicable. \subsubsection{PhotometryFilter.transmissionCurve} +\label{sec:transmissioncurve} Here we consider how wavelengths/frequencies are filtered in the whole acquisition chain for a calibrated observation stemming from a given data collection. @@ -791,7 +796,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} f(\lambda_{eff}) = \frac{\int T(\lambda)F(\lambda)\lambda d\lambda}{\int T(\lambda)\lambda d\lambda} \end{equation} -Where $T(\lambda)$ is the transmission curve, $f(\lambda)$ is the flux of +Where $T(\lambda)$ is the transmission curve, $f(\lambda_{eff})$ is the flux of the spectrum. As the transmission curve is defined only in the filter band-pass, the limits of the integrals corresponds to the spectral range where the transmission curve is defined (stored as \textit{PhotometryFilter.bandwidth} @@ -805,8 +810,8 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par Spectral and transmission coordinates can be gathered directly as a table using -UTypes of TransmissionPoint attributes (see \ref{serialisationfilter}). Transmission points -of the curve are stored into a simple table using spectrum data fields. + TransmissionPoint attributes (see \ref{serialisationfilter}). Transmission points +of the curve are stored into a simple table using spectrum data fields with their utypes, ucds and units. \par \paragraph{PhotometryFilter.transmissionCurve.access} @@ -931,18 +936,10 @@ \subsubsection{PhotometryFilter.spectralLocation.value: real} \end{itemize}\par \subsubsection{PhotometryFilter.bandwidth: Bandwidth} -A reference position along the spectral axis coverage of the referenced photometry filter. +A reference range along the spectral axis coverage of the referenced photometry filter. \par -Although this will partially reuse the -\par - -\begin{center} -Char.SpectralAxis.Coverage.Location.Bounds -\end{center}\par - -\noindent concept of the Characterization Data Model, -the basic elements of this object are described +The basic elements of this object are described within the context of a photometry filter as follows. \par @@ -1011,7 +1008,7 @@ \subsubsection{PhotCal.identifier: String} \par %%%%%%%%%%%%%%%%%%%% Table No: 15 starts here %%%%%%%%%%%%%%%%%%%% -Facility/Subcategory/Band/Photometric System Type[/Suffix] +Facility/Subcategory/Band/Magnitude System Type[/Suffix] \bigskip @@ -1019,7 +1016,7 @@ \subsubsection{PhotCal.identifier: String} where \textit{Facility} is the telescope, observatory, space mission, etc that has this filter, \textit{Subcategory} is a meaningful classification of filters within a facility (usually instrument), \textit{Band} is the generic name used to -describe the wavelength band used by this filter \textit{Photometric System Type} +describe the spectral band used by this filter, \textit{Magnitude System Type} makes reference to the type of system as per classification within this document and \textit{Suffix} is optional metadata added to the unique identifier string to ensure uniqueness within a Filter Profile Service. @@ -2061,11 +2058,11 @@ \subsection{Photometric Data in Cone Search and TAP} Exact details on how to serialize the response are contained in \citep{derriere}. -\subsection{Serialisation using VO/DML model} \label{appendixmapping} -The VO/DML view of the PhotDM allows the serialisation of the PhotDM elements +\subsection{Serialisation using VODML model} \label{appendixmapping} +The VODML view of the PhotDM allows the serialisation of the PhotDM elements using mapping techniques into, e.g. VOTable formats. We show one of the possible serialisations in line with the mapping efforts of the IVOA DM working group. -This serialisation describes the PhotCal Vega calibration of the 2MASS Ks filter. +This example describes the PhotCal Vega calibration of the 2MASS Ks filter. \par %%%%%%%%%%%%%%%%%%%% Table No: starts here %%%%%%%%%%%%%%%%%%%% \lstinputlisting[language=XML,breaklines, caption={XML mapping block for the diff --git a/inkscape b/inkscape new file mode 120000 index 0000000..e85535b --- /dev/null +++ b/inkscape @@ -0,0 +1 @@ +inkscape \ No newline at end of file diff --git a/ivoatexmeta.tex b/ivoatexmeta.tex index d52032f..ae8fefa 100644 --- a/ivoatexmeta.tex +++ b/ivoatexmeta.tex @@ -1,6 +1,6 @@ % GENERATED FILE -- edit this in the Makefile \newcommand{\ivoaDocversion}{1.1} -\newcommand{\ivoaDocdate}{2022-06-29} -\newcommand{\ivoaDocdatecode}{20220629} +\newcommand{\ivoaDocdate}{2022-09-05} +\newcommand{\ivoaDocdatecode}{20220905} \newcommand{\ivoaDoctype}{PR} \newcommand{\ivoaDocname}{PhotDM} diff --git a/role_diagram.pdf b/role_diagram.pdf index a916fc810027a38098b2ab61c840e68771113771..e799f5684c7f465ea7e9b5f4499dab21031d1894 100644 GIT binary patch literal 52169 zcmbrlWpG@}vNb5#VrE&~VrG^F7Be$5Gg!>bj21I9Gh58e%*-r}eC|E>o%g=?&HR|| zj;zYHbJyOLS(OzXk&9SHK!}>2h8c>u{;c8!iU~jmu+}q!;^YL-N*G!hJD32NKOs3N z002NMWNP7HX!qG#=sFk*80uRa7(#J#L)kmn8R}X>Ij7|-iOa8uAatB4k4|BiNlds! zBCr%o@?J4$6k*pj(2Xyn#q;D6MbJC`2~Vrf-&asu%O*35Wd4o!WqAB(K6g& z+}Bf?Q40@hd_%HxHGXIO+rD%O{H)NAx>KhSW%bF5R5c zjM);lN4opadoo~EEs&?7_3(8e{R2qPfCe;)C`Bp#X7;-mUONva^ofvhKXhXEmpy~< z2OAL~W$V;_S6op9Z*e{ZENB%80gWWdI}K^^L=+GL`vF)}pC589_BSfC>2P1DSJg+{ zVZh)nXmYG}tMJLY=)|(1e`wyH9zRZ~3YXtYInH{jl^Lg7Ip?dkp_Rzl2xM?R#LQ0} z)L6E<`SiRk5kyapJInQz9WEkaHAs!@Uo^OW(G3+Ekd`JV(ErjeMR}nD|2A>=m{;M+ z#D(9Zc9vsKpc&l5hD3wD>QcC9q z`7S5aRv8pp<^C2;iMX)C+#XwKSig4&20=}8%kbsvtF~VWBOQlrjM%%$@0aJknp{c6 z(SUG=x>ak)Ow^Mn#^}PD(TFbru>r?tl3pdpic>5exVsIN0F=^L6ts*uR(y83izS#K zU9wY0X2I%H!$XrVQ}Iu9$kYAt<}^SNOK8e@5*7Yac>wUGGu9=Wq6v5scN0B1)n?KY-xG`Q4zpG9janJ|j(-FxZDHFJSx)&S_%Jg8_3IA% zH;VQ5iKmih0iLz;J$|DsMQEsyCd|~y(j3TH8^mMJ>awq?$T6Jo-ZHE}6rNr&?=oF) z#5J`(L5=PPRwnb$p!T99lf%e&@}N1PH=gvnjhM3vU5$7{-mrwdFoI5nW^aM8JYeV{81VI zlhOXlVS>&M!txHE`3u0w`3Ly?(CX5CDgau3UI0CSR$up1erC1L3;&X|Le^Fe|FAZq zrlY074B{|sP6P5%k8{&$Gs6Jq=C5aTDr{x|eF`seT8Z%I%03ICmV6cmMxAJ#&q`w`+y`tYK#&Dh7} zK5b?MZ*_fp=IYJGCe7t9al8F^Kb5H4S7A5%9gcjvQ-G5aNVB61-Z zlROaKEAtM0O~N6F+gg+I2<{zT

g%5tbeR?SjYLcFAn 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%0An^e9wXQEMb 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 Xj;{6}ox()N`k_`&L?k35{N?`vX?qB; literal 60107 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 diff --git a/role_diagram.svg b/role_diagram.svg index 193e0f5..11c7d48 100644 --- a/role_diagram.svg +++ b/role_diagram.svg @@ -1,43 +1,43 @@ -IVOA Architecture DiagramThis image shows the architecture of the Virtual Observatory + (cf. http://ivoa.net), together with the relevant standards.UsersComputersProvidersRegistryData Access ProtocolsUser LayerUsingResource LayerSharingVOCoreFindingGettingDesktop AppsIn-BrowserAppsUserProgramsData and Metadata CollectionStorageComputationSemanticsDataModelsVO QueryLanguagesFormats UCD VOTable @@ -47,4 +47,6 @@ TAP SSAP SpectralDM + VODML + diff --git a/role_diagram.xml b/role_diagram.xml index d80e68d..ec91eee 100644 --- a/role_diagram.xml +++ b/role_diagram.xml @@ -20,4 +20,6 @@ with missing dependencies. + + diff --git a/serializations/2MASS_Filter_Mapping_Example.xml b/serializations/2MASS_Filter_Mapping_Example.xml index 81068c1..d4ea1c8 100644 --- a/serializations/2MASS_Filter_Mapping_Example.xml +++ b/serializations/2MASS_Filter_Mapping_Example.xml @@ -1,6 +1,7 @@ + diff --git a/serializations/photdm.2MASS.2MASS.Ks.xml b/serializations/photdm.2MASS.2MASS.Ks.xml index 17c0cbf..d971bd5 100644 --- a/serializations/photdm.2MASS.2MASS.Ks.xml +++ b/serializations/photdm.2MASS.2MASS.Ks.xml @@ -1,75 +1,109 @@ + + + Test for mapping blmock validation for PhotDM 1.1 + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 492cf314bd7f11feaee30bdc0dc6ec3f2c950070 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Tue, 6 Sep 2022 18:48:36 +0100 Subject: [PATCH 19/40] comments from DAL chairs --- PhotDM.tex | 47 ++++++++++++++++++++++++++--- serializations/fpsFilterExample.xml | 4 +-- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 3802cca..8d8a296 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -499,7 +499,9 @@ \section{Photometry Data Model} \label{datamodel} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 starts here %%%%%%%%%%%%%%%%%%%% \begin{figure}[H] \includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_20220520.png} -\caption{Overview class diagram of the Photometry Data Model maintained with Modelio 3.8.} +\caption{Overview class diagram of the Photometry Data Model maintained with Modelio 3.8. +Blue boxes indicate PhotDM pure classes and yellow ones indicate classes that have been reused from other +IVOA data models, connected to them by Roles} \label{fig:overview} \end{figure} @@ -1710,16 +1712,51 @@ \section{Data Model Summary} \hline %row no:5 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.spectralValue.value}} & +\selectfont photdm:PhotometryFilter.transmissionCurve.\ access.size}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont }} & +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Size in kilobytes of the pointed transmission curve}} & +\multicolumn{1}{p{0.74in}}{} & +\multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont int}} \\ +\hline +%row no:6 +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} +\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.spectralValue}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Spectral value of one element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ \hline -%row no:6 +%row no:7 +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} +\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.spectralErrorValue}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error of the spectral value +of one element of the transmission curve representation}} & +\multicolumn{1}{p{0.74in}}{} & +\multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ +\hline +%row no:8 +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} +\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.unit}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont }} & +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral value +of one element of the transmission curve representation}} & +\multicolumn{1}{p{0.74in}}{} & +\multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ +\hline +%row no:9 +\multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} +\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.ucd}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont }} & +\multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD of the spectral value +of one element of the transmission curve representation}} & +\multicolumn{1}{p{0.74in}}{} & +\multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont UCD}} \\ +\hline +%row no:10 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.transmissionValue.value}} & +\selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.transmissionValue}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt} \selectfont phys.transmission}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Transmission value of @@ -1958,7 +1995,7 @@ \section{Data Model Summary} %row no:33 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotCal.magnitudeSystem.\-ReferenceSpectrumURI}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.url }} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.uri }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference SED or spectrum for this magnitude system}} & \multicolumn{1}{p{0.74in}}{} & diff --git a/serializations/fpsFilterExample.xml b/serializations/fpsFilterExample.xml index 8974522..a2c3d79 100644 --- a/serializations/fpsFilterExample.xml +++ b/serializations/fpsFilterExample.xml @@ -45,11 +45,11 @@

From 280f21f0b8213633421bf26e6ff7fd6d8643bb55 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:12:14 +0200 Subject: [PATCH 20/40] transmissionValue should appear in Trans. Point according to the new model : line 52 of the filter example . NB: the filter profile service may have historical records not in line with the spec , but new serialization should comply to this VODMLized spec. --- serializations/fpsFilterExample.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serializations/fpsFilterExample.xml b/serializations/fpsFilterExample.xml index a2c3d79..3ba5539 100644 --- a/serializations/fpsFilterExample.xml +++ b/serializations/fpsFilterExample.xml @@ -49,7 +49,7 @@ ucd="em.wl" unit="Angstrom" datatype="float"/> From 55fac5168774c5f2caaf0517e0f1a888197cf5ff Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:14:15 +0200 Subject: [PATCH 21/40] changed Roles --> roles in caption --- PhotDM.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhotDM.tex b/PhotDM.tex index 8d8a296..d06f848 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -501,7 +501,7 @@ \section{Photometry Data Model} \label{datamodel} \includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_20220520.png} \caption{Overview class diagram of the Photometry Data Model maintained with Modelio 3.8. Blue boxes indicate PhotDM pure classes and yellow ones indicate classes that have been reused from other -IVOA data models, connected to them by Roles} +IVOA data models, connected to them by roles.} \label{fig:overview} \end{figure} From e5f9ee8e6a8e377b19c29677824b9e32719b0b8e Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Thu, 8 Sep 2022 10:31:06 +0200 Subject: [PATCH 22/40] UType table for Transmission Curve update head line --- PhotDM.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index d06f848..b3dac96 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -482,7 +482,7 @@ \section{Photometry Data Model} \label{datamodel} filter instance, i.e., a certain photometry filter using a certain magnitude system and linked to a certain zero point class. %mir as suggested by MCD -PhotDM will interact with Spectral data models (any version) with using PhotCal +PhotDM can interact with Spectral data models (any version) using PhotCal as a node. It binds the filter and zeropoint information to the Flux Axis calibration. It can be understood as the calibration configuration used, bringing together a specific photometry filter @@ -1683,7 +1683,7 @@ \section{Data Model Summary} \begin{tabular}{p{2.5in}|p{1.5in}|p{2in}|p{0.74in}|p{0.35in}} %row no:1 \multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering -{\fontsize{10pt}{12.0pt}\selectfont \textbf{Photometry Filter Access Metadata}}} \\ +{\fontsize{10pt}{12.0pt}\selectfont \textbf{Transmission Curve Metadata}}} \\ \hline %row no:2 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & From 631413c154e3e120271deacde44bf017768ab1b5 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Thu, 8 Sep 2022 12:06:04 +0100 Subject: [PATCH 23/40] Changes proposed into Appendix A1 --- PhotDM.tex | 79 +++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index b3dac96..1ba0811 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -4,7 +4,7 @@ \lstloadlanguages{sh,make,[latex]tex} \lstset{flexiblecolumns=true,numberstyle=\small,showstringspaces=False, identifierstyle=\texttt,defaultdialect=[latex]tex,language=tex} - + \usepackage{todonotes} \usepackage{float} \usepackage{adjustbox} @@ -85,8 +85,8 @@ \section*{Acknowledgments} We acknowledge the support of EuroVO Science Advisory Committee for the review of the initial versions of PhotDMv1.0 , and the Spanish VO developers who have contributed to the data model reference implementations. -The design changes and the modeling for the translation to VODML was supported in part by the -the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) +The design changes and the modeling for the translation to VODML was supported in part by the +the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) that has received funding from the European Union?s Horizon 2020 research and innovation programme under the Grant Agreement n. 824064. @@ -113,7 +113,7 @@ \section*{Link to IVOA Architecture} to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. PhotDMv1.1 makes use of UTypes, for backward compatibility to PhotDMv1.0 , and of UCDs as well as VOUnits. -PhotDM can have serialisation in the VOTable format. This version relies on the VODML modeling principles and +PhotDM can have serialisation in the VOTable format. This version relies on the VODML modeling principles and is described in a VODML xml reference document .} \label{fig:archdiag} \end{figure} @@ -498,7 +498,7 @@ \section{Photometry Data Model} \label{datamodel} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 starts here %%%%%%%%%%%%%%%%%%%% \begin{figure}[H] -\includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_20220520.png} +\includegraphics[angle=90,width=5.98in,height=7.19in]{./schema/PhotometryOverviewDiagram_20220520.png} \caption{Overview class diagram of the Photometry Data Model maintained with Modelio 3.8. Blue boxes indicate PhotDM pure classes and yellow ones indicate classes that have been reused from other IVOA data models, connected to them by roles.} @@ -506,8 +506,8 @@ \section{Photometry Data Model} \label{datamodel} \end{figure} \begin{figure}[H] -\includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesDiagram_PR_20220520.png} -\caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} +\includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesDiagram_PR_20220520.png} +\caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} \end{figure} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 Ends here %%%%%%%%%%%%%%%%%%%% @@ -522,11 +522,11 @@ \section{Photometry Data Model} \label{datamodel} \newpage In order to fully describe values of the magnitudes inside photometry point -instances, the former PhotDM v1.0 used physical quantity classes which used to -aggregate all the basic fields that compose a physical measurement: value, +instances, the former PhotDM v1.0 used physical quantity classes which used to +aggregate all the basic fields that compose a physical measurement: value, error, units, etc. However, within the present specification, we will describe -individual attributes of the different quantities separately. -This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 +individual attributes of the different quantities separately. +This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM1.1 are also generated from these individual attributes to facilitate the use within IVOA Data Access Layer protocols. @@ -745,7 +745,7 @@ \subsubsection{PhotometryFilter Time Validity Range} applicable. \subsubsection{PhotometryFilter.transmissionCurve} -\label{sec:transmissioncurve} +\label{sec:transmissioncurve} Here we consider how wavelengths/frequencies are filtered in the whole acquisition chain for a calibrated observation stemming from a given data collection. @@ -812,7 +812,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par Spectral and transmission coordinates can be gathered directly as a table using - TransmissionPoint attributes (see \ref{serialisationfilter}). Transmission points + TransmissionPoint attributes (see \ref{serialisationfilter}). Transmission points of the curve are stored into a simple table using spectrum data fields with their utypes, ucds and units. \par @@ -1460,6 +1460,14 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \begin{appendices} \section{Conversions} \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} +In the present model and in order to provide a uniform treatment for all the +different photometric systems, we have used the zero point flux as the quantity +to characterise the photometry filter. The type of flux ($f_\nu $ or $f_{lambda}$) +and the units of any converted flux from a magnitude would coincide with the ones +used to express the zero point flux. The zero point flux contains information +about the type of flux that is lost in the zero point magnitude. To show this, we +provide here a couple of conversion examples to illustrate the problem. +\par The zero point flux can also be interpreted as a magnitude in the following way. Taking the equation \ref{eq:33} and clearing the magnitude: \begin{equation} \label{eq:35} @@ -1472,59 +1480,50 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} m_R = 2.5\log_{10} (f_0 ) \end{equation} -e.g. for ABmag photometric systems, the magnitudes are usually defined as: +For ABmag photometric systems, the magnitudes are usually defined as: \begin{equation} \label{eq:37} m_{AB,\nu } = -2.5\log_{10} (f_\nu ) - 48.6 \end{equation} -Which is consistent with the definition of a zero point flux of the -monochromatic $f_\nu $ flux: +As per (\ref{eq:32}), the monochromatic $f_\nu $ flux for ABmag magnitudes is: \begin{equation} \label{eq:38} f_{R}^{AB}=3.63 \times 10^{-20} erg\, s^{-1} cm^{-2} Hz^{-1} \end{equation} - -As: +so the magnitude of reference is: \begin{equation} \label{eq:39} m_R = 2.5\log_{10} (f_{0}^{AB})=2.5 log_10(3.63\times 10^{-20})=-48.6 \end{equation} Other systems usually define the zero point flux as a $f_\lambda $ flux, as -it is usually done by, e.g., STMag systems. For these systems, the reference -flux would be a monochromatic $f_\lambda $ flux: +it is usually done by, e.g., STMag systems. The usual definition of magnitudes for this photometric system is: \begin{equation} \label{eq:40} -f_0 ^{ST} = 3.631 \times 10^{-9} erg\, s^{-1} cm^{-2} \angstrom ^{-1} +m_{ST,\lambda }=-2.5\log_{10} (f_\lambda )-21.1 \end{equation} -The usual definition of magnitudes for this photometric system is: +As per (\ref{eq:33}), the monochromatic +$f_\lambda $ flux for these systems is: \begin{equation} \label{eq:41} -m_{ST,\lambda }=-2.5\log_{10} (f_\lambda )-21.1 +f_0 ^{ST} = 3.631 \times 10^{-9} erg\, s^{-1} cm^{-2} \angstrom ^{-1} \end{equation} -Which corresponds to, as in the previous example, a zero point flux of +what is consistent with the usual definition of magnitudes as: \begin{equation} \label{eq:42} -f_0 ^{ST}=3.631 \times 10^{-9} erg\, s^{-1} cm^{-2} \angstrom ^{-1} -\end{equation} - -as: -\begin{equation} \label{eq:43} m_R =2.5\log_{10} (f_0 ^{ST})=2.5\log_{10} (3.63\times 10^{-9})=-21.1 \end{equation} - -In the present model and in order to provide a uniform treatment for all the -different photometric systems, we have used the zero point flux as the quantity -to characterize the photometry filter. The type of flux ($f_\nu $ or $f_lambda $) -and the units of any converted to flux magnitude would coincide with the ones -used to express the zero point flux, i.e., the zero point flux contains information -lost in the zero point magnitude. \par +Both cases are physically different but the magnitude of reference does not +reflect information by itself this difference. Setting the zero point flux as the +property to characterise the photometric system, the data model contains a +self-consistent metadata and a more general way to describe all the photometric +systems. \subsection{Interrelation between Pogson and Asinh magnitudes} It can be proved that, if b=0, Pogson and Asinh magnitudes are the same: -\begin{equation} \label{eq:44} +\begin{equation} \label{eq:43} \frac{f}{f_0}=10^{-m/2.5}\left[ 1-b^2 10^{2m/2.5}\right] \text{\textbar}_{b=0} =10^{-m/2.5} \end{equation} and -\begin{equation} \label{eq:45} +\begin{equation} \label{eq:44} m=\frac{-2.5}{ln(10)}\left[ sinh^{-1} \left(\frac{f}{2bf_0}\right) + ln(b)\right] \text{\textbar}_{b=0} = \end{equation} \[ @@ -1552,8 +1551,8 @@ \section{Data Model VODML documentation} \url{https://wiki.ivoa.net/internal/IVOA/PhotDM11RFC/Photv1_1_PR_20220520.html} \section{Data Model Summary} -Here is the table summary of the model, backward compatible to PhotDM v1.0. -It shows the UTypes and UCDs used for each data model element. +Here is the table summary of the model, backward compatible to PhotDM v1.0. +It shows the UTypes and UCDs used for each data model element. %%%%%%%%%%%%%%%%%%%% Table No: 20 starts here %%%%%%%%%%%%%%%%%%%% % Mireille : some UCDs need to be changed : From 30c3cdf2a5c4ecba2e355c93fc35eb470170e386 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Thu, 8 Sep 2022 13:07:41 +0100 Subject: [PATCH 24/40] Changes proposed by LM --- PhotDM.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 1ba0811..d76999d 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -86,7 +86,7 @@ \section*{Acknowledgments} initial versions of PhotDMv1.0 , and the Spanish VO developers who have contributed to the data model reference implementations. The design changes and the modeling for the translation to VODML was supported in part by the -the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) +ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) that has received funding from the European Union?s Horizon 2020 research and innovation programme under the Grant Agreement n. 824064. @@ -113,7 +113,7 @@ \section*{Link to IVOA Architecture} to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. PhotDMv1.1 makes use of UTypes, for backward compatibility to PhotDMv1.0 , and of UCDs as well as VOUnits. -PhotDM can have serialisation in the VOTable format. This version relies on the VODML modeling principles and +PhotDM can have serialisations in the VOTable format. This version relies on the VODML modeling principles and is described in a VODML xml reference document .} \label{fig:archdiag} \end{figure} @@ -506,7 +506,7 @@ \section{Photometry Data Model} \label{datamodel} \end{figure} \begin{figure}[H] -\includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesDiagram_PR_20220520.png} +\includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesdiagram.png} \caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} \end{figure} From a7e19ec1953bd7650743d7a323bafb445ccb759a Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Thu, 8 Sep 2022 14:32:38 +0200 Subject: [PATCH 25/40] removed ? in Acknowledgement section --- PhotDM.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhotDM.tex b/PhotDM.tex index d76999d..2ffaccc 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -87,7 +87,7 @@ \section*{Acknowledgments} to the data model reference implementations. The design changes and the modeling for the translation to VODML was supported in part by the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) -that has received funding from the European Union?s Horizon 2020 research and innovation programme under the Grant Agreement n. 824064. +that has received funding from the European Horizon 2020 research and innovation programme under the Grant Agreement n. 824064. \pagebreak From 66ac132e49392931f5455d0c93af29352115edf2 Mon Sep 17 00:00:00 2001 From: loumir Date: Wed, 14 Sep 2022 15:22:56 +0200 Subject: [PATCH 26/40] updates-sectionD-serialisation --- .DS_Store | Bin 6148 -> 6148 bytes PhotDM.tex | 44 ++++++++--------------- serializations/photdm.2MASS.2MASS.Ks.xml | 4 +-- 3 files changed, 16 insertions(+), 32 deletions(-) diff --git a/.DS_Store b/.DS_Store index d3fe4095b8ad087d5f0157aa90c7831f7562e80c..21e1f7d22741e880e0589de6d6cd7e82d6575bfc 100644 GIT binary patch delta 195 zcmZoMXffEJ$`V(yq=kWjfrUYjA)O(Up(Hoo#U&{xKM5$tVf|~h(65Xmj;Qh}c;yQ+ z41<&Na|?ia7#J!OCO5O3W|phun;gh0$KmV5v{Wtmh$E0AGP#?Tiwz<$c{ZyelcK`r qeXI$LOd=eU71(t+e)+5fTMgtW@gr - Test for mapping blmock validation for PhotDM 1.1 + Example of MIVOT mapping block for filter 2MASS_Ks using PHOTDMv 1.1 VODML representation - - From d08551c94ff324ba98bd5562d349fe938cf1a279 Mon Sep 17 00:00:00 2001 From: loumir Date: Thu, 15 Sep 2022 14:43:21 +0200 Subject: [PATCH 27/40] registry comments update + em.wl corrections --- Makefile | 2 +- PhotDM.tex | 52 ++++++++++++++++++++++--------------------------- ivoatexmeta.tex | 4 ++-- 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 61e07d8..bc55f0b 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ DOCNAME = PhotDM DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -DOCDATE = 2022-09-05 +DOCDATE = 2022-09-15 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN DOCTYPE = PR diff --git a/PhotDM.tex b/PhotDM.tex index 4c72603..5618a89 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -287,7 +287,7 @@ \section{Introduction} such as SSAP (Simple Spectra Access Protocol) or TAP (Table Access Protocol). As with most of the VO Data Models, PhotDM makes use of STC, UTypes, Units -and UCDs. PhotDM will be serialisable with a VOTable. +and UCDs. PhotDM is serialisable with a VOTable. \section{Astronomical Photometry} Astronomical photometry refers to measuring the brightness, flux or @@ -868,21 +868,20 @@ \subsubsection{PhotometryFilter.transmissionCurve} \item{One transmissionValue, unitless real, with a value between 0 and 1} \end{itemize} -One example for PhotometryFilter.transmissionCurve.transmissionPoint.ucd could be, for example: -\par - -%%%%%%%%%%%%%%%%%%%% Table No: 14 starts here %%%%%%%%%%%%%%%%%%%% -em.wl -%%%%%%%%%%%%%%%%%%%% Table No: 14 ends here %%%%%%%%%%%%%%%%%%%% +One example for a (unit, ucd) combination applied to the PhotometryFilter.transmissionCurve.transmissionPoint could be, for example: +(\texttt{angstrom}, \texttt{em.wl}) +indicating that the spectral coordinate is provided as wavelength and in angstroms . -Where \textit{em.wl }indicates that the spectral coordinate is provided in wavelength. \par +Although the PhotDM1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version +according to which spectral regime the spectral values apply. This is up to the data provider to use a consistent combination. + The Unit and UCD strings follow specific constraints defined in the IVOA standards and are -implemented using type restrictions on strings. +implemented using type restrictions on strings in VODML. +The serialisation of the transmission curve factorises the (unit, ucd) pair for all points of course. \par - \subsubsection{PhotometryFilter.spectralLocation.value: real} A spectral coordinate value that can be considered by the data provider as the most representative for this specific filter band-pass. The selection of this @@ -981,7 +980,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} \lambda_{min} = \lambda_{mean} - \frac{w}{2} \end{equation} -In practice, this could be taken as the minimum value of the filter transmission curve. +In practice, this could be taken as the minimum spectral value of the filter transmission curve. \par \paragraph{PhotometryFilter.bandwith.stop: real} @@ -994,7 +993,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} \lambda_{max} = \lambda_{mean} + \frac{w}{2} \end{equation} -In practice, this could be taken as the maximum value of the filter transmission +In practice, this could be taken as the maximum spectral value of the filter transmission curve.\par \subsection{PhotCal Class} @@ -1555,8 +1554,6 @@ \section{Data Model Summary} It shows the UTypes and UCDs used for each data model element. %%%%%%%%%%%%%%%%%%%% Table No: 20 starts here %%%%%%%%%%%%%%%%%%%% -% Mireille : some UCDs need to be changed : -% meta.ref.ivorn is now deprecated --> change to meta.ref.ivoid \begin{table}[H] \centering @@ -1673,9 +1670,6 @@ \section{Data Model Summary} %%%%%%%%%%%%%%%%%%%% Table No: 21 starts here %%%%%%%%%%%%%%%%%%%% %Photometry Filter Access Metadata -% Mireille : some UCDs need to be changed : -% meta.ref.ivorn is now deprecated --> change to meta.ref.ivoid - \begin{table}[H] \centering \begin{adjustbox}{angle=90} @@ -1694,7 +1688,7 @@ \section{Data Model Summary} %row no:3 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.transmissionCurve.\ access.reference}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.ivoid }} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ref.uri }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont URI to the effective transmission curve}} & @@ -1720,7 +1714,7 @@ \section{Data Model Summary} %row no:6 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.spectralValue}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.*}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Spectral value of one element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & @@ -1729,9 +1723,9 @@ \section{Data Model Summary} %row no:7 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.spectralErrorValue}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.*}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Error of the spectral value -of one element of the transmission curve representation}} & +of each element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont real}} \\ \hline @@ -1740,7 +1734,7 @@ \section{Data Model Summary} \selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.unit}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral value -of one element of the transmission curve representation}} & +of each element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline @@ -1749,7 +1743,7 @@ \section{Data Model Summary} \selectfont photDM.PhotometryFilter.transmissionCurve.\ transmissionPoint.ucd}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD of the spectral value -of one element of the transmission curve representation}} & +of each element of the transmission curve representation}} & \multicolumn{1}{p{0.74in}}{} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont UCD}} \\ \hline @@ -1805,7 +1799,7 @@ \section{Data Model Summary} %row no:10 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.spectralLocation.\ value}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;meta.main }} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.*;meta.main as appropriate}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Reference position along the spectral axis. Spectral coordinate of the Zero Point }} & \multicolumn{1}{p{0.74in}}{} & @@ -1817,7 +1811,7 @@ \section{Data Model Summary} \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral axis used to characterize it}} & -\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont angstrom}} & +\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont }} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:12 @@ -1826,7 +1820,7 @@ \section{Data Model Summary} \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.ucd }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont UCD for the nature of spectral axis wl, freq, energy}} & -\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont em.wl}} & +\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont em.*\ as appropriate}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:13 @@ -1835,7 +1829,7 @@ \section{Data Model Summary} \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral extent used to characterize the bandwidth object}} & -\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont angstrom}} & +\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont }} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:14 @@ -1857,7 +1851,7 @@ \section{Data Model Summary} %row no:16 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.bandwidth.\ start.value}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.min}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.*;stat.min}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Minimum value of the filter spectral coverage}} & \multicolumn{1}{p{0.74in}}{} & @@ -1866,7 +1860,7 @@ \section{Data Model Summary} %row no:17 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} \selectfont photdm:PhotometryFilter.bandwidth.\ stop.value}} & -\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.wl;stat.max}} & +\multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont em.*;stat.max}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Maximum value of the filter spectral coverage}} & \multicolumn{1}{p{0.74in}}{} & diff --git a/ivoatexmeta.tex b/ivoatexmeta.tex index ae8fefa..d8ec98b 100644 --- a/ivoatexmeta.tex +++ b/ivoatexmeta.tex @@ -1,6 +1,6 @@ % GENERATED FILE -- edit this in the Makefile \newcommand{\ivoaDocversion}{1.1} -\newcommand{\ivoaDocdate}{2022-09-05} -\newcommand{\ivoaDocdatecode}{20220905} +\newcommand{\ivoaDocdate}{2022-09-15} +\newcommand{\ivoaDocdatecode}{20220915} \newcommand{\ivoaDoctype}{PR} \newcommand{\ivoaDocname}{PhotDM} From a5a962d6a521095ba97bb3c0db33d8296efb0289 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Mon, 3 Oct 2022 11:43:55 +0100 Subject: [PATCH 28/40] Recovering review comments from Mark T. --- PhotDM.tex | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 5618a89..3f69054 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -74,7 +74,7 @@ \begin{abstract} The Photometry Data Model (\textbf{PhotDM}) standard describes photometry -filters, photometric systems, magnitude systems, zero points and its +filters, photometric systems, magnitude systems, zero points and their interrelation with the other IVOA data models through a simple data model. Particular attention is given necessarily to optical photometry where specifications of magnitude systems and photometric zero points are required @@ -1371,14 +1371,14 @@ \subsubsection{MagnitudeSystem.referenceSpectrum: URI} \label{referenceSpectrum} density per unit frequency $f_\nu $:} \end{itemize} \begin{equation} \label{eq:31} -f_0^{AB} = 3.631 \times 10^{-20} erg\, s^-1 cm^{-2} Hz^{-1} +f_0^{AB} = 3.631 \times 10^{-20} erg\, s^{-1} cm^{-2} Hz^{-1} \end{equation} \begin{itemize} \item{STmag: Introduced for the HST project, it makes use of a reference spectrum of constant flux density per unit of wavelength: \begin{equation} \label{eq:32} -f_0^{ST} = 3.631 \times 10^{-9} erg\, s^-1 cm^{-2} \angstrom ^{-1} +f_0^{ST} = 3.631 \times 10^{-9} erg\, s^{-1} cm^{-2} \angstrom ^{-1} \end{equation}} \end{itemize} @@ -1444,7 +1444,7 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser f = f_0 10^{-m/2.5} \end{equation} -Where $f_0$ is the ZeroPoint.flux.value, is the magnitude associated to the +Where $f_0$ is the ZeroPoint.flux.value, $m$ is the magnitude associated to the measurement and $f$ is the associated flux. The type of flux ($f_\lambda $ or $f_\nu $) and the associated units, although they can be indirectly deduced from the field MagnitudeSystem, will be the same as those for the ZeroPoint.flux. @@ -1461,7 +1461,7 @@ \section{Conversions} \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} In the present model and in order to provide a uniform treatment for all the different photometric systems, we have used the zero point flux as the quantity -to characterise the photometry filter. The type of flux ($f_\nu $ or $f_{lambda}$) +to characterise the photometry filter. The type of flux ($f_\nu $ or $f_{\lambda}$) and the units of any converted flux from a magnitude would coincide with the ones used to express the zero point flux. The zero point flux contains information about the type of flux that is lost in the zero point magnitude. To show this, we @@ -1490,7 +1490,7 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} \end{equation} so the magnitude of reference is: \begin{equation} \label{eq:39} -m_R = 2.5\log_{10} (f_{0}^{AB})=2.5 log_10(3.63\times 10^{-20})=-48.6 +m_R = 2.5\log_{10} (f_{0}^{AB})=2.5 log_{10}(3.63\times 10^{-20})=-48.6 \end{equation} Other systems usually define the zero point flux as a $f_\lambda $ flux, as From 6b30dde6fd01849267c94e60935507a7f25bd82e Mon Sep 17 00:00:00 2001 From: jsalgado Date: Mon, 3 Oct 2022 11:50:49 +0100 Subject: [PATCH 29/40] Recovering review comments from Mark T. --- PhotDM.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhotDM.tex b/PhotDM.tex index 3f69054..1000a2e 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -1461,7 +1461,7 @@ \section{Conversions} \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} In the present model and in order to provide a uniform treatment for all the different photometric systems, we have used the zero point flux as the quantity -to characterise the photometry filter. The type of flux ($f_\nu $ or $f_{\lambda}$) +to characterise the photometry filter. The type of flux ($f_\nu $ or $f_\lambda$) and the units of any converted flux from a magnitude would coincide with the ones used to express the zero point flux. The zero point flux contains information about the type of flux that is lost in the zero point magnitude. To show this, we From 9ed45de70b91d8cf00ec1704781bcd1484a95e1b Mon Sep 17 00:00:00 2001 From: Zarquan Date: Tue, 4 Oct 2022 12:30:19 +0100 Subject: [PATCH 30/40] Consistent use of 'Photometry Data Model' and 'PhotDM' --- PhotDM.tex | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 1000a2e..51dc022 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -83,7 +83,7 @@ \section*{Acknowledgments} We acknowledge the support of EuroVO Science Advisory Committee for the review of the -initial versions of PhotDMv1.0 , and the Spanish VO developers who have contributed +initial versions of PhotDM-1.0 , and the Spanish VO developers who have contributed to the data model reference implementations. The design changes and the modeling for the translation to VODML was supported in part by the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) @@ -93,7 +93,7 @@ \section*{Acknowledgments} \pagebreak \section*{Link to IVOA Architecture} -The figure below shows where IVOA Photometry Data Model fits within the +The figure below shows where the IVOA Photometry Data Model fits within the IVOA architecture: @@ -112,7 +112,7 @@ \section*{Link to IVOA Architecture} \caption{PhotDM can be used to enhance and abstract SSAP and TAP access, in particular to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. -PhotDMv1.1 makes use of UTypes, for backward compatibility to PhotDMv1.0 , and of UCDs as well as VOUnits. +PhotDM-1.1 makes use of UTypes, for backward compatibility to PhotDM-1.0 , and of UCDs as well as VOUnits. PhotDM can have serialisations in the VOTable format. This version relies on the VODML modeling principles and is described in a VODML xml reference document .} \label{fig:archdiag} @@ -208,7 +208,7 @@ \section{Introduction} This document outlines a photometry data model to describe photometric measurements in a standard way. -The photometry data model aims to describe the essential elements +The Photometry Data Model aims to describe the essential elements of flux density measurements made within all spectral energy domains across the electromagnetic spectrum. In some domains this is relatively straight forward, such as in radio astronomy where @@ -234,9 +234,9 @@ \section{Introduction} stellar models or science that employs photometric measurements to derive photometric redshifts requires a much greater level of accuracy. To manage the different levels of description we take the overall -approach that the photometry data model should include the most +approach that the Photometry Data Model should include the most generic elements required to describe photometric measurements, -and that the photometry data model is intended to be used in +and that the Photometry Data Model is intended to be used in coordination with the IVOA Spectrum Data model and the IVOA Characterization Data Model. @@ -281,12 +281,12 @@ \section{Introduction} how scientific tools could use this information. -PhotDM is related to other IVOA Data models (Spectrum DM, Characterization DM, +The Photometry Data Model is related to other IVOA Data models (Spectrum DM, Characterization DM, Observation and Provenance DM), and is intended to provide photometry metadata for data that would be accessed via the IVOA Data Access Protocols such as SSAP (Simple Spectra Access Protocol) or TAP (Table Access Protocol). -As with most of the VO Data Models, PhotDM makes use of STC, UTypes, Units +As with most of the VO Data Models, the Photometry Data Model makes use of STC, UTypes, Units and UCDs. PhotDM is serialisable with a VOTable. \section{Astronomical Photometry} @@ -507,7 +507,7 @@ \section{Photometry Data Model} \label{datamodel} \begin{figure}[H] \includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesdiagram.png} -\caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} +\caption{Attributes in the PhotDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} \end{figure} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 Ends here %%%%%%%%%%%%%%%%%%%% @@ -522,12 +522,12 @@ \section{Photometry Data Model} \label{datamodel} \newpage In order to fully describe values of the magnitudes inside photometry point -instances, the former PhotDM v1.0 used physical quantity classes which used to +instances, the former PhotDM-1.0 used physical quantity classes which used to aggregate all the basic fields that compose a physical measurement: value, error, units, etc. However, within the present specification, we will describe individual attributes of the different quantities separately. -This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 -did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM1.1 are also +This is due to the fact that the granularity of quantities as defined in the former PhotDM-1.0 +did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM-1.1 are also generated from these individual attributes to facilitate the use within IVOA Data Access Layer protocols. \par @@ -874,7 +874,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par -Although the PhotDM1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version +Although the PhotDM-1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version according to which spectral regime the spectral values apply. This is up to the data provider to use a consistent combination. The Unit and UCD strings follow specific constraints defined in the IVOA standards and are @@ -1546,11 +1546,11 @@ \section{Data Model VODML documentation} The VODML description of this model is available at \\ \url{http://ivoa.net/xml/}. -The documentation page generated from this reference XML document is available on the Phot DM v1.1 RFC discussion page : \\ +The documentation page generated from this reference XML document is available on the PhotDM-1.1 RFC discussion page : \\ \url{https://wiki.ivoa.net/internal/IVOA/PhotDM11RFC/Photv1_1_PR_20220520.html} \section{Data Model Summary} -Here is the table summary of the model, backward compatible to PhotDM v1.0. +Here is the table summary of the model, backward compatible to PhotDM-1.0. It shows the UTypes and UCDs used for each data model element. %%%%%%%%%%%%%%%%%%%% Table No: 20 starts here %%%%%%%%%%%%%%%%%%%% @@ -2072,7 +2072,7 @@ \subsection{Photometric Data in Cone Search and TAP services} More details on how to serialise the response are contained in the IVOA Note \citep{derriere} and used in catalog services . \subsection{Serialisation using VODML model} \label{appendixmapping} -The VODML view of the PhotDM also allows the serialisation of the PhotDM elements +The VODML view of PhotDM also allows the serialisation of PhotDM elements using mapping techniques into, e.g. VOTable formats. We show some of the possible serialisations in line with the MIVOT mapping effort of the IVOA DM working group. @@ -2081,14 +2081,14 @@ \subsubsection{Photometric calibration: example 1} \par %%%%%%%%%%%%%%%%%%%% Table No: starts here %%%%%%%%%%%%%%%%%%%% \lstinputlisting[language=XML,breaklines, caption={XML mapping block for the -2MASS Ks Filter, based on the VODML representation of PhotDM1.1 .}]{./serializations/photdm.2MASS.2MASS.Ks.xml} +2MASS Ks Filter, based on the VODML representation of PhotDM-1.1 .}]{./serializations/photdm.2MASS.2MASS.Ks.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% \subsubsection{The full 2MASS photometric system with all filters: example 2} -\lstinputlisting[language=XML,caption={Annotation of a SED data set using a PHOTDM1.1 XML mapping block for the 2MASS Photometric +\lstinputlisting[language=XML,caption={Annotation of a SED data set using a PhotDM-1.1 XML mapping block for the 2MASS Photometric system.}] {./serializations/exampleXML2MASS.xml} \end{appendices} From 7a16ec19ae25d15cac01b22f0ad232e3baa637a1 Mon Sep 17 00:00:00 2001 From: Mark Taylor Date: Tue, 4 Oct 2022 13:13:55 +0100 Subject: [PATCH 31/40] reinstate more changes made inadvertently at e52881f34904 Revert some changes made at commit e52881f34904, I am almost certain that these were not intentional. --- PhotDM.tex | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 1000a2e..f7db33d 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -347,7 +347,7 @@ \section{Astronomical Photometry} As explained above, this is equivalent to: \begin{equation} \label{eq:6} -m = m_R - 2.5 \log_{R} (f/f_0 ) +m = m_R - 2.5 \log_{10} (f/f_0 ) \end{equation} @@ -968,7 +968,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} range, the integrals will also be defined in this spectral range. \par -\paragraph{PhotometryFilter.bandwith.start: real} +\paragraph{PhotometryFilter.bandwidth.start: real} %mir suggestion from MCD review Also called $\lambda_{min}$ in the rest of the document, this is a spectral value that better describes the reasonable minimum value of the spectral range of the filter band-pass. In general, @@ -983,7 +983,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} In practice, this could be taken as the minimum spectral value of the filter transmission curve. \par -\paragraph{PhotometryFilter.bandwith.stop: real} +\paragraph{PhotometryFilter.bandwidth.stop: real} Also called $\lambda_{max}$ in the rest of the document, this is a spectral value that better describes the reasonable maximum value of the spectral range of the filter band-pass. In general, @@ -1062,7 +1062,7 @@ \subsubsection{ZeroPoint.flux.value: real} This quantity is necessary to convert to flux a certain magnitude. \par -For Pogson magnitudes (see section 3.2.5) it will be used in the following way: +For Pogson magnitudes (see section \ref{sect:Pogson}) it will be used in the following way: \par \begin{equation} \label{eq:24} f = f_0 10^{-(m-m_R )/2.5} @@ -1170,6 +1170,7 @@ \subsubsection{ZeroPoint.type: integer} \subsection{PogsonZeroPoint Class} +\label{sect:Pogson} Extension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion functions. \par From 2371d4016a88adbfac0eca3176a7e337d8f023e7 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Wed, 5 Oct 2022 17:22:54 +0100 Subject: [PATCH 32/40] Change date to Doc --- Makefile | 2 +- PhotDM.tex | 54 +++++++++++++++++++++++++++---------------------- ivoatexmeta.tex | 4 ++-- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index bc55f0b..969c925 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ DOCNAME = PhotDM DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -DOCDATE = 2022-09-15 +DOCDATE = 2022-10-05 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN DOCTYPE = PR diff --git a/PhotDM.tex b/PhotDM.tex index c2c425d..80fe285 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -83,7 +83,7 @@ \section*{Acknowledgments} We acknowledge the support of EuroVO Science Advisory Committee for the review of the -initial versions of PhotDM-1.0 , and the Spanish VO developers who have contributed +initial versions of PhotDMv1.0 , and the Spanish VO developers who have contributed to the data model reference implementations. The design changes and the modeling for the translation to VODML was supported in part by the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) @@ -93,7 +93,7 @@ \section*{Acknowledgments} \pagebreak \section*{Link to IVOA Architecture} -The figure below shows where the IVOA Photometry Data Model fits within the +The figure below shows where IVOA Photometry Data Model fits within the IVOA architecture: @@ -112,7 +112,7 @@ \section*{Link to IVOA Architecture} \caption{PhotDM can be used to enhance and abstract SSAP and TAP access, in particular to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. -PhotDM-1.1 makes use of UTypes, for backward compatibility to PhotDM-1.0 , and of UCDs as well as VOUnits. +PhotDMv1.1 makes use of UTypes, for backward compatibility to PhotDMv1.0 , and of UCDs as well as VOUnits. PhotDM can have serialisations in the VOTable format. This version relies on the VODML modeling principles and is described in a VODML xml reference document .} \label{fig:archdiag} @@ -174,13 +174,20 @@ \section*{Changes from Version 1.0} \label{changesTable} \multicolumn{1}{|p{0.72in}}{All} & \multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/03/01}} \\ +\hline %row no:8 -\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC comments} & +\multicolumn{1}{|p{3.75in}}{v1.1 PR / first round of answers to RFC comments} & \multicolumn{1}{|p{0.72in}}{All} & \multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/05/23}} \\ +\hline +%row no:8 +\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC comments from WGs} & +\multicolumn{1}{|p{0.72in}}{All} & +\multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont +2022/10/05}} \\ \hline \end{tabular} \end{table} @@ -208,7 +215,7 @@ \section{Introduction} This document outlines a photometry data model to describe photometric measurements in a standard way. -The Photometry Data Model aims to describe the essential elements +The photometry data model aims to describe the essential elements of flux density measurements made within all spectral energy domains across the electromagnetic spectrum. In some domains this is relatively straight forward, such as in radio astronomy where @@ -234,9 +241,9 @@ \section{Introduction} stellar models or science that employs photometric measurements to derive photometric redshifts requires a much greater level of accuracy. To manage the different levels of description we take the overall -approach that the Photometry Data Model should include the most +approach that the photometry data model should include the most generic elements required to describe photometric measurements, -and that the Photometry Data Model is intended to be used in +and that the photometry data model is intended to be used in coordination with the IVOA Spectrum Data model and the IVOA Characterization Data Model. @@ -281,12 +288,12 @@ \section{Introduction} how scientific tools could use this information. -The Photometry Data Model is related to other IVOA Data models (Spectrum DM, Characterization DM, +PhotDM is related to other IVOA Data models (Spectrum DM, Characterization DM, Observation and Provenance DM), and is intended to provide photometry metadata for data that would be accessed via the IVOA Data Access Protocols such as SSAP (Simple Spectra Access Protocol) or TAP (Table Access Protocol). -As with most of the VO Data Models, the Photometry Data Model makes use of STC, UTypes, Units +As with most of the VO Data Models, PhotDM makes use of STC, UTypes, Units and UCDs. PhotDM is serialisable with a VOTable. \section{Astronomical Photometry} @@ -347,7 +354,7 @@ \section{Astronomical Photometry} As explained above, this is equivalent to: \begin{equation} \label{eq:6} -m = m_R - 2.5 \log_{10} (f/f_0 ) +m = m_R - 2.5 \log_{R} (f/f_0 ) \end{equation} @@ -507,7 +514,7 @@ \section{Photometry Data Model} \label{datamodel} \begin{figure}[H] \includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesdiagram.png} -\caption{Attributes in the PhotDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} +\caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} \end{figure} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 Ends here %%%%%%%%%%%%%%%%%%%% @@ -522,12 +529,12 @@ \section{Photometry Data Model} \label{datamodel} \newpage In order to fully describe values of the magnitudes inside photometry point -instances, the former PhotDM-1.0 used physical quantity classes which used to +instances, the former PhotDM v1.0 used physical quantity classes which used to aggregate all the basic fields that compose a physical measurement: value, error, units, etc. However, within the present specification, we will describe individual attributes of the different quantities separately. -This is due to the fact that the granularity of quantities as defined in the former PhotDM-1.0 -did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM-1.1 are also +This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 +did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM1.1 are also generated from these individual attributes to facilitate the use within IVOA Data Access Layer protocols. \par @@ -874,7 +881,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par -Although the PhotDM-1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version +Although the PhotDM1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version according to which spectral regime the spectral values apply. This is up to the data provider to use a consistent combination. The Unit and UCD strings follow specific constraints defined in the IVOA standards and are @@ -968,7 +975,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} range, the integrals will also be defined in this spectral range. \par -\paragraph{PhotometryFilter.bandwidth.start: real} +\paragraph{PhotometryFilter.bandwith.start: real} %mir suggestion from MCD review Also called $\lambda_{min}$ in the rest of the document, this is a spectral value that better describes the reasonable minimum value of the spectral range of the filter band-pass. In general, @@ -983,7 +990,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} In practice, this could be taken as the minimum spectral value of the filter transmission curve. \par -\paragraph{PhotometryFilter.bandwidth.stop: real} +\paragraph{PhotometryFilter.bandwith.stop: real} Also called $\lambda_{max}$ in the rest of the document, this is a spectral value that better describes the reasonable maximum value of the spectral range of the filter band-pass. In general, @@ -1062,7 +1069,7 @@ \subsubsection{ZeroPoint.flux.value: real} This quantity is necessary to convert to flux a certain magnitude. \par -For Pogson magnitudes (see section \ref{sect:Pogson}) it will be used in the following way: +For Pogson magnitudes (see section 3.2.5) it will be used in the following way: \par \begin{equation} \label{eq:24} f = f_0 10^{-(m-m_R )/2.5} @@ -1170,7 +1177,6 @@ \subsubsection{ZeroPoint.type: integer} \subsection{PogsonZeroPoint Class} -\label{sect:Pogson} Extension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion functions. \par @@ -1547,11 +1553,11 @@ \section{Data Model VODML documentation} The VODML description of this model is available at \\ \url{http://ivoa.net/xml/}. -The documentation page generated from this reference XML document is available on the PhotDM-1.1 RFC discussion page : \\ +The documentation page generated from this reference XML document is available on the Phot DM v1.1 RFC discussion page : \\ \url{https://wiki.ivoa.net/internal/IVOA/PhotDM11RFC/Photv1_1_PR_20220520.html} \section{Data Model Summary} -Here is the table summary of the model, backward compatible to PhotDM-1.0. +Here is the table summary of the model, backward compatible to PhotDM v1.0. It shows the UTypes and UCDs used for each data model element. %%%%%%%%%%%%%%%%%%%% Table No: 20 starts here %%%%%%%%%%%%%%%%%%%% @@ -2073,7 +2079,7 @@ \subsection{Photometric Data in Cone Search and TAP services} More details on how to serialise the response are contained in the IVOA Note \citep{derriere} and used in catalog services . \subsection{Serialisation using VODML model} \label{appendixmapping} -The VODML view of PhotDM also allows the serialisation of PhotDM elements +The VODML view of the PhotDM also allows the serialisation of the PhotDM elements using mapping techniques into, e.g. VOTable formats. We show some of the possible serialisations in line with the MIVOT mapping effort of the IVOA DM working group. @@ -2082,14 +2088,14 @@ \subsubsection{Photometric calibration: example 1} \par %%%%%%%%%%%%%%%%%%%% Table No: starts here %%%%%%%%%%%%%%%%%%%% \lstinputlisting[language=XML,breaklines, caption={XML mapping block for the -2MASS Ks Filter, based on the VODML representation of PhotDM-1.1 .}]{./serializations/photdm.2MASS.2MASS.Ks.xml} +2MASS Ks Filter, based on the VODML representation of PhotDM1.1 .}]{./serializations/photdm.2MASS.2MASS.Ks.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% \subsubsection{The full 2MASS photometric system with all filters: example 2} -\lstinputlisting[language=XML,caption={Annotation of a SED data set using a PhotDM-1.1 XML mapping block for the 2MASS Photometric +\lstinputlisting[language=XML,caption={Annotation of a SED data set using a PHOTDM1.1 XML mapping block for the 2MASS Photometric system.}] {./serializations/exampleXML2MASS.xml} \end{appendices} diff --git a/ivoatexmeta.tex b/ivoatexmeta.tex index d8ec98b..3c355c0 100644 --- a/ivoatexmeta.tex +++ b/ivoatexmeta.tex @@ -1,6 +1,6 @@ % GENERATED FILE -- edit this in the Makefile \newcommand{\ivoaDocversion}{1.1} -\newcommand{\ivoaDocdate}{2022-09-15} -\newcommand{\ivoaDocdatecode}{20220915} +\newcommand{\ivoaDocdate}{2022-10-05} +\newcommand{\ivoaDocdatecode}{20221005} \newcommand{\ivoaDoctype}{PR} \newcommand{\ivoaDocname}{PhotDM} From 4ed6a5cb35259cdfe15c48af0eba424680321378 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Wed, 5 Oct 2022 17:36:38 +0100 Subject: [PATCH 33/40] Change date to Doc --- PhotDM.tex | 50 ++++++++++++++++++++++++----------------------- pdflatex70249.fls | 3 +++ 2 files changed, 29 insertions(+), 24 deletions(-) create mode 100644 pdflatex70249.fls diff --git a/PhotDM.tex b/PhotDM.tex index 80fe285..670f454 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -83,7 +83,7 @@ \section*{Acknowledgments} We acknowledge the support of EuroVO Science Advisory Committee for the review of the -initial versions of PhotDMv1.0 , and the Spanish VO developers who have contributed +initial versions of PhotDM-1.0 , and the Spanish VO developers who have contributed to the data model reference implementations. The design changes and the modeling for the translation to VODML was supported in part by the ESCAPE project (the European Science Cluster of Astronomy and Particle Physics ESFRI Research Infrastructures) @@ -93,7 +93,7 @@ \section*{Acknowledgments} \pagebreak \section*{Link to IVOA Architecture} -The figure below shows where IVOA Photometry Data Model fits within the +The figure below shows where the IVOA Photometry Data Model fits within the IVOA architecture: @@ -112,7 +112,7 @@ \section*{Link to IVOA Architecture} \caption{PhotDM can be used to enhance and abstract SSAP and TAP access, in particular to help on the automatic translation of magnitudes to fluxes and to add provenance metadata to these magnitudes. Also it can be used to generate SEDs using the SpectralDM. -PhotDMv1.1 makes use of UTypes, for backward compatibility to PhotDMv1.0 , and of UCDs as well as VOUnits. +PhotDM-1.1 makes use of UTypes, for backward compatibility to PhotDM-1.0 , and of UCDs as well as VOUnits. PhotDM can have serialisations in the VOTable format. This version relies on the VODML modeling principles and is described in a VODML xml reference document .} \label{fig:archdiag} @@ -177,17 +177,18 @@ \section*{Changes from Version 1.0} \label{changesTable} \hline %row no:8 -\multicolumn{1}{|p{3.75in}}{v1.1 PR / first round of answers to RFC comments} & +\multicolumn{1}{|p{3.75in}}{v1.1 PR / first round answer to RFC comments} & \multicolumn{1}{|p{0.72in}}{All} & \multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/05/23}} \\ \hline %row no:8 -\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC comments from WGs} & +\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC WGs comments} & \multicolumn{1}{|p{0.72in}}{All} & \multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/10/05}} \\ + \hline \end{tabular} \end{table} @@ -215,7 +216,7 @@ \section{Introduction} This document outlines a photometry data model to describe photometric measurements in a standard way. -The photometry data model aims to describe the essential elements +The Photometry Data Model aims to describe the essential elements of flux density measurements made within all spectral energy domains across the electromagnetic spectrum. In some domains this is relatively straight forward, such as in radio astronomy where @@ -241,9 +242,9 @@ \section{Introduction} stellar models or science that employs photometric measurements to derive photometric redshifts requires a much greater level of accuracy. To manage the different levels of description we take the overall -approach that the photometry data model should include the most +approach that the Photometry Data Model should include the most generic elements required to describe photometric measurements, -and that the photometry data model is intended to be used in +and that the Photometry Data Model is intended to be used in coordination with the IVOA Spectrum Data model and the IVOA Characterization Data Model. @@ -288,12 +289,12 @@ \section{Introduction} how scientific tools could use this information. -PhotDM is related to other IVOA Data models (Spectrum DM, Characterization DM, +The Photometry Data Model is related to other IVOA Data models (Spectrum DM, Characterization DM, Observation and Provenance DM), and is intended to provide photometry metadata for data that would be accessed via the IVOA Data Access Protocols such as SSAP (Simple Spectra Access Protocol) or TAP (Table Access Protocol). -As with most of the VO Data Models, PhotDM makes use of STC, UTypes, Units +As with most of the VO Data Models, the Photometry Data Model makes use of STC, UTypes, Units and UCDs. PhotDM is serialisable with a VOTable. \section{Astronomical Photometry} @@ -354,7 +355,7 @@ \section{Astronomical Photometry} As explained above, this is equivalent to: \begin{equation} \label{eq:6} -m = m_R - 2.5 \log_{R} (f/f_0 ) +m = m_R - 2.5 \log_{10} (f/f_0 ) \end{equation} @@ -514,7 +515,7 @@ \section{Photometry Data Model} \label{datamodel} \begin{figure}[H] \includegraphics[angle=0,width=5.98in ]{./schema/BaseDataTypesdiagram.png} -\caption{Attributes in the PHOTDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} +\caption{Attributes in the PhotDM classes belong to the base data types defined in the ivoa: VODML template model which is extended here by two classes : UCD for the UCD semantic tag, and ISOTime for time stamps defined and formatted following the DALI specification \citep{2017ivoa.spec.0517D} .} \end{figure} %%%%%%%%%%%%%%%%%%%% Figure/Image No: 22 Ends here %%%%%%%%%%%%%%%%%%%% @@ -529,12 +530,12 @@ \section{Photometry Data Model} \label{datamodel} \newpage In order to fully describe values of the magnitudes inside photometry point -instances, the former PhotDM v1.0 used physical quantity classes which used to +instances, the former PhotDM-1.0 used physical quantity classes which used to aggregate all the basic fields that compose a physical measurement: value, error, units, etc. However, within the present specification, we will describe individual attributes of the different quantities separately. -This is due to the fact that the granularity of quantities as defined in the former PhotDM 1.0 -did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM1.1 are also +This is due to the fact that the granularity of quantities as defined in the former PhotDM-1.0 +did not match the one proposed in the VODML ivoa template. The new UTypes for PhotDM-1.1 are also generated from these individual attributes to facilitate the use within IVOA Data Access Layer protocols. \par @@ -881,7 +882,7 @@ \subsubsection{PhotometryFilter.transmissionCurve} \par -Although the PhotDM1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version +Although the PhotDM-1.0 enforced the usage of (\texttt{angstrom}, \texttt{em.wl}), other adequate combinations of units and ucds are supported by this data model version according to which spectral regime the spectral values apply. This is up to the data provider to use a consistent combination. The Unit and UCD strings follow specific constraints defined in the IVOA standards and are @@ -975,7 +976,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} range, the integrals will also be defined in this spectral range. \par -\paragraph{PhotometryFilter.bandwith.start: real} +\paragraph{PhotometryFilter.bandwidth.start: real} %mir suggestion from MCD review Also called $\lambda_{min}$ in the rest of the document, this is a spectral value that better describes the reasonable minimum value of the spectral range of the filter band-pass. In general, @@ -990,7 +991,7 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} In practice, this could be taken as the minimum spectral value of the filter transmission curve. \par -\paragraph{PhotometryFilter.bandwith.stop: real} +\paragraph{PhotometryFilter.bandwidth.stop: real} Also called $\lambda_{max}$ in the rest of the document, this is a spectral value that better describes the reasonable maximum value of the spectral range of the filter band-pass. In general, @@ -1069,7 +1070,7 @@ \subsubsection{ZeroPoint.flux.value: real} This quantity is necessary to convert to flux a certain magnitude. \par -For Pogson magnitudes (see section 3.2.5) it will be used in the following way: +For Pogson magnitudes (see section \ref{sect:Pogson}) it will be used in the following way: \par \begin{equation} \label{eq:24} f = f_0 10^{-(m-m_R )/2.5} @@ -1177,6 +1178,7 @@ \subsubsection{ZeroPoint.type: integer} \subsection{PogsonZeroPoint Class} +\label{sect:Pogson} Extension of ZeroPoint to accommodate standard logarithm magnitudes. It has no supplementary attributes but specific conversion functions. \par @@ -1553,11 +1555,11 @@ \section{Data Model VODML documentation} The VODML description of this model is available at \\ \url{http://ivoa.net/xml/}. -The documentation page generated from this reference XML document is available on the Phot DM v1.1 RFC discussion page : \\ +The documentation page generated from this reference XML document is available on the PhotDM-1.1 RFC discussion page : \\ \url{https://wiki.ivoa.net/internal/IVOA/PhotDM11RFC/Photv1_1_PR_20220520.html} \section{Data Model Summary} -Here is the table summary of the model, backward compatible to PhotDM v1.0. +Here is the table summary of the model, backward compatible to PhotDM-1.0. It shows the UTypes and UCDs used for each data model element. %%%%%%%%%%%%%%%%%%%% Table No: 20 starts here %%%%%%%%%%%%%%%%%%%% @@ -2079,7 +2081,7 @@ \subsection{Photometric Data in Cone Search and TAP services} More details on how to serialise the response are contained in the IVOA Note \citep{derriere} and used in catalog services . \subsection{Serialisation using VODML model} \label{appendixmapping} -The VODML view of the PhotDM also allows the serialisation of the PhotDM elements +The VODML view of PhotDM also allows the serialisation of PhotDM elements using mapping techniques into, e.g. VOTable formats. We show some of the possible serialisations in line with the MIVOT mapping effort of the IVOA DM working group. @@ -2088,14 +2090,14 @@ \subsubsection{Photometric calibration: example 1} \par %%%%%%%%%%%%%%%%%%%% Table No: starts here %%%%%%%%%%%%%%%%%%%% \lstinputlisting[language=XML,breaklines, caption={XML mapping block for the -2MASS Ks Filter, based on the VODML representation of PhotDM1.1 .}]{./serializations/photdm.2MASS.2MASS.Ks.xml} +2MASS Ks Filter, based on the VODML representation of PhotDM-1.1 .}]{./serializations/photdm.2MASS.2MASS.Ks.xml} %%%%%%%%%%%%%%%%%%%% Table No: ends here %%%%%%%%%%%%%%%%%%%% \subsubsection{The full 2MASS photometric system with all filters: example 2} -\lstinputlisting[language=XML,caption={Annotation of a SED data set using a PHOTDM1.1 XML mapping block for the 2MASS Photometric +\lstinputlisting[language=XML,caption={Annotation of a SED data set using a PhotDM-1.1 XML mapping block for the 2MASS Photometric system.}] {./serializations/exampleXML2MASS.xml} \end{appendices} diff --git a/pdflatex70249.fls b/pdflatex70249.fls new file mode 100644 index 0000000..d15d4a5 --- /dev/null +++ b/pdflatex70249.fls @@ -0,0 +1,3 @@ +PWD /Users/jesus.salgado/Documents/workspace/PhotDM +INPUT /opt/local/etc/texmf/texmf.cnf +INPUT /opt/local/var/db/texmf/web2c/pdftex/pdflatex.fmt From 253159f3da940c4af568dd4e9ac885344cf84d6e Mon Sep 17 00:00:00 2001 From: jsalgado Date: Wed, 5 Oct 2022 17:45:40 +0100 Subject: [PATCH 34/40] Change date to Doc --- PhotDM.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhotDM.tex b/PhotDM.tex index 670f454..12276f6 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -184,7 +184,7 @@ \section*{Changes from Version 1.0} \label{changesTable} \hline %row no:8 -\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC WGs comments} & +\multicolumn{1}{|p{3.75in}}{v1.1 PR / answer to RFC comments from WGs} & \multicolumn{1}{|p{0.72in}}{All} & \multicolumn{1}{|p{0.9in}|}{{\fontsize{10pt}{12.0pt}\selectfont 2022/10/05}} \\ From d4f6a11d9b807d04b7e182542beee433a516485e Mon Sep 17 00:00:00 2001 From: jsalgado Date: Thu, 6 Oct 2022 13:11:54 +0100 Subject: [PATCH 35/40] Second round MT comments --- PhotDM.tex | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index 12276f6..a61afae 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -394,7 +394,7 @@ \section{Astronomical Photometry} \end{equation} \begin{equation} \label{eq:8} -f_\nu = 3.63\times 10^{-20}\,erg\,cm^{-2}\,s^{-1}\,Hz^{-1} +f_\nu = 3.631 \times 10^{-20}\,erg\,cm^{-2}\,s^{-1}\,Hz^{-1} \end{equation} \begin{equation} \label{eq:9} @@ -402,7 +402,7 @@ \section{Astronomical Photometry} \end{equation} \begin{equation} \label{eq:10} -f_\lambda = 3.63\times 10^{-9}\,erg\,cm^{-2}\,s^{-1}\,\angstrom^{-1} +f_\lambda = 3.631 \times 10^{-9}\,erg\,cm^{-2}\,s^{-1}\,\angstrom^{-1} \end{equation} @@ -1005,14 +1005,14 @@ \subsubsection{PhotometryFilter.bandwidth: Bandwidth} curve.\par \subsection{PhotCal Class} -PhotDM is a class to describe the use of a photometry filter by using a certain magnitude system +PhotCal is a class to describe the use of a photometry filter by using a certain magnitude system configuration. It has associated a certain zero point object. \par \subsubsection{PhotCal.identifier: String} This field identifies, in a unique way, within a certain Photometry Filter Profile service, a zero point assigned to a filter and a certain photometric system type. -Although the main requirement of the uniqueIdentifier is to be unique within a Filter +Although the main requirement of the identifier is to be unique within a Filter Profile Service, the suggested syntax would be: \par @@ -1191,7 +1191,7 @@ \subsubsection{PogsonZeroPoint.getFluxFromMagnitude()} f = f_0 10^{-(m-m_R)/2.5} \end{equation} -Where $f$ is the associated flux, $f_0$ is the flux of reference, $m_0$ is +Where $f$ is the associated flux, $f_0$ is the flux of reference, $m_R$ is the magnitude of reference (by default equals to zero) and $m$ is the observed magnitude. \par @@ -1427,7 +1427,7 @@ \section{Use Case: Conversion from magnitude to flux, using a Filter Profile Ser \begin{itemize} \item photdm:PhotCal.ZeroPoint.flux.value\par - \item photdm:PhotCal.ZeroPoint.flux.unit.expression\par + \item photdm:PhotCal.ZeroPoint.flux.unitexpression\par \item photdm:PhotCal.ZeroPoint.type\par @@ -1486,8 +1486,8 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} the zero point flux: \begin{equation} \label{eq:36} m_R = 2.5\log_{10} (f_0 ) -\end{equation} - +\end{equation} + For ABmag photometric systems, the magnitudes are usually defined as: \begin{equation} \label{eq:37} m_{AB,\nu } = -2.5\log_{10} (f_\nu ) - 48.6 @@ -1495,11 +1495,11 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} As per (\ref{eq:32}), the monochromatic $f_\nu $ flux for ABmag magnitudes is: \begin{equation} \label{eq:38} -f_{R}^{AB}=3.63 \times 10^{-20} erg\, s^{-1} cm^{-2} Hz^{-1} +f_{R}^{AB}=3.631 \times 10^{-20} erg\, s^{-1} cm^{-2} Hz^{-1} \end{equation} so the magnitude of reference is: \begin{equation} \label{eq:39} -m_R = 2.5\log_{10} (f_{0}^{AB})=2.5 log_{10}(3.63\times 10^{-20})=-48.6 +m_R = 2.5\log_{10} (f_{0}^{AB})=2.5 log_{10}(3.631 \times 10^{-20})=-48.6 \end{equation} Other systems usually define the zero point flux as a $f_\lambda $ flux, as @@ -1516,7 +1516,7 @@ \subsection{Zero point magnitude and zero point flux} \label{a.1conversion} what is consistent with the usual definition of magnitudes as: \begin{equation} \label{eq:42} -m_R =2.5\log_{10} (f_0 ^{ST})=2.5\log_{10} (3.63\times 10^{-9})=-21.1 +m_R =2.5\log_{10} (f_0 ^{ST})=2.5\log_{10} (3.631 \times 10^{-9})=-21.1 \end{equation} \par Both cases are physically different but the magnitude of reference does not @@ -1816,7 +1816,7 @@ \section{Data Model Summary} \hline %row no:11 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotometryFilter.spectralLocation.\ unit.expression}} & +\selectfont photdm:PhotometryFilter.spectralLocation.\ unitexpression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Unit of the spectral axis used to characterize it}} & @@ -1934,7 +1934,7 @@ \section{Data Model Summary} \hline %row no:25 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt} -\selectfont photdm:PhotCal.zeroPoint.\-flux.unit.expression}} & +\selectfont photdm:PhotCal.zeroPoint.\-flux.unitexpression}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.unit }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont unit for Zero point flux}} & \multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont Jy}} & From 0f0db33d63dec56783c9402360f7f32993e9c0b9 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Thu, 6 Oct 2022 13:29:57 +0100 Subject: [PATCH 36/40] unitexpression correction in fps serialisation --- serializations/fpsFilterExample.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serializations/fpsFilterExample.xml b/serializations/fpsFilterExample.xml index 3ba5539..78b749f 100644 --- a/serializations/fpsFilterExample.xml +++ b/serializations/fpsFilterExample.xml @@ -8,7 +8,7 @@ value="2MASS/2MASS.H" datatype="char" arraysize="*"/> - @@ -28,7 +28,7 @@ value="VEGAmag" datatype="char" arraysize="*"/> - From cdd9ca8d18749c5e7cf3a6a36d200ac469be64a3 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Fri, 7 Oct 2022 09:44:08 +0100 Subject: [PATCH 37/40] Changes proposed by DM --- PhotDM.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PhotDM.tex b/PhotDM.tex index a61afae..38410e0 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -407,7 +407,7 @@ \section{Astronomical Photometry} A convenient graphical representation of these systems is shown in -Figure 3.1 of the Synphot manual: +Figure 2.1 of the Synphot manual (publication date (December 1998)): \url{http://stsdas.stsci.edu/Files/SynphotManual.pdf}. \par @@ -604,7 +604,7 @@ \subsubsection{PhotometricSystem.detectorType: integer} % mir MCD Suggestion At present, this list is exhaustive. See the description of the photometry filter -transmission curve ( section \ref{sec:transmissioncurve} to understand how to use this field. +transmission curve section \ref{sec:transmissioncurve} to understand how to use this field. \par \subsection{PhotometryFilter Class} @@ -1583,7 +1583,7 @@ \section{Data Model Summary} \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont Datamodel.name}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont meta.id }} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont Data Model Identification }} & -\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont PhotCalDM-v1.0}} & +\multicolumn{1}{p{0.74in}}{{\fontsize{8pt}{8pt}\selectfont PhotDM-v1.0}} & \multicolumn{1}{p{0.35in}}{{\fontsize{8pt}{8pt}\selectfont string}} \\ \hline %row no:4 @@ -2057,7 +2057,7 @@ \subsection{Filter Profile Service Serialisation} \label{serialisationfilter} } The following serialisation is an example of a response of a filter profile -service making use of the Photometry Filter DM through UTypes: +service making use of the PhotDM PhotometryFilter through UTypes: \par %%%%%%%%%%%%%%%%%%%% listing phot system 2Mass : starts here %%%%%%%%%%%%%%%%%%%% \lstinputlisting[language=XML,breaklines, caption={SVO Filter Profile From 9c19f46ff5fa2cba75d36c093c369e4abe18d076 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Fri, 7 Oct 2022 09:52:46 +0100 Subject: [PATCH 38/40] Changes proposed by DM --- Makefile | 2 +- PhotDM.tex | 2 +- ivoatexmeta.tex | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 969c925..805e487 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ DOCNAME = PhotDM DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -DOCDATE = 2022-10-05 +DOCDATE = 2022-10-07 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN DOCTYPE = PR diff --git a/PhotDM.tex b/PhotDM.tex index 38410e0..0d3991d 100644 --- a/PhotDM.tex +++ b/PhotDM.tex @@ -1687,7 +1687,7 @@ \section{Data Model Summary} \multicolumn{5}{p{\dimexpr6.59in+8\tabcolsep\relax}}{\centering {\fontsize{10pt}{12.0pt}\selectfont \textbf{Transmission Curve Metadata}}} \\ \hline -%row no:2 +%row no:2 \multicolumn{1}{p{2.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UType}}} & \multicolumn{1}{p{1.5in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{UCD 1+}}} & \multicolumn{1}{p{2in}}{{\fontsize{8pt}{8pt}\selectfont \textbf{Meaning}}} & diff --git a/ivoatexmeta.tex b/ivoatexmeta.tex index 3c355c0..8fe48ca 100644 --- a/ivoatexmeta.tex +++ b/ivoatexmeta.tex @@ -1,6 +1,6 @@ % GENERATED FILE -- edit this in the Makefile \newcommand{\ivoaDocversion}{1.1} -\newcommand{\ivoaDocdate}{2022-10-05} -\newcommand{\ivoaDocdatecode}{20221005} +\newcommand{\ivoaDocdate}{2022-10-07} +\newcommand{\ivoaDocdatecode}{20221007} \newcommand{\ivoaDoctype}{PR} \newcommand{\ivoaDocname}{PhotDM} From b27ef476b12035bfabe42b293fe4b07392760149 Mon Sep 17 00:00:00 2001 From: Mireille LOUYS <33840665+loumir@users.noreply.github.com> Date: Thu, 20 Oct 2022 12:38:40 +0200 Subject: [PATCH 39/40] Update 2MASS_PhotSys.xml --- serializations/2MASS_PhotSys.xml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/serializations/2MASS_PhotSys.xml b/serializations/2MASS_PhotSys.xml index 381a3f8..1e37cc3 100644 --- a/serializations/2MASS_PhotSys.xml +++ b/serializations/2MASS_PhotSys.xml @@ -1,8 +1,5 @@ - - - + From c7a4d513f41285fbb3bde23fe67a31eae45881a8 Mon Sep 17 00:00:00 2001 From: jsalgado Date: Tue, 1 Nov 2022 12:13:25 +0000 Subject: [PATCH 40/40] Create recommendation version --- Makefile | 4 ++-- ivoatexmeta.tex | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 805e487..68c0280 100644 --- a/Makefile +++ b/Makefile @@ -7,10 +7,10 @@ DOCNAME = PhotDM DOCVERSION = 1.1 # Publication date, ISO format; update manually for "releases" -DOCDATE = 2022-10-07 +DOCDATE = 2022-11-01 # What is it you're writing: NOTE, WD, PR, REC, PEN, or EN -DOCTYPE = PR +DOCTYPE = REC # An e-mail address of the person doing the submission to the document # repository (can be empty until a make upload is being made) diff --git a/ivoatexmeta.tex b/ivoatexmeta.tex index 8fe48ca..349abf3 100644 --- a/ivoatexmeta.tex +++ b/ivoatexmeta.tex @@ -1,6 +1,6 @@ % GENERATED FILE -- edit this in the Makefile \newcommand{\ivoaDocversion}{1.1} -\newcommand{\ivoaDocdate}{2022-10-07} -\newcommand{\ivoaDocdatecode}{20221007} -\newcommand{\ivoaDoctype}{PR} +\newcommand{\ivoaDocdate}{2022-11-01} +\newcommand{\ivoaDocdatecode}{20221101} +\newcommand{\ivoaDoctype}{REC} \newcommand{\ivoaDocname}{PhotDM}