private List<InvDatasetImpl> makeOffsetDatasets() throws IOException { makeFmrc(); List<InvDatasetImpl> datasets = new ArrayList<InvDatasetImpl>(); String id = getID(); if (id == null) id = getPath(); for (Double offset : fmrc.getForecastOffsets()) { String name = getName()+"_"+OFFSET_NAME+offset+"hr"; name = StringUtil2.replace(name, ' ', "_"); InvDatasetImpl nested = new InvDatasetImpl(this, name); nested.setUrlPath(path+"/"+OFFSET+"/"+name); nested.setID(id+"/"+OFFSET+"/"+name); ThreddsMetadata tm = nested.getLocalMetadata(); tm.addDocumentation("summary", "Data from the "+offset+" hour forecasts, across different model runs."); datasets.add( nested); } return datasets; }
private List<InvDatasetImpl> makeRunDatasets() throws IOException { makeFmrc(); List<InvDatasetImpl> datasets = new ArrayList<InvDatasetImpl>(); DateFormatter formatter = new DateFormatter(); String id = getID(); if (id == null) id = getPath(); for (Date runDate : fmrc.getRunDates()) { //String name = StringUtil.escape(formatter.toDateTimeStringISO( runDate), ""); String name = getName()+"_"+RUN_NAME+formatter.toDateTimeStringISO( runDate); name = StringUtil2.replace(name, ' ', "_"); InvDatasetImpl nested = new InvDatasetImpl(this, name); nested.setUrlPath(path+"/"+RUNS+"/"+name); nested.setID(id+"/"+RUNS+"/"+name); ThreddsMetadata tm = nested.getLocalMetadata(); tm.addDocumentation("summary", "Data from Run "+name); datasets.add( nested); } Collections.reverse( datasets); return datasets; }
private List<InvDatasetImpl> makeForecastDatasets() throws IOException { makeFmrc(); List<InvDatasetImpl> datasets = new ArrayList<InvDatasetImpl>(); DateFormatter formatter = new DateFormatter(); String id = getID(); if (id == null) id = getPath(); for (Date forecastDate : fmrc.getForecastDates()) { String name = getName()+"_"+FORECAST_NAME+formatter.toDateTimeStringISO( forecastDate); name = StringUtil2.replace(name, ' ', "_"); InvDatasetImpl nested = new InvDatasetImpl(this, name); nested.setUrlPath(path+"/"+FORECAST+"/"+name); nested.setID(id+"/"+FORECAST+"/"+name); ThreddsMetadata tm = nested.getLocalMetadata(); tm.addDocumentation("summary", "Data with the same forecast date, "+name+", across different model runs."); datasets.add( nested); } return datasets; }
private Element writeDatasetFmrc( InvDatasetFmrc ds) { Element dsElem; if ( raw ) { dsElem = new Element( "datasetFmrc", defNS ); dsElem.setAttribute( "name", ds.getName() ); dsElem.setAttribute( "path", ds.getPath() ); if (ds.isRunsOnly()) dsElem.setAttribute( "runsOnly", "true" ); writeDatasetInfo( ds, dsElem, false, true ); } else { dsElem = writeCatalogRef( ds); // dsElem.addContent( writeProperty( new InvProperty( "DatasetFmrc", ds.getPath() ) ) ); /// LOOK security hole - not used anyway, I think } return dsElem; }