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 classAbstractStarGroupDataProvider.AdditionalColsstatic classAbstractStarGroupDataProvider.ColId
-
Field Summary
Fields Modifier and Type Field Description protected booleanadaptiveParallaxWhether to use an adaptive threshold which lets more bright stars in to avoid artifacts.protected java.util.List<AbstractStarGroupDataProvider.AdditionalCols>additionalprotected java.lang.String[]additionalFilesFiles 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[]>colorsprotected long[]countsPerMagprotected doubledistCapDistance cap in parsecsprotected java.util.Map<AbstractStarGroupDataProvider.ColId,java.lang.Integer>indexMapprotected java.util.List<ParticleGroup.ParticleBean>listprotected static Logger.Logloggerprotected booleanmagCorrectionsApply magnitude/color corrections for extinction/reddeningprotected java.util.Set<java.lang.Long>mustLoadIdsstatic doubleNEGATIVE_DISTprotected doubleparallaxErrorFactorBrightThe loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].protected doubleparallaxErrorFactorFaintThe loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].protected doubleparallaxZeroPointThe zero point for the parallaxes in mas.protected java.lang.DoubleruweRUWE 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 booleanacceptDistance(double distance)Checks whether to accept the distanceprotected booleanacceptParallax(double appmag, double pllx, double pllxerr)Checks whether the parallax is accepted or not.protected intcountLines(com.badlogic.gdx.files.FileHandle f)protected intcountLines(java.io.InputStream is)Counts the lines on this input streamprotected voiddumpToDisk(java.util.List<StarGroup.StarBean> data, java.lang.String filename, java.lang.String format)protected voiddumpToDiskBin(java.util.List<StarGroup.StarBean> data, java.lang.String filename, boolean serialized)protected voiddumpToDiskCsv(java.util.List<StarGroup.StarBean> data, java.lang.String filename)protected java.lang.DoublegetAdditionalValue(AbstractStarGroupDataProvider.ColId col, java.lang.Long sourceId)com.badlogic.gdx.utils.LongMap<float[]>getColors()long[]getCountsPerMag()Gets the star counts per magnitudeprotected doublegetGeoDistance(long sourceId)Gets the distance in parsecs to the star from the additional columns map, if it exists.protected floatgetRuweValue(long sourceId, java.lang.String[] tokens)protected booleanhasAdditional(AbstractStarGroupDataProvider.ColId col, java.lang.Long sourceId)protected booleanhasAdditionalColumn(AbstractStarGroupDataProvider.ColId col)protected booleanhasCol(AbstractStarGroupDataProvider.ColId colId)protected intidx(AbstractStarGroupDataProvider.ColId colId)protected voidinitLists()protected voidinitLists(int elems)Initialises the lists and structures given number of elementsprotected voidinitLists(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 booleanmustLoad(long id)Returns whether the star must be loaded or notvoidsetAdaptiveParallax(boolean adaptive)Whether to use an adaptive threshold, relaxing it for bright (appmag >= 13) stars to let more bright stars in.voidsetAdditionalFiles(java.lang.String additionalFiles)Set location of additional columns file or directoryvoidsetColumns(java.lang.String columns)List of column names, separated by commas, indicating the position of each field to loadvoidsetDistanceCap(double distCap)Sets a distance cap.voidsetFileNumberCap(int cap)Sets a cap on the number of files to load.voidsetMagCorrections(boolean magCorrections)Sets the flag to apply magnitude and color corrections for extinction and reddeningvoidsetMustLoadIds(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.voidsetParallaxErrorFactorBright(double parallaxErrorFactor)The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].voidsetParallaxErrorFactorFaint(double parallaxErrorFactor)The loader will only load stars for which the parallax error is at most the percentage given here, in [0..1].voidsetParallaxZeroPoint(double parallaxZeroPoint)Sets the zero point of the parallax as an addition to the parallax values, in [mas]voidsetRUWECap(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:IParticleGroupDataProviderLoads the data as it is.- Specified by:
loadDatain 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:IParticleGroupDataProviderLoads the data applying a factor.- Specified by:
loadDatain 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:IParticleGroupDataProviderLoads the data applying a factor.- Specified by:
loadDatain 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:IParticleGroupDataProviderLoads the data applying a factor using a memory mapped file for improved speed.- Specified by:
loadDataMappedin 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:IStarGroupDataProviderList of column names, separated by commas, indicating the position of each field to load- Specified by:
setColumnsin interfaceIStarGroupDataProvider- Parameters:
columns- The column name list
-
setMustLoadIds
public void setMustLoadIds(java.util.Set<java.lang.Long> ids)
Description copied from interface:IStarGroupDataProviderAdds a set with all the ids which will be loaded regardless of any other conditions (i.e. parallax error thresholds)- Specified by:
setMustLoadIdsin interfaceIStarGroupDataProvider- Parameters:
ids- The ids that must be loaded
-
countLines
protected int countLines(java.io.InputStream is) throws java.io.IOExceptionCounts 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:IParticleGroupDataProviderSets a cap on the number of files to load. Set to 0 or negative for unlimited- Specified by:
setFileNumberCapin interfaceIParticleGroupDataProvider- Parameters:
cap- The cap number
-
getColors
public com.badlogic.gdx.utils.LongMap<float[]> getColors()
- Specified by:
getColorsin interfaceIStarGroupDataProvider
-
setParallaxErrorFactorFaint
public void setParallaxErrorFactorFaint(double parallaxErrorFactor)
Description copied from interface:IStarGroupDataProviderThe 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:
setParallaxErrorFactorFaintin interfaceIStarGroupDataProvider- Parameters:
parallaxErrorFactor- The percentage value of parallax errors with respect to parallax
-
setParallaxErrorFactorBright
public void setParallaxErrorFactorBright(double parallaxErrorFactor)
Description copied from interface:IStarGroupDataProviderThe 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:
setParallaxErrorFactorBrightin interfaceIStarGroupDataProvider- Parameters:
parallaxErrorFactor- The percentage value of parallax errors with respect to parallax
-
setAdaptiveParallax
public void setAdaptiveParallax(boolean adaptive)
Description copied from interface:IStarGroupDataProviderWhether to use an adaptive threshold, relaxing it for bright (appmag >= 13) stars to let more bright stars in.- Specified by:
setAdaptiveParallaxin interfaceIStarGroupDataProvider
-
setParallaxZeroPoint
public void setParallaxZeroPoint(double parallaxZeroPoint)
Description copied from interface:IStarGroupDataProviderSets the zero point of the parallax as an addition to the parallax values, in [mas]- Specified by:
setParallaxZeroPointin interfaceIStarGroupDataProvider- Parameters:
parallaxZeroPoint- The parallax zero point
-
setMagCorrections
public void setMagCorrections(boolean magCorrections)
Description copied from interface:IStarGroupDataProviderSets the flag to apply magnitude and color corrections for extinction and reddening- Specified by:
setMagCorrectionsin interfaceIStarGroupDataProvider- Parameters:
magCorrections- Whether to apply the corrections
-
getCountsPerMag
public long[] getCountsPerMag()
Description copied from interface:IStarGroupDataProviderGets the star counts per magnitude- Specified by:
getCountsPerMagin interfaceIStarGroupDataProvider
-
setAdditionalFiles
public void setAdditionalFiles(java.lang.String additionalFiles)
Description copied from interface:IStarGroupDataProviderSet location of additional columns file or directory- Specified by:
setAdditionalFilesin interfaceIStarGroupDataProvider- Parameters:
additionalFiles- File or directory with additional columns per sourceId
-
setDistanceCap
public void setDistanceCap(double distCap)
Description copied from interface:IStarGroupDataProviderSets a distance cap. Stars beyond this distance will not be loaded- Specified by:
setDistanceCapin interfaceIStarGroupDataProvider- Parameters:
distCap- The distance cap, in parsecs
-
setRUWECap
public void setRUWECap(double RUWE)
Description copied from interface:IStarGroupDataProviderSets the RUWE criteria. RUWE file must have been set- Specified by:
setRUWECapin interfaceIStarGroupDataProvider- Parameters:
RUWE- The criteria (usually 1.4)
-
-