public StorageContextMetadataTimeVarianceExtractor(IDataStorageDefinition storageDefinition, double axisPeriod = double.NaN) { var dict = storageDefinition.VariablesMetadata; var dimDict = storageDefinition.VariablesDimensions; string timeDimName = TimeAxisAutodetection.GetTimeDimension(storageDefinition); foreach (var variable in dict.Keys) { //checking for temporal variogram. Storing it if found if (timeDimName != null) { int idx = Array.IndexOf(dimDict[variable], timeDimName); if (idx >= 0) { var temporalVariogramStorage = new StorageContextVariogramStorage.StorageContextMetadataStorage(storageDefinition, variable, idx.ToString()) as VariogramModule.IVariogramStorage; var materializationResult = temporalVariogramStorage.Materialize(); if (FSharp.Core.FSharpOption <VariogramModule.IVariogram> .get_IsSome(materializationResult)) { processes.Add(variable, new GaussianProcessDescription(materializationResult.Value, axisPeriod)); } } } } }
public StorageContextMetadataSpatialVarianceExtractor(IDataStorageDefinition storageDefinition) { var dict = storageDefinition.VariablesMetadata; var dimDict = storageDefinition.VariablesDimensions; foreach (var variable in dict.Keys) { //checking for spatial variogram. Storing it if found var spatialVariogramStorage = new StorageContextVariogramStorage.StorageContextMetadataStorage(storageDefinition, variable, spatialKey) as VariogramModule.IVariogramStorage; var materializationResult = spatialVariogramStorage.Materialize(); if (FSharp.Core.FSharpOption <VariogramModule.IVariogram> .get_IsSome(materializationResult)) { fields.Add(variable, new GaussianFieldDescrption(materializationResult.Value)); } } }