/* @see BaseTiffReader#initMetadataStore() */ protected void initMetadataStore() throws FormatException { super.initMetadataStore(); MetadataStore store = makeFilterMetadata(); MetadataTools.populatePixels(store, this, true); if (date != null) { date = DateTools.formatDate(date, DATE_FORMAT); if (date != null) { store.setImageAcquisitionDate(new Timestamp(date), 0); } } if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { store.setImageDescription(MAGIC_STRING, 0); if (scaling > 0) { store.setPixelsPhysicalSizeX(new PositiveFloat(scaling), 0); store.setPixelsPhysicalSizeY(new PositiveFloat(scaling), 0); } else { LOGGER.warn("Expected positive value for PhysicalSize; got {}", scaling); } String instrument = MetadataTools.createLSID("Instrument", 0); store.setInstrumentID(instrument, 0); store.setImageInstrumentRef(instrument, 0); store.setObjectiveID(MetadataTools.createLSID("Objective", 0, 0), 0, 0); if (magnification > 0) { store.setObjectiveNominalMagnification(new PositiveInteger(magnification), 0, 0); } else { LOGGER.warn("Expected positive value for NominalMagnification; got {}", magnification); } store.setObjectiveImmersion(getImmersion(immersion), 0, 0); String detector = MetadataTools.createLSID("Detector", 0, 0); store.setDetectorID(detector, 0, 0); store.setDetectorModel(cameraType + " " + cameraName, 0, 0); store.setDetectorType(getDetectorType("CCD"), 0, 0); for (int i = 0; i < getSizeC(); i++) { store.setDetectorSettingsID(detector, 0, i); store.setDetectorSettingsBinning(getBinning(binning), 0, i); } for (int i = 0; i < getImageCount(); i++) { int[] zct = getZCTCoords(i); store.setPlaneExposureTime(exposureTimes.get(zct[1]) / 1000000, 0, i); } } }
private void populateMetadata() throws FormatException, IOException { MetadataStore store = makeFilterMetadata(); MetadataTools.populatePixels(store, this, true); String instrumentID = MetadataTools.createLSID("Instrument", 0); store.setInstrumentID(instrumentID, 0); for (int i = 0; i < positions.size(); i++) { Position p = positions.get(i); if (p.time != null) { String date = DateTools.formatDate(p.time, DATE_FORMAT); if (date != null) { store.setImageAcquisitionDate(new Timestamp(date), i); } } if (positions.size() > 1) { Location parent = new Location(p.metadataFile).getParentFile(); store.setImageName(parent.getName(), i); } if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { store.setImageDescription(p.comment, i); // link Instrument and Image store.setImageInstrumentRef(instrumentID, i); for (int c = 0; c < p.channels.length; c++) { store.setChannelName(p.channels[c], i, c); } if (p.pixelSize != null && p.pixelSize > 0) { store.setPixelsPhysicalSizeX(new PositiveFloat(p.pixelSize), i); store.setPixelsPhysicalSizeY(new PositiveFloat(p.pixelSize), i); } else { LOGGER.warn("Expected positive value for PhysicalSizeX; got {}", p.pixelSize); } if (p.sliceThickness != null && p.sliceThickness > 0) { store.setPixelsPhysicalSizeZ(new PositiveFloat(p.sliceThickness), i); } else { LOGGER.warn("Expected positive value for PhysicalSizeZ; got {}", p.sliceThickness); } int nextStamp = 0; for (int q = 0; q < getImageCount(); q++) { store.setPlaneExposureTime(p.exposureTime, i, q); String tiff = positions.get(getSeries()).getFile(q); if (tiff != null && new Location(tiff).exists() && nextStamp < p.timestamps.length) { store.setPlaneDeltaT(p.timestamps[nextStamp++], i, q); } } String serialNumber = p.detectorID; p.detectorID = MetadataTools.createLSID("Detector", 0, i); for (int c = 0; c < p.channels.length; c++) { store.setDetectorSettingsBinning(getBinning(p.binning), i, c); store.setDetectorSettingsGain(new Double(p.gain), i, c); if (c < p.voltage.size()) { store.setDetectorSettingsVoltage(p.voltage.get(c), i, c); } store.setDetectorSettingsID(p.detectorID, i, c); } store.setDetectorID(p.detectorID, 0, i); if (p.detectorModel != null) { store.setDetectorModel(p.detectorModel, 0, i); } if (serialNumber != null) { store.setDetectorSerialNumber(serialNumber, 0, i); } if (p.detectorManufacturer != null) { store.setDetectorManufacturer(p.detectorManufacturer, 0, i); } if (p.cameraMode == null) p.cameraMode = "Other"; store.setDetectorType(getDetectorType(p.cameraMode), 0, i); store.setImagingEnvironmentTemperature(p.temperature, i); } } }
/* @see BaseTiffReader#initMetadataStore() */ @Override protected void initMetadataStore() throws FormatException { super.initMetadataStore(); MetadataStore store = makeFilterMetadata(); MetadataTools.populatePixels(store, this); if (date != null) { date = DateTools.formatDate(date, DATE_FORMAT); if (date != null) { store.setImageAcquisitionDate(new Timestamp(date), 0); } } if (imageName != null) { store.setImageName(imageName, 0); } if (getMetadataOptions().getMetadataLevel() != MetadataLevel.MINIMUM) { if (imageDescription != null) { store.setImageDescription(imageDescription, 0); } if (userName != null) { store.setExperimenterID(MetadataTools.createLSID("Experimenter", 0), 0); store.setExperimenterLastName(userName, 0); } if (microscopeModel != null) { String instrument = MetadataTools.createLSID("Instrument", 0); store.setInstrumentID(instrument, 0); store.setImageInstrumentRef(instrument, 0); store.setMicroscopeModel(microscopeModel, 0); } if (detectors != null && detectors.size() > 0) { String instrument = MetadataTools.createLSID("Instrument", 0); store.setInstrumentID(instrument, 0); store.setImageInstrumentRef(instrument, 0); for (int i = 0; i < detectors.size(); i++) { String detectorID = MetadataTools.createLSID("Detector", 0, i); store.setDetectorID(detectorID, 0, i); store.setDetectorModel(detectors.get(i), 0, i); store.setDetectorType(getDetectorType("Other"), 0, i); } } if (magnification != null) { store.setObjectiveID(MetadataTools.createLSID("Objective", 0, 0), 0, 0); store.setObjectiveNominalMagnification(magnification, 0, 0); store.setObjectiveCorrection(getCorrection("Other"), 0, 0); store.setObjectiveImmersion(getImmersion("Other"), 0, 0); } store.setStageLabelX(stageX, 0); store.setStageLabelY(stageY, 0); store.setStageLabelZ(stageZ, 0); store.setStageLabelName("", 0); Length physicalSizeX = FormatTools.getPhysicalSizeX(sizeX); Length physicalSizeY = FormatTools.getPhysicalSizeY(sizeY); if (physicalSizeX != null) { store.setPixelsPhysicalSizeX(physicalSizeX, 0); } if (physicalSizeY != null) { store.setPixelsPhysicalSizeY(physicalSizeY, 0); } if (timeIncrement != null) { store.setPixelsTimeIncrement(new Time(timeIncrement, UNITS.S), 0); } } }