package mil.nga.giat.geowave.analytic.mapreduce.operations.options;
import com.beust.jcommander.Parameter;
import mil.nga.giat.geowave.analytic.param.ClusteringParameters;
import mil.nga.giat.geowave.analytic.param.GlobalParameters;
import mil.nga.giat.geowave.analytic.param.HullParameters;
import mil.nga.giat.geowave.analytic.param.OutputParameters;
import mil.nga.giat.geowave.analytic.param.PartitionParameters;
import mil.nga.giat.geowave.analytic.param.annotations.ClusteringParameter;
import mil.nga.giat.geowave.analytic.param.annotations.GlobalParameter;
import mil.nga.giat.geowave.analytic.param.annotations.HullParameter;
import mil.nga.giat.geowave.analytic.param.annotations.OutputParameter;
import mil.nga.giat.geowave.analytic.param.annotations.PartitionParameter;
public class DBScanOptions
{
@OutputParameter(OutputParameters.Output.HDFS_OUTPUT_PATH)
@Parameter(names = {
"-oop",
"--outputHdfsOutputPath"
}, description = "Output HDFS File Path")
private String outputHdfsOutputPath;
@PartitionParameter(PartitionParameters.Partition.DISTANCE_THRESHOLDS)
@Parameter(names = {
"-pdt",
"--partitionDistanceThresholds"
}, description = "Comma separated list of distance thresholds, per dimension")
private String partitioningDistanceThresholds;
@PartitionParameter(PartitionParameters.Partition.GEOMETRIC_DISTANCE_UNIT)
@Parameter(names = {
"-pdu",
"--partitionGeometricDistanceUnit"
}, description = "Geometric distance unit (m=meters,km=kilometers, see symbols for javax.units.BaseUnit)")
private String partitioningGeometricDistanceUnit;
@ClusteringParameter(ClusteringParameters.Clustering.MAX_ITERATIONS)
@Parameter(names = {
"-cmi",
"--clusteringMaxIterations"
}, required = true, description = "Maximum number of iterations when finding optimal clusters")
private String clusteringMaxIterations;
@ClusteringParameter(ClusteringParameters.Clustering.MINIMUM_SIZE)
@Parameter(names = {
"-cms",
"--clusteringMinimumSize"
}, required = true, description = "Minimum Cluster Size")
private String clusteringMinimumSize;
@GlobalParameter(GlobalParameters.Global.BATCH_ID)
@Parameter(names = {
"-b",
"--globalBatchId"
}, description = "Batch ID")
private String globalBatchId;
@HullParameter(HullParameters.Hull.DATA_TYPE_ID)
@Parameter(names = {
"-hdt",
"--hullDataTypeId"
}, description = "Data Type ID for a centroid item")
private String hullDataTypeId;
@HullParameter(HullParameters.Hull.PROJECTION_CLASS)
@Parameter(names = {
"-hpe",
"--hullProjectionClass"
}, description = "Class to project on to 2D space. Implements mil.nga.giat.geowave.analytics.tools.Projection")
private String hullProjectionClass;
@OutputParameter(OutputParameters.Output.DATA_NAMESPACE_URI)
@Parameter(names = {
"-ons",
"--outputDataNamespaceUri"
}, description = "Output namespace for objects that will be written to GeoWave")
private String outputDataNamespaceUri;
@OutputParameter(OutputParameters.Output.DATA_TYPE_ID)
@Parameter(names = {
"-odt",
"--outputDataTypeId"
}, description = "Output Data ID assigned to objects that will be written to GeoWave")
private String outputDataTypeId;
@OutputParameter(OutputParameters.Output.INDEX_ID)
@Parameter(names = {
"-oid",
"--outputIndexId"
}, description = "Output Index ID for objects that will be written to GeoWave")
private String outputIndexId;
@PartitionParameter(PartitionParameters.Partition.MAX_MEMBER_SELECTION)
@Parameter(names = {
"-pms",
"--partitionMaxMemberSelection"
}, description = "Maximum number of members selected from a partition")
private String partitionMaxMemberSelection;
@PartitionParameter(PartitionParameters.Partition.PARTITIONER_CLASS)
@Parameter(names = {
"-pc",
"--partitionPartitionerClass"
}, description = "Index Identifier for Centroids")
private String partitionPartitionerClass;
@PartitionParameter(PartitionParameters.Partition.PARTITION_DECREASE_RATE)
@Parameter(names = {
"-pdr",
"--partitionPartitionDecreaseRate"
}, description = "Rate of decrease for precision(within (0,1])")
private String partitionPartitionDecreaseRate;
@PartitionParameter(PartitionParameters.Partition.MAX_DISTANCE)
@Parameter(names = {
"-pmd",
"--partitionMaxDistance"
}, required = true, description = "Maximum Partition Distance")
private String partitionMaxDistance;
@PartitionParameter(PartitionParameters.Partition.PARTITION_PRECISION)
@Parameter(names = {
"-pp",
"--partitionPartitionPrecision"
}, description = "Partition Precision")
private String partitionPartitionPrecision;
@PartitionParameter(PartitionParameters.Partition.SECONDARY_PARTITIONER_CLASS)
@Parameter(names = {
"-psp",
"--partitionSecondaryPartitionerClass"
}, description = "Perform secondary partitioning with the provided class")
private String partitionSecondaryPartitionerClass;
public String getPartitioningDistanceThresholds() {
return partitioningDistanceThresholds;
}
public void setPartitioningDistanceThresholds(
String clusteringDistanceThresholds ) {
this.partitioningDistanceThresholds = clusteringDistanceThresholds;
}
public String getPartitioningGeometricDistanceUnit() {
return partitioningGeometricDistanceUnit;
}
public void setPartitioningGeometricDistanceUnit(
String clusteringGeometricDistanceUnit ) {
this.partitioningGeometricDistanceUnit = clusteringGeometricDistanceUnit;
}
public String getClusteringMaxIterations() {
return clusteringMaxIterations;
}
public void setClusteringMaxIterations(
String clusteringMaxIterations ) {
this.clusteringMaxIterations = clusteringMaxIterations;
}
public String getClusteringMinimumSize() {
return clusteringMinimumSize;
}
public void setClusteringMinimumSize(
String clusteringMinimumSize ) {
this.clusteringMinimumSize = clusteringMinimumSize;
}
public String getGlobalBatchId() {
return globalBatchId;
}
public void setGlobalBatchId(
String globalBatchId ) {
this.globalBatchId = globalBatchId;
}
public String getHullDataTypeId() {
return hullDataTypeId;
}
public void setHullDataTypeId(
String hullDataTypeId ) {
this.hullDataTypeId = hullDataTypeId;
}
public String getHullProjectionClass() {
return hullProjectionClass;
}
public void setHullProjectionClass(
String hullProjectionClass ) {
this.hullProjectionClass = hullProjectionClass;
}
public String getOutputDataNamespaceUri() {
return outputDataNamespaceUri;
}
public void setOutputDataNamespaceUri(
String outputDataNamespaceUri ) {
this.outputDataNamespaceUri = outputDataNamespaceUri;
}
public String getOutputDataTypeId() {
return outputDataTypeId;
}
public void setOutputDataTypeId(
String outputDataTypeId ) {
this.outputDataTypeId = outputDataTypeId;
}
public String getOutputIndexId() {
return outputIndexId;
}
public void setOutputIndexId(
String outputIndexId ) {
this.outputIndexId = outputIndexId;
}
public String getPartitionMaxMemberSelection() {
return partitionMaxMemberSelection;
}
public void setPartitionMaxMemberSelection(
String partitionMaxMemberSelection ) {
this.partitionMaxMemberSelection = partitionMaxMemberSelection;
}
public String getPartitionPartitionerClass() {
return partitionPartitionerClass;
}
public void setPartitionPartitionerClass(
String partitionPartitionerClass ) {
this.partitionPartitionerClass = partitionPartitionerClass;
}
public String getPartitionPartitionDecreaseRate() {
return partitionPartitionDecreaseRate;
}
public void setPartitionPartitionDecreaseRate(
String partitionPartitionDecreaseRate ) {
this.partitionPartitionDecreaseRate = partitionPartitionDecreaseRate;
}
public String getPartitionMaxDistance() {
return partitionMaxDistance;
}
public void setPartitionMaxDistance(
String partitionMaxDistance ) {
this.partitionMaxDistance = partitionMaxDistance;
}
public String getPartitionPartitionPrecision() {
return partitionPartitionPrecision;
}
public void setPartitionPartitionPrecision(
String partitionPartitionPrecision ) {
this.partitionPartitionPrecision = partitionPartitionPrecision;
}
public String getPartitionSecondaryPartitionerClass() {
return partitionSecondaryPartitionerClass;
}
public void setPartitionSecondaryPartitionerClass(
String partitionSecondaryPartitionerClass ) {
this.partitionSecondaryPartitionerClass = partitionSecondaryPartitionerClass;
}
public String getOutputHdfsOutputPath() {
return outputHdfsOutputPath;
}
public void setOutputHdfsOutputPath(
String outputHdfsOutputPath ) {
this.outputHdfsOutputPath = outputHdfsOutputPath;
}
}