Class AbstractStarGroupDataProvider
- java.lang.Object
-
- gaiasky.data.group.AbstractStarGroupDataProvider
-
- All Implemented Interfaces:
IParticleGroupDataProvider
,IStarGroupDataProvider
- Direct Known Subclasses:
BinaryDataProvider
,CsvCatalogDataProvider
,SerializedDataProvider
,STILDataProvider
public abstract class AbstractStarGroupDataProvider extends java.lang.Object implements IStarGroupDataProvider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AbstractStarGroupDataProvider.AdditionalCols
static class
AbstractStarGroupDataProvider.ColId
-
Field Summary
Fields Modifier and Type Field Description protected boolean
adaptiveParallax
Whether to use an adaptive threshold which lets more bright stars in to avoid artifacts.protected java.util.List<AbstractStarGroupDataProvider.AdditionalCols>
additional
protected java.lang.String[]
additionalFiles
Files or folders with optionally gzipped CSVs containing additional columns to be matched by sourceid with the main catalog.protected com.badlogic.gdx.utils.LongMap<float[]>
colors
protected long[]
countsPerMag
protected double
distCap
Distance cap in parsecsprotected java.util.Map<AbstractStarGroupDataProvider.ColId,java.lang.Integer>
indexMap
protected java.util.List<ParticleGroup.ParticleBean>
list
protected static Logger.Log
logger
protected boolean
magCorrections
Apply magnitude/color corrections for extinction/reddeningprotected java.util.Set<java.lang.Long>
mustLoadIds
static double
NEGATIVE_DIST
protected double
parallaxErrorFactorBright
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].protected double
parallaxErrorFactorFaint
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].protected double
parallaxZeroPoint
The zero point for the parallaxes in mas.protected java.lang.Double
ruwe
RUWE cap value.protected com.badlogic.gdx.utils.LongMap<double[]>
sphericalPositions
-
Constructor Summary
Constructors Constructor Description AbstractStarGroupDataProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
acceptDistance(double distance)
Checks whether to accept the distanceprotected boolean
acceptParallax(double appmag, double pllx, double pllxerr)
Checks whether the parallax is accepted or not.protected int
countLines(com.badlogic.gdx.files.FileHandle f)
protected int
countLines(java.io.InputStream is)
Counts the lines on this input streamprotected void
dumpToDisk(java.util.List<StarGroup.StarBean> data, java.lang.String filename, java.lang.String format)
protected void
dumpToDiskBin(java.util.List<StarGroup.StarBean> data, java.lang.String filename, boolean serialized)
protected void
dumpToDiskCsv(java.util.List<StarGroup.StarBean> data, java.lang.String filename)
protected java.lang.Double
getAdditionalValue(AbstractStarGroupDataProvider.ColId col, java.lang.Long sourceId)
com.badlogic.gdx.utils.LongMap<float[]>
getColors()
long[]
getCountsPerMag()
Gets the star counts per magnitudeprotected double
getGeoDistance(long sourceId)
Gets the distance in parsecs to the star from the additional columns map, if it exists.protected float
getRuweValue(long sourceId, java.lang.String[] tokens)
protected boolean
hasAdditional(AbstractStarGroupDataProvider.ColId col, java.lang.Long sourceId)
protected boolean
hasAdditionalColumn(AbstractStarGroupDataProvider.ColId col)
protected boolean
hasCol(AbstractStarGroupDataProvider.ColId colId)
protected int
idx(AbstractStarGroupDataProvider.ColId colId)
protected void
initLists()
protected void
initLists(int elems)
Initialises the lists and structures given number of elementsprotected void
initLists(com.badlogic.gdx.files.FileHandle f)
Initialises the lists and structures given a file by counting the number of linesjava.util.List<ParticleGroup.ParticleBean>
loadData(java.io.InputStream is, double factor)
Loads the data applying a factor.java.util.List<ParticleGroup.ParticleBean>
loadData(java.lang.String file)
Loads the data as it is.java.util.List<ParticleGroup.ParticleBean>
loadData(java.lang.String file, double factor)
Loads the data applying a factor.java.util.List<ParticleGroup.ParticleBean>
loadDataMapped(java.lang.String file, double factor)
Loads the data applying a factor using a memory mapped file for improved speed.protected boolean
mustLoad(long id)
Returns whether the star must be loaded or notvoid
setAdaptiveParallax(boolean adaptive)
Whether to use an adaptive threshold, relaxing it for bright (appmag >= 13) stars to let more bright stars in.void
setAdditionalFiles(java.lang.String additionalFiles)
Set location of additional columns file or directoryvoid
setColumns(java.lang.String columns)
List of column names, separated by commas, indicating the position of each field to loadvoid
setDistanceCap(double distCap)
Sets a distance cap.void
setFileNumberCap(int cap)
Sets a cap on the number of files to load.void
setMagCorrections(boolean magCorrections)
Sets the flag to apply magnitude and color corrections for extinction and reddeningvoid
setMustLoadIds(java.util.Set<java.lang.Long> ids)
Adds a set with all the ids which will be loaded regardless of any other conditions (i.e.void
setParallaxErrorFactorBright(double parallaxErrorFactor)
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].void
setParallaxErrorFactorFaint(double parallaxErrorFactor)
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].void
setParallaxZeroPoint(double parallaxZeroPoint)
Sets the zero point of the parallax as an addition to the parallax values, in [mas]void
setRUWECap(double RUWE)
Sets the RUWE criteria.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface gaiasky.data.group.IStarGroupDataProvider
loadData, loadData, loadDataMapped
-
-
-
-
Field Detail
-
logger
protected static Logger.Log logger
-
NEGATIVE_DIST
public static double NEGATIVE_DIST
-
indexMap
protected java.util.Map<AbstractStarGroupDataProvider.ColId,java.lang.Integer> indexMap
-
list
protected java.util.List<ParticleGroup.ParticleBean> list
-
sphericalPositions
protected com.badlogic.gdx.utils.LongMap<double[]> sphericalPositions
-
colors
protected com.badlogic.gdx.utils.LongMap<float[]> colors
-
countsPerMag
protected long[] countsPerMag
-
mustLoadIds
protected java.util.Set<java.lang.Long> mustLoadIds
-
additional
protected java.util.List<AbstractStarGroupDataProvider.AdditionalCols> additional
-
additionalFiles
protected java.lang.String[] additionalFiles
Files or folders with optionally gzipped CSVs containing additional columns to be matched by sourceid with the main catalog. Column names must comport toAbstractStarGroupDataProvider.ColId
-
ruwe
protected java.lang.Double ruwe
RUWE cap value. Will accept all stars with star_ruwe <= ruwe
-
distCap
protected double distCap
Distance cap in parsecs
-
parallaxErrorFactorFaint
protected double parallaxErrorFactorFaint
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1]. Faint stars (gmag >= 13.1) More specifically, the following must be met:
pllx_err < pllx * pllxErrFactor
-
parallaxErrorFactorBright
protected double parallaxErrorFactorBright
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1]. Bright stars (gmag < 13.1) More specifically, the following must be met:
pllx_err < pllx * pllxErrFactor
-
adaptiveParallax
protected boolean adaptiveParallax
Whether to use an adaptive threshold which lets more bright stars in to avoid artifacts.
-
parallaxZeroPoint
protected double parallaxZeroPoint
The zero point for the parallaxes in mas. Gets added to all loaded parallax values
-
magCorrections
protected boolean magCorrections
Apply magnitude/color corrections for extinction/reddening
-
-
Method Detail
-
idx
protected int idx(AbstractStarGroupDataProvider.ColId colId)
-
hasCol
protected boolean hasCol(AbstractStarGroupDataProvider.ColId colId)
-
hasAdditional
protected boolean hasAdditional(AbstractStarGroupDataProvider.ColId col, java.lang.Long sourceId)
-
hasAdditionalColumn
protected boolean hasAdditionalColumn(AbstractStarGroupDataProvider.ColId col)
-
getAdditionalValue
protected java.lang.Double getAdditionalValue(AbstractStarGroupDataProvider.ColId col, java.lang.Long sourceId)
-
initLists
protected void initLists(com.badlogic.gdx.files.FileHandle f)
Initialises the lists and structures given a file by counting the number of lines- Parameters:
f
- The file handle to count the lines
-
initLists
protected void initLists(int elems)
Initialises the lists and structures given number of elements
-
initLists
protected void initLists()
-
loadData
public java.util.List<ParticleGroup.ParticleBean> loadData(java.lang.String file)
Description copied from interface:IParticleGroupDataProvider
Loads the data as it is.- Specified by:
loadData
in interfaceIParticleGroupDataProvider
- Parameters:
file
- The file to load- Returns:
- Array of particle beans
-
loadData
public java.util.List<ParticleGroup.ParticleBean> loadData(java.lang.String file, double factor)
Description copied from interface:IParticleGroupDataProvider
Loads the data applying a factor.- Specified by:
loadData
in interfaceIParticleGroupDataProvider
- Parameters:
file
- The file to loadfactor
- Factor to apply to the positions- Returns:
- Array of particle beans
-
loadData
public java.util.List<ParticleGroup.ParticleBean> loadData(java.io.InputStream is, double factor)
Description copied from interface:IParticleGroupDataProvider
Loads the data applying a factor.- Specified by:
loadData
in interfaceIParticleGroupDataProvider
- Parameters:
is
- Input stream to load the data fromfactor
- Factor to apply to the positions- Returns:
- Array of particle beans
-
loadDataMapped
public java.util.List<ParticleGroup.ParticleBean> loadDataMapped(java.lang.String file, double factor)
Description copied from interface:IParticleGroupDataProvider
Loads the data applying a factor using a memory mapped file for improved speed.- Specified by:
loadDataMapped
in interfaceIParticleGroupDataProvider
- Parameters:
file
- The file to loadfactor
- Factor to apply to the positions- Returns:
- Array of particle beans
-
mustLoad
protected boolean mustLoad(long id)
Returns whether the star must be loaded or not- Parameters:
id
- The star ID- Returns:
- Whether the star with the given ID must be loaded
-
acceptParallax
protected boolean acceptParallax(double appmag, double pllx, double pllxerr)
Checks whether the parallax is accepted or not.If adaptive is not enabled:
accepted = pllx > 0 && pllx_err < pllx * pllx_err_factor && pllx_err <= 1
If adaptive is enabled:
accepted = pllx > 0 && pllx_err < pllx * max(0.5, pllx_err_factor) && pllx_err <= 1, if apparent_magnitude < 13.2 accepted = pllx > 0 && pllx_err < pllx * pllx_err_factor && pllx_err <= 1, otherwise
- Parameters:
appmag
- Apparent magnitude of starpllx
- Parallax of starpllxerr
- Parallax error of star- Returns:
- True if parallax is accepted, false otherwise
-
getRuweValue
protected float getRuweValue(long sourceId, java.lang.String[] tokens)
-
getGeoDistance
protected double getGeoDistance(long sourceId)
Gets the distance in parsecs to the star from the additional columns map, if it exists. Otherwise, it returns a negative value.- Parameters:
sourceId
- The source id of the source- Returns:
- The geometric distance in parsecs if it exists, -1 otherwise.
-
acceptDistance
protected boolean acceptDistance(double distance)
Checks whether to accept the distance- Parameters:
distance
- Distance in parsecs- Returns:
- Whether to accept the distance or not
-
countLines
protected int countLines(com.badlogic.gdx.files.FileHandle f) throws java.io.IOException
- Throws:
java.io.IOException
-
setColumns
public void setColumns(java.lang.String columns)
Description copied from interface:IStarGroupDataProvider
List of column names, separated by commas, indicating the position of each field to load- Specified by:
setColumns
in interfaceIStarGroupDataProvider
- Parameters:
columns
- The column name list
-
setMustLoadIds
public void setMustLoadIds(java.util.Set<java.lang.Long> ids)
Description copied from interface:IStarGroupDataProvider
Adds a set with all the ids which will be loaded regardless of any other conditions (i.e. parallax error thresholds)- Specified by:
setMustLoadIds
in interfaceIStarGroupDataProvider
- Parameters:
ids
- The ids that must be loaded
-
countLines
protected int countLines(java.io.InputStream is) throws java.io.IOException
Counts the lines on this input stream- Parameters:
is
- The input stream- Returns:
- The number of lines
- Throws:
java.io.IOException
-
dumpToDisk
protected void dumpToDisk(java.util.List<StarGroup.StarBean> data, java.lang.String filename, java.lang.String format)
-
dumpToDiskBin
protected void dumpToDiskBin(java.util.List<StarGroup.StarBean> data, java.lang.String filename, boolean serialized)
-
dumpToDiskCsv
protected void dumpToDiskCsv(java.util.List<StarGroup.StarBean> data, java.lang.String filename)
-
setFileNumberCap
public void setFileNumberCap(int cap)
Description copied from interface:IParticleGroupDataProvider
Sets a cap on the number of files to load. Set to 0 or negative for unlimited- Specified by:
setFileNumberCap
in interfaceIParticleGroupDataProvider
- Parameters:
cap
- The cap number
-
getColors
public com.badlogic.gdx.utils.LongMap<float[]> getColors()
- Specified by:
getColors
in interfaceIStarGroupDataProvider
-
setParallaxErrorFactorFaint
public void setParallaxErrorFactorFaint(double parallaxErrorFactor)
Description copied from interface:IStarGroupDataProvider
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1]. This applies to faint stars (gmag >= 13.1) More specifically, the following must be met:
pllx_err < pllx * pllxErrFactor
- Specified by:
setParallaxErrorFactorFaint
in interfaceIStarGroupDataProvider
- Parameters:
parallaxErrorFactor
- The percentage value of parallax errors with respect to parallax
-
setParallaxErrorFactorBright
public void setParallaxErrorFactorBright(double parallaxErrorFactor)
Description copied from interface:IStarGroupDataProvider
The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1]. This applies to bright stars (gmag < 13.1) More specifically, the following must be met:
pllx_err < pllx * pllxErrFactor
- Specified by:
setParallaxErrorFactorBright
in interfaceIStarGroupDataProvider
- Parameters:
parallaxErrorFactor
- The percentage value of parallax errors with respect to parallax
-
setAdaptiveParallax
public void setAdaptiveParallax(boolean adaptive)
Description copied from interface:IStarGroupDataProvider
Whether to use an adaptive threshold, relaxing it for bright (appmag >= 13) stars to let more bright stars in.- Specified by:
setAdaptiveParallax
in interfaceIStarGroupDataProvider
-
setParallaxZeroPoint
public void setParallaxZeroPoint(double parallaxZeroPoint)
Description copied from interface:IStarGroupDataProvider
Sets the zero point of the parallax as an addition to the parallax values, in [mas]- Specified by:
setParallaxZeroPoint
in interfaceIStarGroupDataProvider
- Parameters:
parallaxZeroPoint
- The parallax zero point
-
setMagCorrections
public void setMagCorrections(boolean magCorrections)
Description copied from interface:IStarGroupDataProvider
Sets the flag to apply magnitude and color corrections for extinction and reddening- Specified by:
setMagCorrections
in interfaceIStarGroupDataProvider
- Parameters:
magCorrections
- Whether to apply the corrections
-
getCountsPerMag
public long[] getCountsPerMag()
Description copied from interface:IStarGroupDataProvider
Gets the star counts per magnitude- Specified by:
getCountsPerMag
in interfaceIStarGroupDataProvider
-
setAdditionalFiles
public void setAdditionalFiles(java.lang.String additionalFiles)
Description copied from interface:IStarGroupDataProvider
Set location of additional columns file or directory- Specified by:
setAdditionalFiles
in interfaceIStarGroupDataProvider
- Parameters:
additionalFiles
- File or directory with additional columns per sourceId
-
setDistanceCap
public void setDistanceCap(double distCap)
Description copied from interface:IStarGroupDataProvider
Sets a distance cap. Stars beyond this distance will not be loaded- Specified by:
setDistanceCap
in interfaceIStarGroupDataProvider
- Parameters:
distCap
- The distance cap, in parsecs
-
setRUWECap
public void setRUWECap(double RUWE)
Description copied from interface:IStarGroupDataProvider
Sets the RUWE criteria. RUWE file must have been set- Specified by:
setRUWECap
in interfaceIStarGroupDataProvider
- Parameters:
RUWE
- The criteria (usually 1.4)
-
-