Issue #1966 Initial Base configuration files for Dale Morris to test.
Change-Id: I764b440aed1568e59cada95f0d6938c90bedc2f1 Former-commit-id:1e5d68fa1b
[formerly2cfff5c563
] [formerly1e5d68fa1b
[formerly2cfff5c563
] [formerlyc10f5c8d65
[formerly 34d765f948cf8cbebb0ab9745ef6803eecb8e968]]] Former-commit-id:c10f5c8d65
Former-commit-id:318de198e5
[formerlyee52f0281c
] Former-commit-id:b681d07346
This commit is contained in:
parent
9acddf6eeb
commit
3419cbaddd
8 changed files with 268 additions and 152 deletions
|
@ -380,6 +380,7 @@ public class ArchiveTableComp extends Composite {
|
|||
}
|
||||
|
||||
updateSelectionLabels();
|
||||
setModified();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -418,7 +418,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg implements
|
|||
browseBtn.setToolTipText("Select directory to place case.");
|
||||
|
||||
Label stateLbl = new Label(fileBrowserComp, SWT.NONE);
|
||||
stateLbl.setText("Full - Avaliable:");
|
||||
stateLbl.setText("Full - Available:");
|
||||
|
||||
locationStateLbl = new Label(fileBrowserComp, SWT.BORDER);
|
||||
gd = new GridData(200, SWT.DEFAULT);
|
||||
|
@ -612,6 +612,7 @@ public class CaseCreationDlg extends AbstractArchiveDlg implements
|
|||
*/
|
||||
private void handleBrowserSelection() {
|
||||
DirectoryDialog dlg = new DirectoryDialog(shell, SWT.OPEN);
|
||||
dlg.setText("Case Location");
|
||||
String dirName = dlg.open();
|
||||
if (dirName != null) {
|
||||
locationLbl.setText(trimDirectoryName(dirName));
|
||||
|
|
|
@ -462,40 +462,11 @@ public class ArchiveConfigManager {
|
|||
List<File> fileList = new ArrayList<File>();
|
||||
|
||||
if (dirOnly) {
|
||||
Pattern pattern = Pattern.compile(categoryConfig.getDirPattern());
|
||||
for (String dirPattern : categoryConfig.getDirPatternList()) {
|
||||
Pattern pattern = Pattern.compile(dirPattern);
|
||||
|
||||
for (File dir : dirs) {
|
||||
String path = dir.getAbsolutePath().substring(beginIndex);
|
||||
Matcher matcher = pattern.matcher(path);
|
||||
if (matcher.matches()) {
|
||||
int year = Integer.parseInt(matcher.group(yearIndex));
|
||||
// Adjust month value to Calendar's 0 - 11
|
||||
int month = Integer.parseInt(matcher.group(monthIndex)) - 1;
|
||||
int day = Integer.parseInt(matcher.group(dayIndex));
|
||||
int hour = Integer.parseInt(matcher.group(hourIndex));
|
||||
fileCal.set(year, month, day, hour, 0, 0);
|
||||
long fileTime = fileCal.getTimeInMillis();
|
||||
if ((startTime <= fileTime) && (fileTime < endTime)) {
|
||||
fileList.add(dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Pattern pattern = Pattern.compile(categoryConfig.getDirPattern()
|
||||
+ File.separator + categoryConfig.getFilePattern());
|
||||
final Pattern filePattern = Pattern.compile("^" + filePatternStr
|
||||
+ "$");
|
||||
for (File dir : dirs) {
|
||||
List<File> fList = FileUtil.listDirFiles(dir, new FileFilter() {
|
||||
|
||||
@Override
|
||||
public boolean accept(File pathname) {
|
||||
return filePattern.matcher(pathname.getName())
|
||||
.matches();
|
||||
}
|
||||
}, false);
|
||||
for (File file : fList) {
|
||||
String path = file.getAbsolutePath().substring(beginIndex);
|
||||
for (File dir : dirs) {
|
||||
String path = dir.getAbsolutePath().substring(beginIndex);
|
||||
Matcher matcher = pattern.matcher(path);
|
||||
if (matcher.matches()) {
|
||||
int year = Integer.parseInt(matcher.group(yearIndex));
|
||||
|
@ -506,7 +477,45 @@ public class ArchiveConfigManager {
|
|||
fileCal.set(year, month, day, hour, 0, 0);
|
||||
long fileTime = fileCal.getTimeInMillis();
|
||||
if ((startTime <= fileTime) && (fileTime < endTime)) {
|
||||
fileList.add(file);
|
||||
fileList.add(dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (String dirPattern : categoryConfig.getDirPatternList()) {
|
||||
Pattern pattern = Pattern.compile(dirPattern + File.separator
|
||||
+ categoryConfig.getFilePattern());
|
||||
final Pattern filePattern = Pattern.compile("^"
|
||||
+ filePatternStr + "$");
|
||||
for (File dir : dirs) {
|
||||
List<File> fList = FileUtil.listDirFiles(dir,
|
||||
new FileFilter() {
|
||||
|
||||
@Override
|
||||
public boolean accept(File pathname) {
|
||||
return filePattern.matcher(
|
||||
pathname.getName()).matches();
|
||||
}
|
||||
}, false);
|
||||
for (File file : fList) {
|
||||
String path = file.getAbsolutePath().substring(
|
||||
beginIndex);
|
||||
Matcher matcher = pattern.matcher(path);
|
||||
if (matcher.matches()) {
|
||||
int year = Integer.parseInt(matcher
|
||||
.group(yearIndex));
|
||||
// Adjust month value to Calendar's 0 - 11
|
||||
int month = Integer.parseInt(matcher
|
||||
.group(monthIndex)) - 1;
|
||||
int day = Integer.parseInt(matcher.group(dayIndex));
|
||||
int hour = Integer.parseInt(matcher
|
||||
.group(hourIndex));
|
||||
fileCal.set(year, month, day, hour, 0, 0);
|
||||
long fileTime = fileCal.getTimeInMillis();
|
||||
if ((startTime <= fileTime) && (fileTime < endTime)) {
|
||||
fileList.add(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -526,35 +535,37 @@ public class ArchiveConfigManager {
|
|||
*/
|
||||
private List<File> getDirs(ArchiveConfig archiveConfig,
|
||||
CategoryConfig categoryConfig) {
|
||||
String dirPattern = categoryConfig.getDirPattern();
|
||||
|
||||
List<File> resultDirs = new ArrayList<File>();
|
||||
File rootFile = new File(archiveConfig.getRootDir());
|
||||
|
||||
String[] subExpr = dirPattern.split(File.separator);
|
||||
List<File> dirs = new ArrayList<File>();
|
||||
dirs.add(rootFile);
|
||||
List<File> tmpDirs = new ArrayList<File>();
|
||||
List<File> swpDirs = null;
|
||||
for (String dirPattern : categoryConfig.getDirPatternList()) {
|
||||
String[] subExpr = dirPattern.split(File.separator);
|
||||
List<File> dirs = new ArrayList<File>();
|
||||
dirs.add(rootFile);
|
||||
List<File> tmpDirs = new ArrayList<File>();
|
||||
List<File> swpDirs = null;
|
||||
|
||||
for (String regex : subExpr) {
|
||||
Pattern subPattern = Pattern.compile("^" + regex + "$");
|
||||
IOFileFilter filter = FileFilterUtils
|
||||
.makeDirectoryOnly(new RegexFileFilter(subPattern));
|
||||
for (String regex : subExpr) {
|
||||
Pattern subPattern = Pattern.compile("^" + regex + "$");
|
||||
IOFileFilter filter = FileFilterUtils
|
||||
.makeDirectoryOnly(new RegexFileFilter(subPattern));
|
||||
|
||||
for (File dir : dirs) {
|
||||
File[] list = dir.listFiles();
|
||||
if (list != null) {
|
||||
List<File> dirList = Arrays.asList(list);
|
||||
tmpDirs.addAll(Arrays.asList(FileFilterUtils.filter(filter,
|
||||
dirList)));
|
||||
for (File dir : dirs) {
|
||||
File[] list = dir.listFiles();
|
||||
if (list != null) {
|
||||
List<File> dirList = Arrays.asList(list);
|
||||
tmpDirs.addAll(Arrays.asList(FileFilterUtils.filter(
|
||||
filter, dirList)));
|
||||
}
|
||||
}
|
||||
swpDirs = dirs;
|
||||
dirs = tmpDirs;
|
||||
tmpDirs = swpDirs;
|
||||
tmpDirs.clear();
|
||||
}
|
||||
swpDirs = dirs;
|
||||
dirs = tmpDirs;
|
||||
tmpDirs = swpDirs;
|
||||
tmpDirs.clear();
|
||||
resultDirs.addAll(dirs);
|
||||
}
|
||||
return dirs;
|
||||
return resultDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -578,14 +589,20 @@ public class ArchiveConfigManager {
|
|||
ArchiveConfig archiveConfig = archiveMap.get(archiveName);
|
||||
CategoryConfig categoryConfig = findCategory(archiveConfig,
|
||||
categoryName);
|
||||
String dirPattern = categoryConfig.getDirPattern();
|
||||
List<String> dirPatternList = categoryConfig.getDirPatternList();
|
||||
|
||||
// index for making directory paths' relative to the root path.
|
||||
List<File> dirs = getDirs(archiveConfig, categoryConfig);
|
||||
|
||||
File rootFile = new File(archiveMap.get(archiveName).getRootDir());
|
||||
int beginIndex = rootFile.getAbsolutePath().length() + 1;
|
||||
Pattern pattern = Pattern.compile("^" + dirPattern + "$");
|
||||
List<Pattern> patterns = new ArrayList<Pattern>(dirPatternList.size());
|
||||
|
||||
for (String dirPattern : dirPatternList) {
|
||||
Pattern pattern = Pattern.compile("^" + dirPattern + "$");
|
||||
patterns.add(pattern);
|
||||
}
|
||||
|
||||
TreeSet<String> displays = new TreeSet<String>(
|
||||
String.CASE_INSENSITIVE_ORDER);
|
||||
|
||||
|
@ -595,22 +612,26 @@ public class ArchiveConfigManager {
|
|||
|
||||
for (File dir : dirs) {
|
||||
String path = dir.getAbsolutePath().substring(beginIndex);
|
||||
Matcher matcher = pattern.matcher(path);
|
||||
if (matcher.matches()) {
|
||||
sb.setLength(0);
|
||||
String[] args = new String[matcher.groupCount() + 1];
|
||||
args[0] = matcher.group();
|
||||
for (int i = 1; i < args.length; ++i) {
|
||||
args[i] = matcher.group(i);
|
||||
for (Pattern pattern : patterns) {
|
||||
Matcher matcher = pattern.matcher(path);
|
||||
if (matcher.matches()) {
|
||||
sb.setLength(0);
|
||||
String[] args = new String[matcher.groupCount() + 1];
|
||||
args[0] = matcher.group();
|
||||
for (int i = 1; i < args.length; ++i) {
|
||||
args[i] = matcher.group(i);
|
||||
}
|
||||
String displayLabel = msgfmt.format(args, sb, pos0)
|
||||
.toString();
|
||||
List<File> displayDirs = displayMap.get(displayLabel);
|
||||
if (displayDirs == null) {
|
||||
displayDirs = new ArrayList<File>();
|
||||
displayMap.put(displayLabel, displayDirs);
|
||||
}
|
||||
displayDirs.add(dir);
|
||||
displays.add(displayLabel);
|
||||
break;
|
||||
}
|
||||
String displayLabel = msgfmt.format(args, sb, pos0).toString();
|
||||
List<File> displayDirs = displayMap.get(displayLabel);
|
||||
if (displayDirs == null) {
|
||||
displayDirs = new ArrayList<File>();
|
||||
displayMap.put(displayLabel, displayDirs);
|
||||
}
|
||||
displayDirs.add(dir);
|
||||
displays.add(displayLabel);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,9 @@
|
|||
**/
|
||||
package com.raytheon.uf.common.archive.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
|
@ -96,7 +98,7 @@ public class CategoryConfig implements Comparable<CategoryConfig> {
|
|||
* </pre>
|
||||
*/
|
||||
@XmlElement(name = "dirPattern")
|
||||
private String dirPattern;
|
||||
private List<String> dirPatternList;
|
||||
|
||||
/**
|
||||
* Use to display the information found by the dirPattern. Any groups in the
|
||||
|
@ -187,21 +189,21 @@ public class CategoryConfig implements Comparable<CategoryConfig> {
|
|||
}
|
||||
|
||||
/**
|
||||
* Obtain the directory pattern.
|
||||
* Obtain the list of directory patterns.
|
||||
*
|
||||
* @return dirPattern
|
||||
* @return dirPatternList
|
||||
*/
|
||||
public String getDirPattern() {
|
||||
return dirPattern;
|
||||
public List<String> getDirPatternList() {
|
||||
return new ArrayList<String>(dirPatternList);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the directory pattern; must not be null.
|
||||
* Set the directory pattern list; must not be null.
|
||||
*
|
||||
* @param dirPattern
|
||||
* @param dirPatternList
|
||||
*/
|
||||
public void setDirPattern(String dirPattern) {
|
||||
this.dirPattern = dirPattern;
|
||||
public void setDirPatternList(List<String> dirPatternList) {
|
||||
this.dirPatternList = dirPatternList;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -296,8 +298,11 @@ public class CategoryConfig implements Comparable<CategoryConfig> {
|
|||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Category [ name: ").append(getName());
|
||||
sb.append(", retentionHours: ").append(getRetentionHours());
|
||||
sb.append(", dirPattern: ").append(getDirPattern());
|
||||
sb.append(", filePattern: ").append(getFilePattern());
|
||||
sb.append(", dirPatternList[ ");
|
||||
for (String dirPattern : getDirPatternList()) {
|
||||
sb.append(" \"").append(dirPattern).append("\",");
|
||||
}
|
||||
sb.append("], filePattern: ").append(getFilePattern());
|
||||
sb.append(", displayLabel: ").append(getDisplay());
|
||||
sb.append(", dateGroupIndices: ").append(getDateGroupIndices());
|
||||
sb.append(", selectedDisplayNames: ");
|
||||
|
|
|
@ -18,6 +18,16 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ============ ========== =========== ==========================
|
||||
* Jun 20, 2013 1966 rferrel Initial creation
|
||||
*
|
||||
* @author rferrel
|
||||
* @version 1.0
|
||||
-->
|
||||
<!--
|
||||
The <archive> contains five types of tags:
|
||||
<name> - Required tag. The id for the archive such as Raw or Processed.
|
||||
|
@ -34,7 +44,8 @@
|
|||
<dirPattern> - Required tag. A regex pattern for finding directories for this category.
|
||||
The pattern is relative to the archive's <rootDir>. Wildcard patterns do not cross directory
|
||||
delimiter /. Thus to match 3 levels of directories you would need .*/.*/.* .
|
||||
See patterns and groups section.
|
||||
See patterns and groups section. There may be more then one of these tags. The restriction is they
|
||||
must all have the same number of groupings and be in the same order.
|
||||
<filePattern> - Optional tag. A pattern to find files in the directories that match the <dirPattern>.
|
||||
Default is everything in the directories that match <dirPattern>.
|
||||
See patterns and groups section.
|
||||
|
@ -73,6 +84,19 @@
|
|||
<displayLabel>{1}</displayLabel>
|
||||
<filePattern>redbook-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
|
||||
Example with multiple <dirPattern>s
|
||||
<category>
|
||||
<name>Observation</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(acars|airep|airmet|taf)</dirPattern>
|
||||
<dirPattern>(bufrsigwx|sfcobs)/.*</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
The first <dirPattern> looks for files matching the <filePattern> in the directories acars, airep, airmet or taf.
|
||||
The second <dirPattern> expects to find the files in subdirectories of bufrsigwx or sfcobs such as bufrsigwx/SWH.
|
||||
|
||||
Here the display will only show, redbook. The directory looked at will be <rootPath>/redbook/. The <dateGroupIndices> all
|
||||
come from the <filePattern> since there is one group in the <dirPattern> the groups in the <filePattern> start at two. This
|
||||
|
@ -85,68 +109,80 @@
|
|||
<name>Processed</name>
|
||||
<rootDir>/awips2/edex/data/archive/</rootDir>
|
||||
<minRetentionHours>24</minRetentionHours>
|
||||
<category>
|
||||
<name>binlightning</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(binlightning)</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>.*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
<category>
|
||||
<name>DAT</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(cwat|fog|ffmp|preciprate|qpf|scan|vil)</dirPattern>
|
||||
<filePattern>.*(\d{4})-(\d{2})-(\d{2})-(\d{2}).*</filePattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>bufr</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(bufrascat|bufrhdw|bufrmosLAMP|bufrncwf|bufrsigwx|bufrssmi|bufrua)</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>.*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
<name>gfe</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(gfe)/(.*)/.*</dirPattern>
|
||||
<dirPattern>(gfe)/(.*)</dirPattern>
|
||||
<filePattern>.*_(\d{4})(\d{2})(\d{2})_(\d{2}).*</filePattern>
|
||||
<displayLabel>{2}</displayLabel>
|
||||
<dateGroupIndices>3,4,5,6</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>bufrsigwx</name>
|
||||
<name>Model</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(bufrsigwx)/(.*)</dirPattern>
|
||||
<displayLabel>{1} : {2}</displayLabel>
|
||||
<dateGroupIndices>3,4,5,6</dateGroupIndices>
|
||||
<filePattern>.*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>group</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(acars|airmet|airep|cwa|cwat)</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>grib</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>grib/(.*)/(.*)</dirPattern>
|
||||
<displayLabel>{1} : {2}</displayLabel>
|
||||
<dateGroupIndices>3,4,5,6</dateGroupIndices>
|
||||
<dirPattern>(grid)/(.*)/(.*)</dirPattern>
|
||||
<displayLabel>{2}</displayLabel>
|
||||
<dateGroupIndices>4,5,6,7</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})-.*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>grid</name>
|
||||
<name>Misc</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>grid/(.*)/(.*)</dirPattern>
|
||||
<displayLabel>{1} : {2}</displayLabel>
|
||||
<dirPattern>(binlightning|ccfp|cwa|idft|lsr|manual|svrwx|tcg|tcm|tcs|text|warning|wcp)</dirPattern>
|
||||
<dirPattern>(redbook)/.*</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>Observation</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(acars|airep|airmet|bufrascat|bufrhdw|bufrmthdw|bufrncwf|bufrssmi|convsigmet|fssobs|intlsigmet|nonconvsigmet|obs|pirep|taf)</dirPattern>
|
||||
<dirPattern>(bufrsigwx|sfcobs)/.*</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>Satellite</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>satellite/(.*)/(.*)</dirPattern>
|
||||
<filePattern>.*-(\d{4})-(\d{2})-(\d{2})-(\d{2}).*</filePattern>
|
||||
<dateGroupIndices>3,4,5,6</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})-.*</filePattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
</category>
|
||||
<category>
|
||||
<name>redbook</name>
|
||||
<name>Sounding</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>redbook/(.*)</dirPattern>
|
||||
<dirPattern>(acarssounding|bufrua|goessounding|poessounding|profiler|raobs)</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>obs</name>
|
||||
<category>
|
||||
<name>ModelSounding</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(fssobs|obs)</dirPattern>
|
||||
<dirPattern>(modelsounding)/(.*)</dirPattern>
|
||||
<dirPattern>(bufrmos)(.*)</dirPattern>
|
||||
<displayLabel>{1} - {2}</displayLabel>
|
||||
<dateGroupIndices>3,4,5,6</dateGroupIndices>
|
||||
<filePattern>.*(\d{4})-(\d{2})-(\d{2})[-_](\d{2}).*</filePattern>
|
||||
</category>
|
||||
<category>
|
||||
<name>radar</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>radar/(.*)/(.*)</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
<dateGroupIndices>3,4,5,6</dateGroupIndices>
|
||||
<filePattern>.*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
</archive>
|
||||
|
|
|
@ -18,6 +18,16 @@
|
|||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ============ ========== =========== ==========================
|
||||
* Jun 20, 2013 1966 rferrel Initial creation
|
||||
*
|
||||
* @author rferrel
|
||||
* @version 1.0
|
||||
-->
|
||||
<!--
|
||||
The <archive> contains five types of tags:
|
||||
<name> - Required tag. The id for the archive such as Raw or Processed.
|
||||
|
@ -34,7 +44,8 @@
|
|||
<dirPattern> - Required tag. A regex pattern for finding directories for this category.
|
||||
The pattern is relative to the archive's <rootDir>. Wildcard patterns do not cross directory
|
||||
delimiter /. Thus to match 3 levels of directories you would need .*/.*/.* .
|
||||
See patterns and groups section.
|
||||
See patterns and groups section. There may be more then one of these tags. The restriction is they
|
||||
must all have the same number of groupings and be in the same order.
|
||||
<filePattern> - Optional tag. A pattern to find files in the directories that match the <dirPattern>.
|
||||
Default is everything in the directories that match <dirPattern>.
|
||||
See patterns and groups section.
|
||||
|
@ -73,6 +84,19 @@
|
|||
<displayLabel>{1}</displayLabel>
|
||||
<filePattern>redbook-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
|
||||
Example with multiple <dirPattern>s
|
||||
<category>
|
||||
<name>Observation</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(acars|airep|airmet|taf)</dirPattern>
|
||||
<dirPattern>(bufrsigwx|sfcobs)/.*</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
<filePattern>[^/]*-(\d{4})-(\d{2})-(\d{2})-(\d{2})\..*</filePattern>
|
||||
</category>
|
||||
The first <dirPattern> looks for files matching the <filePattern> in the directories acars, airep, airmet or taf.
|
||||
The second <dirPattern> expects to find the files in subdirectories of bufrsigwx or sfcobs such as bufrsigwx/SWH.
|
||||
|
||||
Here the display will only show, redbook. The directory looked at will be <rootPath>/redbook/. The <dateGroupIndices> all
|
||||
come from the <filePattern> since there is one group in the <dirPattern> the groups in the <filePattern> start at two. This
|
||||
|
@ -86,26 +110,41 @@
|
|||
<rootDir>/data_store/</rootDir>
|
||||
<minRetentionHours>24</minRetentionHours>
|
||||
<category>
|
||||
<name>Model grib</name>
|
||||
<name>Model</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>grib/(\d{4})(\d{2})(\d{2})/(\d{2})/(.*)</dirPattern>
|
||||
<displayLabel>{5}</displayLabel>
|
||||
<dateGroupIndices>1,2,3,4</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>Model grib2</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(grib2)/(\d{4})(\d{2})(\d{2})/(\d{2})/(.*)</dirPattern>
|
||||
<dirPattern>(grib|grib2)/(\d{4})(\d{2})(\d{2})/(\d{2})/(.*)</dirPattern>
|
||||
<displayLabel>{1} - {6}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>Model other</name>
|
||||
<name>ModelSounding</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(acars|airmet|binlightning|bufrmos|bufrua|bufrsigwx|convsigmet|goessndg|manual|mdlsndg|poessndg|profiler|shef|text)/(\d{4})(\d{2})(\d{2})/(\d{2})</dirPattern>
|
||||
<dirPattern>(bufrmos|modelsounding)/(\d{4})(\d{2})(\d{2})/(\d{2})</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>Misc</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(binlightning|climate|cwa|lsr|manual|misc_adm_messages|redbook|shef|summaries|svrwx|tcg|tcs|text|wwa|xml)/(\d{4})(\d{2})(\d{2})/(\d{2})</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>Observation</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(airep|airmet|bufrascat|bufrhdw|bufrmthdw|bufrncwf|bufrsigwx|bufrssmi|convsigmet|fire_wx_spot_fcst_reports|forecast|fssobs|intlsigmet|MAROB|maritime|metar|misc_sfc_obs|nonconvsigmet|pirep|sfcobs|synoptic)/(\d{4})(\d{2})(\d{2})/(\d{2})</dirPattern>
|
||||
<dirPattern>acars/(.*)/(\d{4})(\d{2})(\d{2})/(\d{2})</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>radar</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>radar/(\d{4})(\d{2})(\d{2})/(\d{2})/(.*)</dirPattern>
|
||||
<displayLabel>{5}</displayLabel>
|
||||
<dateGroupIndices>1,2,3,4</dateGroupIndices>
|
||||
</category>
|
||||
<category>
|
||||
<name>Satellite</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
|
@ -113,4 +152,11 @@
|
|||
<displayLabel>{5}</displayLabel>
|
||||
<dateGroupIndices>1,2,3,4</dateGroupIndices>
|
||||
</category>
|
||||
</archive>
|
||||
<category>
|
||||
<name>Sounding</name>
|
||||
<extRetentionHours>168</extRetentionHours>
|
||||
<dirPattern>(acarssounding|bufrua|goessounding|poessounding|profiler|raobs|upperair)/(\d{4})(\d{2})(\d{2})/(\d{2})</dirPattern>
|
||||
<displayLabel>{1}</displayLabel>
|
||||
<dateGroupIndices>2,3,4,5</dateGroupIndices>
|
||||
</category>
|
||||
</archive>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
Name: awips2-ldm
|
||||
Summary: AWIPS II LDM Distribution
|
||||
Version: %{_ldm_version}
|
||||
Release: 1
|
||||
Release: 2
|
||||
Group: AWIPSII
|
||||
BuildRoot: /tmp
|
||||
BuildArch: noarch
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
#20121211 1411 rferrel More corrections and additions from Dale Morris.
|
||||
#20130326 1828 rferrel Fix patterns for intlsigmets and text pattern not placing files in proper directory.
|
||||
#20130530 2054 rferrel Minor fix to two grib patterns.
|
||||
#20130624 1966 rferrel The acars pattern changed to place files in the proper subdirectories.
|
||||
Name changes to reflect plugin names for modelsounding, goessounding, poessounding.
|
||||
#***************************************************************
|
||||
# AWIPS 1 PATTERN GRAPHIC ^[PQ].* /redbook/Raw
|
||||
# PGNA00 KWNS 010001 !redbook 1_1/NMCGPHMCD/MCDSUM/PXSF001CN/20110201 0001
|
||||
|
@ -609,15 +611,19 @@ HDS ^(JSM([TL]..|F1[0-7])) (....) (..)(..)(..)
|
|||
# IUAX02 KARP 022359
|
||||
|
||||
ANY ^(IUAX0[12]) (....) (..)(..)(..)
|
||||
PIPE -close /usr/local/ldm/decoders/decrypt_file
|
||||
/data_store/acars/acars_raw/acars_decrypted_\1_\2_\3\4\5_(seq).%Y%m%d%H
|
||||
FILE -overwrite -log -close /data_store/acars/acars_encrypted/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).acars.%Y%m%d%H
|
||||
|
||||
ANY ^(IUAX0[12]) (....) (..)(..)(..)
|
||||
PIPE -close /usr/local/ldm/decoders/decrypt_file
|
||||
/data_store/acars/acars_decrypted/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).acars.%Y%m%d%H
|
||||
|
||||
EXP ^/data_store/acars/acars_decrypted/(.*)
|
||||
FILE -overwrite -log -close -edex /data_store/acars/acars_decrypted/\1
|
||||
|
||||
EXP ^/data_store/acars/acars_raw/(acars_decrypted.*)
|
||||
FILE -overwrite -log -close -edex /data_store/acars/acars_decrypted/\1.acars.%Y%m%d%H
|
||||
# Need to make sure that IUAK and IUAX are disallowed.
|
||||
# IUAK are Alaskan profilers and IUAX has encrypted ACARS handled above!
|
||||
ANY ^(IUA[^XK]0[12]) (....) (..)(..)(..)
|
||||
FILE -overwrite -close -edex /data_store/acars/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
|
||||
FILE -overwrite -close -edex /data_store/acars/acars_raw_decrypted/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
|
||||
|
||||
# AWIPS1: POINT ^JSAT98.*KKCI.* /aiv/ncwf/Raw
|
||||
# JSAT98 KKCI 022210
|
||||
|
@ -640,7 +646,7 @@ HDS ^(JU[BCFJMNOTVW]E(00|9[679])) KKCI (..)(..)(..)
|
|||
# POINT ^JUSA41.KWBC* /ispan/bufr/modelSoundings/GFS
|
||||
# JUSA42 KWNO 070200
|
||||
HDS ^(JUS[ABX]4[1-9]) (KW(NO|BC)) (..)(..)(..)
|
||||
FILE -overwrite -log -close -edex /data_store/mdlsndg/(\4:yyyy)(\4:mm)\4/\5/\1_\2_\4\5\6_(seq).bufr.%Y%m%d%H
|
||||
FILE -overwrite -log -close -edex /data_store/modelsounding/(\4:yyyy)(\4:mm)\4/\5/\1_\2_\4\5\6_(seq).bufr.%Y%m%d%H
|
||||
|
||||
## GOES Bufr Patterns ##
|
||||
# From goesBufrAcq_patterns.template
|
||||
|
@ -650,7 +656,7 @@ HDS ^(JUS[ABX]4[1-9]) (KW(NO|BC)) (..)(..)(..)
|
|||
#
|
||||
# JUTX05 KNES 070326 RRN
|
||||
HDS ^(JUTX0[1-9]) (....) (..)(..)(..)
|
||||
FILE -overwrite -log -close -edex /data_store/goessndg/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
|
||||
FILE -overwrite -log -close -edex /data_store/goessounding/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
|
||||
|
||||
## POES Bufr Patterns ##
|
||||
# From poesBufrAcq_patterns.template
|
||||
|
@ -659,7 +665,7 @@ HDS ^(JUTX0[1-9]) (....) (..)(..)(..)
|
|||
# AWIPS1: POINT ^IUTX01.* /ispan/bufr/POESSoundings
|
||||
# IUTX01 KNES 070307
|
||||
HDS ^(IUTX0[1-9]) (....) (..)(..)(..)
|
||||
FILE -overwrite -log -close -edex /data_store/poessndg/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
|
||||
FILE -overwrite -log -close -edex /data_store/poessounding/(\3:yyyy)(\3:mm)\3/\4/\1_\2_\3\4\5_(seq).bufr.%Y%m%d%H
|
||||
|
||||
## HDW Bufr Patterns ##
|
||||
# From [east|west]HDWBufrAcq_patterns.template #
|
||||
|
|
Loading…
Add table
Reference in a new issue