Issue #1966 Initial Base configuration files for Dale Morris to test.

Change-Id: I764b440aed1568e59cada95f0d6938c90bedc2f1

Former-commit-id: c10f5c8d65 [formerly 34d765f948cf8cbebb0ab9745ef6803eecb8e968]
Former-commit-id: 2cfff5c563
This commit is contained in:
Roger Ferrel 2013-06-20 16:17:12 -05:00
parent 0fa3bf800d
commit 1e5d68fa1b
8 changed files with 268 additions and 152 deletions

View file

@ -380,6 +380,7 @@ public class ArchiveTableComp extends Composite {
}
updateSelectionLabels();
setModified();
}
/**

View file

@ -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));

View file

@ -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);
}
}

View file

@ -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: ");

View file

@ -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.
@ -74,6 +85,19 @@
<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
matches file names redbook-YYYY-MM-DD-HH.<extension>. Thus the file name redbook-2013-05-28-00.hd5 would match the <filePattern>.
@ -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>

View file

@ -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.
@ -74,6 +85,19 @@
<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
matches file names redbook-YYYY-MM-DD-HH.<extension>. Thus the file name redbook-2013-05-28-00.hd5 would match the <filePattern>.
@ -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>

View file

@ -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

View file

@ -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 #