public CalendarDateRange intersect(CalendarDateRange clip) { DateTime cs = clip.getStart().getDateTime(); DateTime s = startDt.isBefore(cs) ? cs : startDt; // later one DateTime ce = clip.getEnd().getDateTime(); DateTime e = endDt.isBefore(ce) ? endDt : ce; // earlier one return CalendarDateRange.of(CalendarDate.of(cal, s), CalendarDate.of(cal, e)); }
private void trackDateRange(CalendarDateRange cdr) { if (dateRange == null) dateRange = cdr; else dateRange = dateRange.extend(cdr); }
@Override public boolean filter(PointFeatureCollection pointFeatureCollection) { ProfileFeature profileFeature = (ProfileFeature) pointFeatureCollection; return dateRange.includes(profileFeature.getTime()); } }
public boolean intersects(CalendarDateRange o) { return intersects(o.getStart(), o.getEnd()); }
public void update() { datasets = new ArrayList<TimedCollection.Dataset>(); for (MFile f : manager.getFiles()) datasets.add(new Dataset(f)); if (manager.hasDateExtractor()) { if (datasets.size() == 1) { Dataset ds = (Dataset) datasets.get(0); if (ds.start != null) dateRange = CalendarDateRange.of(ds.start, ds.start); // LOOK ?? } else if (datasets.size() > 1) { for (int i = 0; i < datasets.size() - 1; i++) { Dataset d1 = (Dataset) datasets.get(i); Dataset d2 = (Dataset) datasets.get(i + 1); d1.setDateRange(CalendarDateRange.of(d1.start, d2.start)); if (i == datasets.size() - 2) // last one d2.setDateRange(new CalendarDateRange(d2.start, d1.getDateRange().getDurationInSecs())); } Dataset first = (Dataset) datasets.get(0); Dataset last = (Dataset) datasets.get(datasets.size() - 1); dateRange = CalendarDateRange.of(first.getDateRange().getStart(), last.getDateRange().getEnd()); } } }
if (tc != null) { buff.append("<h3>TimeCoverage:</h3>\n<ul>\n"); CalendarDate start = tc.getStart(); if (start != null) buff.append(" <li><em> Start: </em> ").append(start.toString()).append("\n"); CalendarDate end = tc.getEnd(); if (end != null) { buff.append(" <li><em> End: </em> ").append(end.toString()).append("\n"); CalendarDuration duration = tc.getDuration(); if (duration != null) buff.append(" <li><em> Duration: </em> ").append(StringUtil2.quoteHtmlContent(duration.toString())).append("\n"); CalendarDuration resolution = tc.getResolution(); if (resolution != null) { buff.append(" <li><em> Resolution: </em> ").append(StringUtil2.quoteHtmlContent(resolution.toString())).append("\n");
static public CalendarDateRange extractCalendarDateRange(GridDataset gridDataset) { CalendarDateRange maxDateRange = null; for (GridDataset.Gridset gridset : gridDataset.getGridsets()) { GridCoordSystem gsys = gridset.getGeoCoordSystem(); CalendarDateRange dateRange; CoordinateAxis1DTime time1D = gsys.getTimeAxis1D(); if (time1D != null) { dateRange = time1D.getCalendarDateRange(); } else { CoordinateAxis time = gsys.getTimeAxis(); if (time == null) continue; try { DateUnit du = new DateUnit( time.getUnitsString()); Date minDate = du.makeDate(time.getMinValue()); Date maxDate = du.makeDate(time.getMaxValue()); dateRange = CalendarDateRange.of( minDate, maxDate); } catch (Exception e) { logger.warn("Illegal Date Unit "+time.getUnitsString()); continue; } } if (maxDateRange == null) maxDateRange = dateRange; else maxDateRange.extend( dateRange); } return maxDateRange; }
/** * get time coverage as CalendarDateRange * * @return time coverage, or null if none */ public CalendarDateRange getCalendarDateCoverage() { return CalendarDateRange.of(tc); }
if (dateRange != null) { Element drElem = new Element("TimeSpan"); // from KML drElem.addContent(new Element("begin").addContent(dateRange.getStart().toString())); drElem.addContent(new Element("end").addContent(dateRange.getEnd().toString())); if (dateRange.getResolution() != null) drElem.addContent(new Element("resolution").addContent(dateRange.getResolution().toString()));
TimeUnit tUnit = taxis.getTimeResolution(); out.println(" DateRange == " + "start= " + dateRange.getStart() + " end= " + dateRange.getEnd() + " duration= " + dateRange.getDurationInSecs() + " ntimes = " + ntimes + " data resolution = " + tUnit); } catch (Exception e) { e.printStackTrace();
/** * set TimeCoverage from a CalendarDateRange * @param cdc set CalendarDateRange to this */ public void setTimeCoverage(CalendarDateRange cdc) { if (cdc == null) return; this.timeCoverage = cdc.toDateRange(); }
dateRangeAll = gc.dateRange; else if (!rangeOverlaps) { rangeOverlaps = dateRangeAll.intersects(gc.dateRange); dateRangeAll = dateRangeAll.extend(gc.dateRange);
@Override public CalendarDate getCalendarDateEnd() { return (dateRange == null) ? null : dateRange.getEnd(); }
@Override public CalendarDate getCalendarDateStart() { return (dateRange == null) ? null : dateRange.getStart(); }
static public CalendarDateRange of(CalendarDate start, CalendarDate end) { return new CalendarDateRange(start, end); }
if ((taxis != null) && ((dateRange == null) || !dateRange2.equals(dateRange))) { TimeUnit tUnit = taxis.getTimeResolution(); if (dateRange != null) out.printf(" DateRange == %s duration = %d secs; ntimes = %d data resolution = %s%n", dateRange, dateRange.getDurationInSecs(), ntimes, tUnit); } catch (Exception e) { e.printStackTrace();
private TimedCollection(TimedCollection from, CalendarDateRange want) { this.manager = from.manager; datasets = new ArrayList<TimedCollection.Dataset>(from.datasets.size()); for (TimedCollection.Dataset d : from.datasets) if (want.intersects(d.getDateRange())) datasets.add(d); this.dateRange = want; }
TimeUnit tUnit = taxis.getTimeResolution(); if (dateRange != null) out.printf(" DateRange == %s duration = %d secs; ntimes = %d data resolution = %s%n", dateRange, dateRange.getDurationInSecs(), ntimes, tUnit); } catch (Exception e) { e.printStackTrace();
public void update() throws IOException { datasets = new ArrayList<>(); for (MFile f : manager.getFilesSorted()) datasets.add(new Dataset(f)); if (manager.hasDateExtractor()) { if (datasets.size() == 1) { Dataset ds = datasets.get(0); if (ds.start != null) dateRange = CalendarDateRange.of(ds.start, ds.start); // LOOK ?? } else if (datasets.size() > 1) { for (int i = 0; i < datasets.size() - 1; i++) { Dataset d1 = datasets.get(i); Dataset d2 = datasets.get(i + 1); d1.setDateRange(CalendarDateRange.of(d1.start, d2.start)); if (i == datasets.size() - 2) // last one d2.setDateRange(new CalendarDateRange(d2.start, d1.getDateRange().getDurationInSecs())); } Dataset first = datasets.get(0); Dataset last = datasets.get(datasets.size() - 1); dateRange = CalendarDateRange.of(first.getDateRange().getStart(), last.getDateRange().getEnd()); } } }