public WcsRangeField( GridDatatype gridDatatype ) { if ( gridDatatype == null) throw new IllegalArgumentException( "Range field must be non-null."); this.gridDatatype = gridDatatype; this.name = this.gridDatatype.getFullName(); this.label = this.gridDatatype.getInfo(); this.description = this.gridDatatype.getDescription(); this.datatypeString = this.gridDatatype.getDataType().toString(); this.unitsString = this.gridDatatype.getUnitsString(); this.validMin = this.gridDatatype.getVariable().getValidMin(); this.validMax = this.gridDatatype.getVariable().getValidMax(); // ToDo GeoGrids only handle scalar range fields. (???) axes = Collections.emptyList(); }
private Element writeGrid(GridDatatype grid) { Element varElem = new Element("grid"); varElem.setAttribute("name", grid.getFullName()); varElem.setAttribute("desc", grid.getDescription()); StringBuilder buff = new StringBuilder(); List dims = grid.getDimensions(); for (int i = 0; i < dims.size(); i++) { Dimension dim = (Dimension) dims.get(i); if (i > 0) buff.append(" "); if (dim.isShared()) buff.append(dim.getShortName()); else buff.append(dim.getLength()); } if (buff.length() > 0) varElem.setAttribute("shape", buff.toString()); DataType dt = grid.getDataType(); if (dt != null) varElem.setAttribute("type", dt.toString()); //GridCoordSystem cs = grid.getCoordinateSystem(); //varElem.setAttribute("coordSys", cs.getName()); // attributes for (ucar.nc2.Attribute att : grid.getAttributes()) { varElem.addContent(ucar.nc2.ncml.NcMLWriter.writeAttribute(att, "attribute", null)); } return varElem; }
private Element writeGrid(GridDatatype grid) { Element varElem = new Element("grid"); varElem.setAttribute("name", grid.getFullName()); String desc = grid.getDescription() != null ? grid.getDescription() : "No description"; varElem.setAttribute("desc", desc); StringBuilder buff = new StringBuilder(); List dims = grid.getDimensions(); for (int i = 0; i < dims.size(); i++) { Dimension dim = (Dimension) dims.get(i); if (i > 0) buff.append(" "); if (dim.isShared()) buff.append(dim.getShortName()); else buff.append(dim.getLength()); } if (buff.length() > 0) varElem.setAttribute("shape", buff.toString()); DataType dt = grid.getDataType(); if (dt != null) varElem.setAttribute("type", dt.toString()); //GridCoordSystem cs = grid.getCoordinateSystem(); //varElem.setAttribute("coordSys", cs.getName()); // attributes for (ucar.nc2.Attribute att : grid.getAttributes()) { varElem.addContent(ucar.nc2.ncml.NcMLWriter.writeAttribute(att, "attribute", null)); } return varElem; }
private Element writeGrid(GridDatatype grid) { NcMLWriter ncmlWriter = new NcMLWriter(); Element varElem = new Element("grid"); varElem.setAttribute("name", grid.getFullName()); String desc = grid.getDescription() != null ? grid.getDescription() : "No description"; varElem.setAttribute("desc", desc); StringBuilder buff = new StringBuilder(); List dims = grid.getDimensions(); for (int i = 0; i < dims.size(); i++) { Dimension dim = (Dimension) dims.get(i); if (i > 0) buff.append(" "); if (dim.isShared()) buff.append(dim.getShortName()); else buff.append(dim.getLength()); } if (buff.length() > 0) varElem.setAttribute("shape", buff.toString()); DataType dt = grid.getDataType(); if (dt != null) varElem.setAttribute("type", dt.toString()); //GridCoordSystem cs = grid.getCoordinateSystem(); //varElem.setAttribute("coordSys", cs.getName()); // attributes for (ucar.nc2.Attribute att : grid.getAttributes()) { varElem.addContent(ncmlWriter.makeAttributeElement(att)); } return varElem; }
@Test public void testGrid() { GridDatatype grid = gds.findGridDatatype("T"); assert null != grid; assert grid.getFullName().equals("T"); assert grid.getRank() == 3; assert grid.getDataType() == DataType.DOUBLE; GridCoordSystem gcsys = grid.getCoordinateSystem(); assert gcsys.getYHorizAxis() != null; assert gcsys.getXHorizAxis() != null; assert gcsys.getTimeAxis() != null; CoordinateAxis1DTime taxis = gcsys.getTimeAxis1D(); assert taxis.getDataType() == DataType.STRING : taxis.getDataType(); List names = taxis.getNames(); java.util.Date[] dates = taxis.getTimeDates(); assert dates != null; for (int i = 0; i < dates.length; i++) { Date d = dates[i]; ucar.nc2.util.NamedObject name = (ucar.nc2.util.NamedObject) names.get(i); logger.debug("{} == {}", name.getName(), d); } }
@Test public void testReadData() throws IOException { GridDatatype g = gds.findGridDatatype("IR_WV"); assert null != g; assert g.getFullName().equals("IR_WV"); assert g.getRank() == 3; assert g.getShape()[0] == ntimes; assert g.getShape()[1] == 1008; assert g.getShape()[2] == 1536; assert g.getDataType() == DataType.USHORT : g.getDataType(); GridCoordSystem gsys = g.getCoordinateSystem(); assert gsys.getXHorizAxis() != null; assert gsys.getYHorizAxis() != null; assert gsys.getTimeAxis() != null; assert gsys.getVerticalAxis() == null; assert gsys.getProjection() != null; Array data = g.readVolumeData(0); assert data.getRank() == 2; assert data.getShape()[0] == 1008; assert data.getShape()[1] == 1536; assert data.getElementType() == short.class; } }