12.12.1-2 baseline

Former-commit-id: 90019fdb91dad949f125e46de9300ccd44f6e315
This commit is contained in:
Steve Harris 2012-11-13 17:14:24 -06:00
parent e4bd20a515
commit a8560580f8
21 changed files with 298 additions and 131 deletions

View file

@ -1,19 +1,19 @@
##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
@ -38,25 +38,25 @@ from java.util import HashSet
#
# GFE Painter for painting GFE data from scripts
#
#
#
#
# SOFTWARE HISTORY
#
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 04/01/09 njensen Initial Creation.
# 08/20/2012 #1077 randerso Fixed backgroundColor setting
# 09/13/2012 #1147 dgilling Allow map labels to be disabled.
#
#
# 11/6/2012 15406 ryu Correction for computing domain from mask
#
#
import VizPainter
class GFEPainter(VizPainter.VizPainter):
def __init__(self, imageWidth=None, imageHeight=None, expandLeft=25.0, expandRight=25.0, expandTop=25.0, expandBottom=25.0, mask=None, wholeDomain=0, bgColor=None):
self.dataMgr = DataManager.getInstance(None)
def __init__(self, imageWidth=None, imageHeight=None, expandLeft=25.0, expandRight=25.0, expandTop=25.0, expandBottom=25.0, mask=None, wholeDomain=0, bgColor=None):
self.dataMgr = DataManager.getInstance(None)
self.refId = None
envelope = None
gloc = self.dataMgr.getParmManager().compositeGridLocation()
@ -64,7 +64,7 @@ class GFEPainter(VizPainter.VizPainter):
from com.raytheon.uf.common.dataplugin.gfe.reference import ReferenceData_CoordinateType as CoordinateType
self.refId = ReferenceID(mask)
if wholeDomain == 0:
envelope = self.dataMgr.getRefManager().loadRefSet(self.refId).overallDomain(CoordinateType.LATLON)
envelope = self.dataMgr.getRefManager().loadRefSet(self.refId).overallDomain(CoordinateType.GRID)
if imageWidth is not None:
imageWidth = Integer(int(imageWidth))
if imageHeight is not None:
@ -75,16 +75,16 @@ class GFEPainter(VizPainter.VizPainter):
desc = display.getDescriptor()
self.dataMgr.getSpatialDisplayManager().setDescriptor(desc)
VizPainter.VizPainter.__init__(self, display, backgroundColor=bgColor)
gfeSystem = GFESystemResource(self.dataMgr)
self.addVizResource(gfeSystem)
desc.getResourceList().getProperties(gfeSystem).setSystemResource(True)
desc.getResourceList().getProperties(gfeSystem).setSystemResource(True)
self.primaryRsc = None
def __del__(self):
VizPainter.VizPainter.__del__(self)
def setupLegend(self, localTime=False, snapshotTime=False, snapshot='', descriptiveName='SHORT', duration='', start='', end='', override={}, lang=''):
legend = ImageLegendResource(self.dataMgr)
legend.setLocalTime(localTime)
@ -100,22 +100,22 @@ class GFEPainter(VizPainter.VizPainter):
legend.setColorOverride(parm, override[parm])
self.addVizResource(legend)
self.getDescriptor().getResourceList().getProperties(legend).setSystemResource(True)
def enableColorbar(self):
from com.raytheon.viz.gfe.rsc.colorbar import GFEColorbarResource
colorBar = GFEColorbarResource(self.dataMgr)
self.addVizResource(colorBar)
self.getDescriptor().getResourceList().getProperties(colorBar).setSystemResource(True)
def __makeGFEResource(self, parm):
parm.getParmState().setPickUpValue(None)
parm.getParmState().setPickUpValue(None)
gfeRsc = GFEResource(parm, self.dataMgr)
self.addVizResource(gfeRsc)
if not parm.getDisplayAttributes().getBaseColor():
from com.raytheon.viz.core import ColorUtil
parm.getDisplayAttributes().setBaseColor(ColorUtil.getNewColor(self.getDescriptor()))
return gfeRsc
return gfeRsc
def addGfeResource(self, parm, colormap=None, colorMin=None, colorMax=None, smooth=False, color=None, lineWidth=None):
gfeRsc = self.__makeGFEResource(parm)
# jvisType = VisualizationType.valueOf('IMAGE')
@ -127,8 +127,8 @@ class GFEPainter(VizPainter.VizPainter):
parm.getDisplayAttributes().setDisplayMask(self.refId)
self.primaryRsc = gfeRsc
params = gfeRsc.getCapability(ColorMapCapability).getColorMapParameters()
if colormap is not None:
from com.raytheon.uf.viz.core.drawables import ColorMapLoader
if colormap is not None:
from com.raytheon.uf.viz.core.drawables import ColorMapLoader
params.setColorMap(ColorMapLoader.loadColorMap(colormap))
if colorMax is not None and colorMin is not None:
params.setDataMin(colorMin)
@ -145,9 +145,9 @@ class GFEPainter(VizPainter.VizPainter):
gfeRsc.getCapability(ColorableCapability).setColor(color)
if lineWidth is not None:
gfeRsc.getCapability(OutlineCapability).setOutlineWidth(lineWidth)
def addMapBackground(self, mapName, color=None, lineWidth=None,
linePattern=None, xOffset=None, yOffset=None,
linePattern=None, xOffset=None, yOffset=None,
labelAttribute=None, fontOffset=None):
from com.raytheon.uf.viz.core.maps import MapManager
rsc = MapManager.getInstance(self.getDescriptor()).loadMapByBundleName(mapName).getResource()
@ -165,10 +165,10 @@ class GFEPainter(VizPainter.VizPainter):
if fontOffset is not None:
mag = Double(1.26 ** fontOffset)
rsc.getCapability(MagnificationCapability).setMagnification(mag)
def getDataManager(self):
return self.dataMgr
def outputFiles(self, filename, attachLogo=False, logoText=None):
rendered = self.getTarget().screenshot()
if attachLogo:
@ -176,7 +176,7 @@ class GFEPainter(VizPainter.VizPainter):
from com.raytheon.uf.common.localization import PathManagerFactory
noaa = 'pyViz/logos/noaalogo2.png'
nws = 'pyViz/logos/nwslogo.png'
pathMgr = PathManagerFactory.getPathManager()
pathMgr = PathManagerFactory.getPathManager()
noaa = pathMgr.getStaticFile(noaa)
nws = pathMgr.getStaticFile(nws)
noaaImage = ImageIO.read(noaa)
@ -195,12 +195,12 @@ class GFEPainter(VizPainter.VizPainter):
fm = graphics.getFontMetrics()
textBounds = fm.getStringBounds(logoText, graphics)
graphics.drawString(logoText, int((rendered.getWidth() - textBounds.getWidth()) / 2), \
int(rendered.getHeight() + (noaaImage.getHeight() / 2) + textBounds.getHeight() / 2))
int(rendered.getHeight() + (noaaImage.getHeight() / 2) + textBounds.getHeight() / 2))
graphics.drawImage(nwsImage, finalBuf.getWidth() - nwsImage.getWidth(), rendered.getHeight(), None)
finalBuf.flush()
self.outputImage(finalBuf, filename)
else:
self.outputImage(rendered, filename)
def _changeTime(self, time):
pass
pass

View file

@ -69,8 +69,8 @@ import com.vividsolutions.jts.geom.Coordinate;
* 04/08/2008 chammack Initial Port from AWIPS I (minus ISC support)
* 07/23/2012 #936 dgilling Reinstate config-handling code to
* calcGridLabels().
* 11/05/2012 #14566 jzeng Reverse the order of grids
* in calcGridLabels ()
* 11/05/2012 #14566 jzeng Paint the sample points with the order of grids
* in calcGridLabels ()
* </pre>
*
* @author chammack
@ -254,12 +254,16 @@ public class SamplePainter {
* @param colors
* The color list
*/
private void calcGridLabels(Coordinate worldLoc, final List<GridID> grids,
private void calcGridLabels(Coordinate worldLoc, final List<GridID> Grids,
final GridID imageGrid, List<String> sampleLabels, List<RGB> colors) {
if (grids.isEmpty()) {
if (Grids.isEmpty()) {
return;
}
List<GridID> grids = Grids;
Collections.reverse(grids);
// if list is not defined, then all samples will be painted for
// all parms
@ -284,8 +288,6 @@ public class SamplePainter {
inGrid = true;
}
Collections.reverse(grids);
// get the list of samples that should be painted and in the
// order
for (GridID grid : grids) {
@ -340,6 +342,7 @@ public class SamplePainter {
sampleLabels.add(label);
colors.add(labelColor);
}
Collections.reverse(grids);
}
/**

View file

@ -1,48 +1,48 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.viz.gfe.ifpimage;
import org.geotools.coverage.grid.GeneralGridEnvelope;
import org.geotools.coverage.grid.GridGeometry2D;
import org.geotools.geometry.GeneralEnvelope;
import org.opengis.geometry.Envelope;
import org.opengis.referencing.FactoryException;
import org.opengis.referencing.operation.TransformException;
import com.raytheon.uf.common.dataplugin.gfe.db.objects.GridLocation;
import com.raytheon.uf.common.geospatial.MapUtil;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.Coordinate;
/**
* Static methods to support IFP Image or generating GFE images off screen.
*
*
* <pre>
*
*
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 12, 2009 njensen Initial creation
* 21May2009 6309 garmendariz Modified path for Geotools 2.6.4
*
* 11/6/2012 15406 ryu Modified computing domain from mask
*
* </pre>
*
*
* @author njensen
* @version 1.0
*/
@ -57,25 +57,15 @@ public class GfeImageUtil {
Envelope envelope = null;
GridGeometry2D newGridGeometry = null;
try {
if (env != null) {
Point[] points = new Point[2];
points[0] = MapUtil.getPoint(env.getMinY(), env.getMinX());
points[1] = MapUtil.getPoint(env.getMaxY(), env.getMaxX());
envelope = MapUtil.extractProjectedEnvelope(gloc.getCrs(),
points, MapUtil.getTransformFromLatLon(gloc.getCrs()));
}
} catch (TransformException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FactoryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (envelope == null) {
GridGeometry2D gridGeometry = MapUtil.getGridGeometry(gloc);
envelope = gridGeometry.getEnvelope();
}
if (env != null) {
Coordinate ll = new Coordinate(env.getMinX(), env.getMinY());
Coordinate ur = new Coordinate(env.getMaxX(), env.getMaxY());
envelope = MapUtil.convertToNativeEnvelope(ll, ur, gloc);
}
if (envelope == null) {
GridGeometry2D gridGeometry = MapUtil.getGridGeometry(gloc);
envelope = gridGeometry.getEnvelope();
}
double dLeft = envelope.getSpan(0) * percentLeft;

View file

@ -128,6 +128,9 @@ import com.raytheon.viz.hydrocommon.util.DbUtils;
* 06 Nov 2012 15399 wkwock Fix refine the plot algorithm and sampling algorithm
* 06 Nov 2012 15459 lbousaidi update data when page/up or page/down is pressed without having
* to click in graph button again.
* 06 Nov 2012 15400 lbousaidi Changed logic in buildPointString routine, added discharge2stage
* to display stage value, also added checking for rating curve for both
* stage and discharge.
* @author lvenable
* @version 1.0
*
@ -1599,31 +1602,57 @@ public class TimeSeriesDisplayCanvas extends TimeSeriesGraphCanvas implements
double yValue = pixel2y(graphData, y);
String units = FEET;
boolean isRiverData = true;
boolean isStage= true;
ArrayList<TraceData> traces = graphData.getTraces();
for (TraceData trace : traces) {
if (!trace.getPe().toUpperCase().startsWith("H")
&& !trace.getPe().toUpperCase().startsWith("Q")) {
isRiverData = false;
}
}
if (isRiverData) {
sb.append(" value=" + twoDecimalFormat.format(yValue) + " "
+ units + " ");
double q = StageDischargeUtils.stage2discharge(lid, yValue);
if (q != HydroConstants.MISSING_VALUE) {
units = CFS;
if (q > 10000) {
units = KCFS;
q = q / 1000;
}
sb.append(String.format("%8.1f", q) + " " + units);
if (trace.getPe().toUpperCase().startsWith("Q")) {
isStage=false;
}
} else {
units = INCH;
sb.append(" value=" + twoDecimalFormat.format(yValue) + " "
+ units + " ");
}
if (isRiverData) {
if (isStage) {
/**
* Convert the stage to discharge for the location and stage value passed in.
*/
double q = StageDischargeUtils.stage2discharge(lid, yValue);
//check for rating curve
if (q != HydroConstants.RATING_CONVERT_FAILED) {
if (q > 10000) {
units = KCFS;
q = q / 1000;
}else {
units = CFS;
}
sb.append(" value=" + twoDecimalFormat.format(yValue)
+ " " + FEET + " ");
sb.append(String.format("%8.1f", q) + " " + units);
}else {
sb.append(" value=" + twoDecimalFormat.format(yValue));
}
}else {
/**
* Convert the discharge to stage for the location and discharge value passed in.
*/
double q = StageDischargeUtils.discharge2stage(lid, yValue);
//check for rating curve
if (q != HydroConstants.RATING_CONVERT_FAILED) {
sb.append(" value=" + twoDecimalFormat.format(yValue)
+ " " + CFS + " ");
sb.append(String.format("%8.1f", q) + " " + FEET);
}else {
sb.append(" value=" + twoDecimalFormat.format(yValue));
}
}
}else {
sb.append(" value=" + twoDecimalFormat.format(yValue));
}
return sb.toString();

View file

@ -63,7 +63,8 @@ import com.raytheon.viz.hydrocommon.HydroConstants;
* July 12 2011 9709 djingtao draw right Y axis for showPP is true. add new
* function adjust_pcymax()
* Aug. 10, 2011 10457 djingtao allow the red rubberband box to be drawn for setMissing in Edit
* Jul. 24, 2012 15195 mpduff Fix x axis scales.
* Jul. 24, 2012 15195 mpduff Fix x axis scales.
* 06 Nov 2012 15399 wkwock Fix refine the plot algorithm and sampling algorithm
*
* </pre>
*
@ -500,11 +501,11 @@ public class TimeSeriesGraphCanvas extends Canvas {
int x = -999;
int dy = 5;
int dx = 4;
long startMillis = gd.getXMin().getTime();
long startMillis = ((long)Math.ceil(gd.getXMin().getTime()/HydroConstants.MILLIS_PER_HOUR))*HydroConstants.MILLIS_PER_HOUR;
long endMillis = gd.getXMax().getTime();
for (long i = startMillis; i <= endMillis; i += HydroConstants.MILLIS_PER_HOUR) {
x = x2pixel(gd, i);
x = x2pixel(gd, i+59000); //59 seconds for better sampling
Date d = SimulatedTime.getSystemTime().getTime();
d.setTime(i);
dy = 5;
@ -667,8 +668,8 @@ public class TimeSeriesGraphCanvas extends Canvas {
long xMin = gd.getXMin().getTime();
long xMax = gd.getXMax().getTime();
long xDiff = xMax - xMin;
long millisPerPixel = xDiff / graphAreaWidth;
long millisTime = (xpix - GRAPHBORDER_LEFT) * millisPerPixel + xMin;
double millisPerPixel = xDiff / graphAreaWidth;
long millisTime = (long)(xpix * millisPerPixel) + xMin;
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTimeInMillis(millisTime);

View file

@ -39,6 +39,7 @@ import com.raytheon.viz.hydrocommon.whfslib.GeoUtil;
* Sep 18, 2009 2260 mpduff Initial creation
* Apr 25, 2012 14499 wkwock Refine format, query, etc
* Sep 11, 2012 13781 wkwock add print menu
* Oct 19, 2012 15454 wkwock Fix missing River mile, Zero Datum, Check bar
*
* </pre>
*
@ -141,14 +142,14 @@ public class E19AReport extends E19Report {
buffer.append(String.format("STATION NO: %-11s\n", locData.getLocation().getSn()));
String mile = null;
if (data.getRiverstat().getDa() != HydroConstants.MISSING_VALUE) {
if (data.getRiverstat().getMile() != HydroConstants.MISSING_VALUE) {
mile = String.format("%8.2f", data.getRiverstat().getMile());
} else {
mile = " ";
}
String wstg = null;
if (data.getRiverstat().getFs() != HydroConstants.MISSING_VALUE) {
if (data.getRiverstat().getWstg() != HydroConstants.MISSING_VALUE) {
wstg = String.format("%8.2f", data.getRiverstat().getWstg());
} else {
wstg = " ";
@ -158,14 +159,14 @@ public class E19AReport extends E19Report {
buffer.append(String.format(" USGS NO: %-11s\n", data.getRiverstat().getGsno()));
String zd = null;
if (data.getRiverstat().getDa() != HydroConstants.MISSING_VALUE) {
if (data.getRiverstat().getZd() != HydroConstants.MISSING_VALUE) {
zd = String.format("%8.3f", data.getRiverstat().getZd());
} else {
zd = " ";
}
String bf = null;
if (data.getRiverstat().getFs() != HydroConstants.MISSING_VALUE) {
if (data.getRiverstat().getBf() != HydroConstants.MISSING_VALUE) {
bf = String.format("%8.2f", data.getRiverstat().getBf());
} else {
bf = " ";
@ -175,7 +176,7 @@ public class E19AReport extends E19Report {
buffer.append(String.format(" NESS ID: %-8s\n", dataDcpTelem.getDcp().getGoes()));
String cb = null;
if (data.getRiverstat().getDa() != HydroConstants.MISSING_VALUE) {
if (data.getRiverstat().getCb() != HydroConstants.MISSING_VALUE) {
cb = String.format("%8.3f", data.getRiverstat().getCb());
} else {
cb = " ";
@ -277,7 +278,7 @@ public class E19AReport extends E19Report {
buffer.append(" LATEST GAGE TYPE START DATE OWNER OF GAGE\n");
if (dataG.getGageList() != null && dataG.getGageList().size() > 0) {
Gage gage=dataG.getGageList().get(dataG.getGageList().size()-1);
Gage gage=dataG.getGageList().get(0);
buffer.append(String.format(" %-11s %10s %-11s\n", gage.getType(), sdf.format(gage.getBegin()), gage.getOwner()));
}

View file

@ -46,6 +46,7 @@ import com.raytheon.viz.hydrocommon.whfslib.GeoUtil;
* ------------ ---------- ----------- --------------------------
* Sep 18, 2009 2260 mpduff Initial creation
* Apr 25, 2012 14499 wkwock Refine format, query, etc
* Oct 14, 2012 15454 wkwock Fix can not generate e19 if damage filed is empty
*
* </pre>
*
@ -1392,9 +1393,13 @@ public class E19Report extends TextReport {
tmp1 = String.format("%7.2f", floodList.get(floodIndex).getStage());
}
thisLineStr=" " + tmp1 + " - " + lines[lineIndex];
if (lines==null || lines[lineIndex]==null) {
thisLineStr=" " + tmp1 + " -";
} else {
thisLineStr=" " + tmp1 + " - " + lines[lineIndex];
}
}else {
thisLineStr=" " + lines[lineIndex];
thisLineStr=" ";
}
int spaces = flood_filler - thisLineStr.length();
@ -1410,7 +1415,7 @@ public class E19Report extends TextReport {
lineIndex++;
if (lineIndex == lines.length - 1) { // No more lines in this record
if (lines !=null && lineIndex == lines.length - 1) { // No more lines in this record
floodIndex++; // Get the next record
if ((floodList.size() > floodIndex) && (floodList.get(floodIndex) != null)) {

View file

@ -48,6 +48,7 @@ import com.raytheon.viz.hydrocommon.textreport.TextReportData.StaffGageData;
* Nov 09, 2010 5416 lbousaid changed gageQuery
* Dec 08, 2011 11728 lbousaidi changed the routines that retrieve data
* Apr 25, 2012 14499 wkwock Refine format, query, etc
* Nov 06, 2012 15454 wkwock Fix query for get data from gage table
*
* </pre>
*
@ -356,7 +357,7 @@ public class TextReportDataManager extends HydroDataManager {
public TextReportData getGageQueryList(String lid) {
TextReportData data = new TextReportData();
String gageQuery = "select gbegin, type, owner, remark, maint, gend from gage where lid = '"
+ lid + "' order by gbegin,type";
+ lid + "' and gend is null ORDER BY gbegin desc";
ArrayList<Object[]> rs = runQuery(gageQuery);
ArrayList<Gage> gageList = new ArrayList<Gage>();
int i = 0;

View file

@ -75,6 +75,7 @@ import com.raytheon.viz.mpe.util.WriteQPFGrids;
* ------------ ---------- ----------- --------------------------
* Mar 24, 2009 snaples Initial creation
* Sep 19, 2011 10955 rferrel Use RunProcess
* Nov 06, 2012 15481 wkwock Fix save 6 hours precipitation files
*
* </pre>
*
@ -649,6 +650,81 @@ public class SaveLevel2Data {
}
}
//save for each 6 hour periods
for (l = 0; l < 5; l++) {
if (DailyQcUtils.pdata[j].used[l] == 0 || qctype_flag[0] == -1) {
continue;
}
/*
* this needs to be fixed to ensure that the gridded temperature
* files are named correctly.
*/
if (l < 2) {
old_time = DailyQcUtils.pdata[j].data_time;
Calendar od = Calendar.getInstance();
od.setTime(old_time);
od.add(Calendar.SECOND, -86400);
old_time = od.getTime();
} else {
old_time = DailyQcUtils.pdata[j].data_time;
}
gm.setTime(old_time);
if (l < 4) {
ll = 0;
} else {
ll = 1;
}
RenderPcp rcp = new RenderPcp();
rcp.render_pcp(j, l, ll, max_stations,
DailyQcUtils.precip_stations, hrap_grid,
DailyQcUtils.pdata, DailyQcUtils.pcp_in_use);
String dbuf = String.format("%s%s_%04d%02d%02d", grid_file,
timefile[2][l], gm.get(Calendar.YEAR),
gm.get(Calendar.MONTH) + 1,
gm.get(Calendar.DAY_OF_MONTH));
/* output grid to file in ascii xmrg format */
WriteQPFGrids wqg = new WriteQPFGrids();
wqg.write_qpf_grids(dbuf);
if (DailyQcUtils.mpe_dqc_save_grib == true) {
WriteDQCNetCDFGrids wng = new WriteDQCNetCDFGrids();
String ncfile = String.format("%s.nc", dbuf);
wng.write_dqc_netcdf_grids(ncfile, l, 1, 1,
ga.getCommonGridAttributes(), datavals);
WriteDQCGribGrids wgg = new WriteDQCGribGrids();
String fname_grib = String.format("%s.grb", dbuf);
int status = wgg
.write_dqc_grib_grids(ncfile, fname_grib, 1);
if (status != 0) {
statusHandler
.handle(Priority.WARN,
String.format(
"problem with writing GRIB file in write_dqc_grib_grids. status=%d\n",
status));
}
}
if (l < 4) {
num = j * 4 + 3 - l;
} else {
num = 40 + j;
}
/* Create the MAP. */
CreateMap cm = new CreateMap();
cm.create_map(num);
}
//save the whole days
for (l = 0; l < 5; l++) {
if (DailyQcUtils.pdata[j].used[l] == 0 || qctype_flag[0] == -1) {
@ -698,25 +774,6 @@ public class SaveLevel2Data {
ga.getCommonGridAttributes(), datavals);
}
if (DailyQcUtils.mpe_dqc_save_grib == true) {
WriteDQCNetCDFGrids wng = new WriteDQCNetCDFGrids();
String ncfile = String.format("%s.nc", dbuf);
wng.write_dqc_netcdf_grids(ncfile, l, 1, 1,
ga.getCommonGridAttributes(), datavals);
WriteDQCGribGrids wgg = new WriteDQCGribGrids();
String fname_grib = String.format("%s.grb", dbuf);
int status = wgg
.write_dqc_grib_grids(ncfile, fname_grib, 1);
if (status != 0) {
statusHandler
.handle(Priority.WARN,
String.format(
"problem with writing GRIB file in write_dqc_grib_grids. status=%d\n",
status));
}
}
if (l < 4) {
num = j * 4 + 3 - l;
} else {

View file

@ -15,7 +15,8 @@
</capabilities>
</loadProperties>
<resourceData xsi:type="satBestResResourceData"
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true"
inclusionFactor="${inclusionFactor;0.4}">
<metadataMap>
<mapping key="pluginName">
<constraint constraintValue="satellite"

View file

@ -26,6 +26,7 @@ import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import org.geotools.referencing.CRS;
@ -67,7 +68,7 @@ import com.vividsolutions.jts.geom.Polygon;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jul 30, 2010 mschenke Initial creation
* Oct 31, 2012 DR 15287 D. Friedman Fix overlap calculation
* Nov 06, 2012 DR 15157 D. Friedman Allow configured inclusion percentage
*
* </pre>
*
@ -82,6 +83,9 @@ public class SatBestResResourceData extends AbstractRequestableResourceData {
@XmlElement(name = "resource")
protected ResourceList resourceList = new ResourceList();
@XmlAttribute
protected Double inclusionFactor;
private ResourcePair resourceToDraw;
/**
@ -156,12 +160,14 @@ public class SatBestResResourceData extends AbstractRequestableResourceData {
Map<ResourcePair, Double> percentOfIntersection = new HashMap<ResourcePair, Double>();
if (disclosedResource != null) {
final double inclusionPercentageToUse = inclusionFactor != null ?
inclusionFactor : DESIRED_PERCENTAGE;
// check inclusion percentage of the disclosed resource
Double inclusion = getInclusionPercentage(descriptor,
disclosedResource, extent);
if (inclusion != Double.NaN) {
percentOfIntersection.put(disclosedResource, inclusion);
if (inclusion < DESIRED_PERCENTAGE) {
if (inclusion < inclusionPercentageToUse) {
disclosedResource = null;
}
} else {
@ -335,7 +341,7 @@ public class SatBestResResourceData extends AbstractRequestableResourceData {
for (Polygon last : prevs) {
// Don't want to double include percentage areas
totalPercentage -= last.intersection(polygon).intersection(extent)
totalPercentage -= last.intersection(polygon)
.getArea() / extent.getArea();
}
}
@ -347,4 +353,12 @@ public class SatBestResResourceData extends AbstractRequestableResourceData {
}
return totalPercentage;
}
public Double getInclusionFactor() {
return inclusionFactor;
}
public void setInclusionFactor(Double inclusionFactor) {
this.inclusionFactor = inclusionFactor;
}
}

View file

@ -302,6 +302,7 @@ import com.raytheon.viz.ui.dialogs.SWTMessageBox;
* 12OCT2012 15418 D.Friedman Do not store product when sending in operational mode.
* Do not use changed BBB from OUPResponse.
* 17OCT2012 1229 rferrel Changes for non-blocking SWTMessageBox.
* 05Nov2012 15560 S. Naples Added check to see if we are in edit mode before capturing keys.
* </pre>
*
* @author lvenable
@ -3530,6 +3531,10 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
textEditor.addVerifyKeyListener(new VerifyKeyListener() {
public void verifyKey(VerifyEvent event) {
// Ignore edit keys when not in edit mode.
if (textEditor.getEditable() == false){
return;
}
if (event.keyCode == SWT.DEL || event.character == SWT.BS
|| event.keyCode == SWT.SHIFT) {
// Do nothing...

View file

@ -52,6 +52,7 @@ import com.raytheon.viz.texteditor.util.VtecUtil;
* Add vtec to checkHeadline signature
* 20 JUL 2012 15006 mgamazaychikov Do not perform search for a list of
* county/zones names in the MWS segment heading.
* 07 NOV 2012 15003 mgamazaychikov Do not perform QC check on standalone MWS headline.
*
* </pre>
*
@ -500,18 +501,13 @@ public class TextSegmentCheck implements IQCCheck {
return errorMsg;
}
/*
* DR15003 standalone MWS can have no headline.
* DR15003: no headline QC on standalone MWS.
* To distinguish between standalone and follow up MWS
* the VTEC check is performed as standalone MWS
* do not contain VTEC
*/
if (nnn.equals("MWS") && vtec == null) {
if (headline.length() == 0) {
return errorMsg;
} else if (!headline.endsWith("...")) {
errorMsg += "Headline should end with '...'.\n";
}
return errorMsg;
return "";
}
if (headline.length() == 0) {

View file

@ -94,6 +94,7 @@ import com.vividsolutions.jts.geom.Polygon;
* reprojectGeometry.
* 06/19/2012 14988 D. Friedman Make oversampling more like AWIPS 1
* 09/18/2012 #1091 randerso corrected getBoundingEnvelope
* 11/06/2012 15406 ryu Added convertToNativeEnvelope()
*
* </pre>
*
@ -269,6 +270,55 @@ public class MapUtil {
return generalEnvelope;
}
/**
* Construct a native envelope from the grid domain represented
* by the lower left and the upper right corners.
*
* @param ll
* lower left of the grid envelope
* @param ur
* upper right of the grid envelope
* @param gloc
* grid location object
* @return a native envelope
*
*/
public static GeneralEnvelope convertToNativeEnvelope(
Coordinate ll, Coordinate ur, ISpatialObject gloc) {
GeneralEnvelope generalEnvelope = new GeneralEnvelope(2);
generalEnvelope.setCoordinateReferenceSystem(gloc.getCrs());
double minX = Double.POSITIVE_INFINITY;
double maxX = Double.NEGATIVE_INFINITY;
double minY = Double.POSITIVE_INFINITY;
double maxY = Double.NEGATIVE_INFINITY;
for (Coordinate p : new Coordinate[]{ll, ur}) {
Coordinate translated = gridCoordinateToNative(p,
PixelOrientation.CENTER, gloc);
double x = translated.x;
double y = translated.y;
if (x < minX) {
minX = x;
}
if (x > maxX) {
maxX = x;
}
if (y < minY) {
minY = y;
}
if (y > maxY) {
maxY = y;
}
}
generalEnvelope.setRange(0, minX, maxX);
generalEnvelope.setRange(1, minY, maxY);
return generalEnvelope;
}
/**
* Reproject a grid coverage into a different coordinate reference system
*

View file

@ -8,7 +8,7 @@ Summary: Pypies Apache HTTP Server
Name: awips2-httpd-pypies
Version: 2.2.3
# This Is Officially Release: 22%{?dist}
Release: 28%{?dist}
Release: 29%{?dist}
URL: http://httpd.apache.org/
Prefix: /awips2/httpd_pypies
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz

View file

@ -5,7 +5,7 @@
Name: awips2-ldm
Summary: AWIPS II LDM Distribution
Version: 6.8.1
Release: 23
Release: 24
Group: AWIPSII
BuildRoot: /tmp
URL: N/A

View file

@ -59,12 +59,14 @@ EXEC "dvbs_multicast -b 40000 -m 224.0.1.1"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.2"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.3"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.4"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.5"
#
# readnoaaport shared memory readers
EXEC "readnoaaport -m 224.0.1.1 -n -u 3 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.2 -n -u 4 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.3 -n -u 5 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.4 -n -u 6 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.5 -n -u 7 -t mhs -r 1"
#
# rtstats uses the LDM to send product latency statistics to the UPC.
# For more info on rtstats please see the man page.

View file

@ -59,12 +59,14 @@ EXEC "dvbs_multicast -b 40000 -m 224.0.1.1"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.2"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.3"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.4"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.5"
#
# readnoaaport shared memory readers
EXEC "readnoaaport -m 224.0.1.1 -n -u 3 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.2 -n -u 4 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.3 -n -u 5 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.4 -n -u 6 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.5 -n -u 7 -t mhs -r 1"
#
# rtstats uses the LDM to send product latency statistics to the UPC.
# For more info on rtstats please see the man page.

View file

@ -59,12 +59,14 @@ EXEC "dvbs_multicast -b 40000 -m 224.0.1.1"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.2"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.3"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.4"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.5"
#
# readnoaaport shared memory readers
EXEC "readnoaaport -m 224.0.1.1 -n -u 3 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.2 -n -u 4 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.3 -n -u 5 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.4 -n -u 6 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.5 -n -u 7 -t mhs -r 1"
#
# rtstats uses the LDM to send product latency statistics to the UPC.
# For more info on rtstats please see the man page.

View file

@ -59,12 +59,14 @@ EXEC "dvbs_multicast -b 40000 -m 224.0.1.1"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.2"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.3"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.4"
EXEC "dvbs_multicast -b 40000 -m 224.0.1.5"
#
# readnoaaport shared memory readers
EXEC "readnoaaport -m 224.0.1.1 -n -u 3 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.2 -n -u 4 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.3 -n -u 5 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.4 -n -u 6 -t mhs -r 1"
EXEC "readnoaaport -m 224.0.1.5 -n -u 7 -t mhs -r 1"
#
# rtstats uses the LDM to send product latency statistics to the UPC.
# For more info on rtstats please see the man page.

View file

@ -311,6 +311,12 @@ if [ "${1}" = "-ade" ]; then
exit 1
fi
# Build the source jar file
ade_work_dir="/home/dmsys/Dim12/build/AWIPS2/AWIPS2-ADE-OB12.11.2-CM"
cd $ade_work_dir
./build_source_jar.sh
cp -v /tmp/awips2-ade-baseline-SOURCES.jar ${WORKSPACE}/${ade_directory}
# Tar the directory.
pushd . > /dev/null 2>&1
cd ${WORKSPACE}