function value = datasets_config(varargin) % datasets_config Defines locations of datasets % % This m-file interacts with a persistent structure % and stores information about the structure in which the datasets are % stored on the filesystem. Inside those, one can use variable % substitution. A list of substituted variables is available in % strrep_variables. % % For each dataset, datasets_config shall initialise to nan the following % four configuration variables: % % DATASET_basedir the root directory for this dataset % DATASET_subdir directory in which files are stored % DATASET_regexp regular expression matching filename; should have some % named matches to get year, month, day, etc. % DATASET_filename if possible, set to calculate the filename directly % from year, month, day, etc. % % To set actual values, add datasets_init to your path. This is executed % when datasets_config is run for the first time. % For example settings, see site-specific/kiruna/datasets_init.m. If adding % a new dataset, it is recommended to also set defaults in the % site-specific initialisation, so that others can use it directly and that % it can serve as an example to people at other sites. % Created by Gerrit % $Id$ persistent A persistent initialised if isempty(initialised) addsite if exist('datasets_init', 'file')==2 logtext(atmlab('OUT'), 'datasets_config first run, initialising...\n'); initialised = true; datasets_init; else warning('atmlab:datasets:datasets_config', ... 'Cannot find datasets_init, not initialising'); end end try [A,value] = prstnt_struct( A, @datasets_defs, varargin ); catch ME switch (ME.identifier) % see if any aliases can be identified case 'atmlab:input:undefined' varargin{1} = replace_aliases(varargin{1}); [A,value] = prstnt_struct( A, @datasets_defs, varargin); otherwise ME.rethrow(); end end end function A = datasets_defs %% define locations of tools A.sat2netcdf = nan; %% set where to find data % % For example values and explanation, see atmlab/site-specific/kiruna/datasets_init.m A.amsua_basedir = nan; A.amsua_subdir = nan; A.amsua_regexp = nan; A.amsua_filename = nan; A.amsub_basedir = nan; A.amsub_subdir = nan; A.amsub_regexp = nan; A.amsub_filename = nan; A.avhrr_basedir = nan; A.avhrr_subdir = nan; A.avhrr_regexp = nan; A.avhrr_filename = nan; A.calipso_basedir = nan; A.calipso_subdir = nan; A.calipso_regexp = nan; A.calipso_filename = nan; %%%% CLOUDSAT % old A.cpr_basedir = nan; A.cpr_subdir = nan; A.cpr_regexp = nan; A.cpr_filename = nan; %new A.cpr = SatDataset('name', 'cpr', ... 'satname', 'cloudsat', ... 'reader', @common_read_cpr_2BCWCRO, ... 'granule_duration', 5932); % new style 2012-01-18 A.cloudsat_1B_CPR_basedir = nan; A.cloudsat_1B_CPR_subdir = nan; A.cloudsat_1B_CPR_regexp = nan; A.cloudsat_1B_CPR_filename = nan; A.cpr_1B = SatDataset('name', 'CPR_1B', ... 'satname', 'cloudsat', ... 'reader', @common_read_cpr, ... 'granule_duration', 5932); A.cloudsat_2B_GEOPROF_basedir = nan; A.cloudsat_2B_GEOPROF_subdir = nan; A.cloudsat_2B_GEOPROF_regexp = nan; A.cloudsat_2B_GEOPROF_filename = nan; A.cloudsat_2B_CWC_RO_basedir = nan; A.cloudsat_2B_CWC_RO_subdir = nan; A.cloudsat_2B_CWC_RO_regexp = nan; A.cloudsat_2B_CWC_RO_filename = nan; A.cloudsat_2B_CWC_RVOD_basedir = nan; A.cloudsat_2B_CWC_RVOD_subdir = nan; A.cloudsat_2B_CWC_RVOD_regexp = nan; A.cloudsat_2B_CWC_RVOD_filename = nan; A.cloudsat_2C_PRECIP_COLUMN_basedir = nan; A.cloudsat_2C_PRECIP_COLUMN_subdir = nan; A.cloudsat_2C_PRECIP_COLUMN_regexp = nan; A.cloudsat_2C_PRECIP_COLUMN_filename = nan; A.cloudsat_ECMWF_AUX_basedir = nan; A.cloudsat_ECMWF_AUX_subdir = nan; A.cloudsat_ECMWF_AUX_regexp = nan; A.cloudsat_ECMWF_AUX_filename = nan; %%%%%%%%%%%%%%%%% CLOUDSAT A.firstline_data = ''; A.hirs_basedir = nan; A.hirs_subdir = nan; A.hirs_regexp = nan; A.hirs_filename = nan; A.hirscs_basedir = nan; A.hirscs_subdir = nan; A.hirscs_regexp = nan; A.hirscs_filename = nan; A.mhs_basedir = nan; A.mhs_subdir = nan; A.mhs_regexp = nan; A.mhs_filename = nan; A.mhs = SatDataset('name', 'mhs', ... 'reader', @common_read_poes_radiometer, ... 'granule_duration', 6130); % new style 2012-01-18 A.modis = SatDataset('name', 'modis', ... 'reader', @common_read_modis, ... 'granule_duration', 6130, ... 'dataset','MYD06_L2'); % new style % old A.mspps_basedir = nan; A.mspps_subdir = nan; A.mspps_regexp = nan; A.mspps_filename = nan; %new A.mspps = SatDataset('name', 'mspps', ... 'reader', @common_read_mspps, ... 'granule_duration', 6130); % new style A.patmosx = SatDataset('name', 'patmosx', ... 'reader', @common_read_patmosx, ... 'granule_duration', 86400); % new style 2012-01-31 %% COLLOCATION DATASETS A.collocation_cpr_mhs_basedir = nan; A.collocation_cpr_mhs_subdir = nan; A.collocation_cpr_mhs_regexp = nan; A.collocation_cpr_mhs_filename = nan; A.collocation_cpr_mhs = CollocatedDataset(A.cpr, A.mhs); % new style 2012-01-18 % fixme: impleement those as classes %A.holl10_data = AssociatedDataset(A.collocation_cpr_mhs, 'name', 'holl10 data'); %A.holl10_meandata = AssociatedDataset(A.collocation_cpr_mhs, 'name', 'holl10 mean data'); % eliasson et. al several datasets % patmosx first since the granules are much larger than cloudsats A.collocation_cpr_patmosx = CollocatedDataset(A.patmosx,A.cpr); % new style 2012-01-31 A.collocation_cpr_modis = CollocatedDataset(A.collocation_cpr_patmosx, A.modis); % new style 2012-01-31 %A.eliasson12_data = AssociatedDataset(A.collocation_cpr_patmosx, 'name', 'eliasson12 data'); A.collocation_cpr_mhs_hdf5_basedir = nan; A.collocation_cpr_mhs_hdf5_subdir = nan; A.collocation_cpr_mhs_hdf5_regexp = nan; A.collocation_cpr_mhs_hdf5_filename = nan; A.collocation_cpr_mhs_legacy_basedir = nan; A.collocation_cpr_mhs_legacy_subdir = nan; A.collocation_cpr_mhs_legacy_regexp = nan; A.collocation_cpr_mhs_legacy_filename = nan; A.collocation_cpr_mhs_data_legacy_basedir = nan; A.collocation_cpr_mhs_data_legacy_subdir = nan; A.collocation_cpr_mhs_data_legacy_regexp = nan; A.collocation_cpr_mhs_data_legacy_filename = nan; A.collocation_cpr_mhs_meandata_legacy_basedir = nan; A.collocation_cpr_mhs_meandata_legacy_subdir = nan; A.collocation_cpr_mhs_meandata_legacy_regexp = nan; A.collocation_cpr_mhs_meandata_legacy_filename = nan; A.collocation_mhs_mhs_basedir = nan; A.collocation_mhs_mhs_subdir = nan; A.collocation_mhs_mhs_regexp = nan; A.collocation_mhs_mhs_filename = nan; A.collocation_mhs_mhs = CollocatedDataset(A.mhs, A.mhs); A.collocation_mhs_mhs_hdf5_basedir = nan; A.collocation_mhs_mhs_hdf5_subdir = nan; A.collocation_mhs_mhs_hdf5_regexp = nan; A.collocation_mhs_mhs_hdf5_filename = nan; A.collocation_mhs_mhs_legacy_basedir = nan; A.collocation_mhs_mhs_legacy_subdir = nan; A.collocation_mhs_mhs_legacy_regexp = nan; A.collocation_mhs_mhs_legacy_filename = nan; A.collocation_mhs_mhs_data_legacy_basedir = nan; A.collocation_mhs_mhs_data_legacy_subdir = nan; A.collocation_mhs_mhs_data_legacy_regexp = nan; A.collocation_mhs_mhs_data_legacy_filename = nan; A.collocation_cpr_avhrr_basedir = nan; A.collocation_cpr_avhrr_subdir = nan; A.collocation_cpr_avhrr_regexp = nan; A.collocation_cpr_avhrr_filename = nan; A.collocation_cpr_avhrr_hdf5_basedir = nan; A.collocation_cpr_avhrr_hdf5_subdir = nan; A.collocation_cpr_avhrr_hdf5_regexp = nan; A.collocation_cpr_avhrr_hdf5_filename = nan; A.collocation_cpr_avhrr_legacy_basedir = nan; A.collocation_cpr_avhrr_legacy_subdir = nan; A.collocation_cpr_avhrr_legacy_regexp = nan; A.collocation_cpr_avhrr_legacy_filename = nan; A.collocation_hirscs_mhs_basedir = nan; A.collocation_hirscs_mhs_subdir = nan; A.collocation_hirscs_mhs_regexp = nan; A.collocation_hirscs_mhs_filename = nan; A.collocation_hirscs_mhs_hdf5_basedir = nan; A.collocation_hirscs_mhs_hdf5_subdir = nan; A.collocation_hirscs_mhs_hdf5_regexp = nan; A.collocation_hirscs_mhs_hdf5_filename = nan; A.collocation_hirscs_mhs_legacy_basedir = nan; A.collocation_hirscs_mhs_legacy_subdir = nan; A.collocation_hirscs_mhs_legacy_regexp = nan; A.collocation_hirscs_mhs_legacy_filename = nan; A.collocation_hirscs_mhs_data_legacy_basedir = nan; A.collocation_hirscs_mhs_data_legacy_subdir = nan; A.collocation_hirscs_mhs_data_legacy_regexp = nan; A.collocation_hirscs_mhs_data_legacy_filename = nan; A.collocation_amsua_amsua_basedir = nan; A.collocation_amsua_amsua_subdir = nan; A.collocation_amsua_amsua_regexp = nan; A.collocation_amsua_amsua_filename = nan; A.collocation_hirs_hirs_basedir = nan; A.collocation_hirs_hirs_subdir = nan; A.collocation_hirs_hirs_regexp = nan; A.collocation_hirs_hirs_filename = nan; A.collocation_collocation_cpr_mhs_avhrr_basedir = nan; A.collocation_collocation_cpr_mhs_avhrr_subdir = nan; A.collocation_collocation_cpr_mhs_avhrr_regexp = nan; A.collocation_collocation_cpr_mhs_avhrr_filename = nan; A.collocation_collocation_cpr_mhs_avhrr_hdf5_basedir = nan; A.collocation_collocation_cpr_mhs_avhrr_hdf5_subdir = nan; A.collocation_collocation_cpr_mhs_avhrr_hdf5_regexp = nan; A.collocation_collocation_cpr_mhs_avhrr_hdf5_filename = nan; A.collocation_collocation_cpr_mhs_avhrr_legacy_basedir = nan; A.collocation_collocation_cpr_mhs_avhrr_legacy_subdir = nan; A.collocation_collocation_cpr_mhs_avhrr_legacy_regexp = nan; A.collocation_collocation_cpr_mhs_avhrr_legacy_filename = nan; A.blacklist = nan; end