Exemple #1
0
 /// <summary>
 /// Set the z-distance of a certain plane.
 /// </summary>
 /// <param name="num">Numerator of z-distance.</param>
 /// <param name="den">Denominator of z-distance.</param>
 /// <param name="planeNum">Zero-based index of the plane.</param>
 public void setZdistance(uint num, uint den, int planeNum)
 {
     if (planeNum < 0 || planeNum >= numPlane)
     {
         return;
     }
     zDistance[planeNum] = new TiffInfo(StkInfoCollection.UIC2Tag, "ZDistance", num, den);
 }
Exemple #2
0
 /// <summary>
 /// Set the wavelength of a certain plane.
 /// </summary>
 /// <param name="num">Numerator of wavelength.</param>
 /// <param name="den">Denominator of wavelength.</param>
 /// <param name="planeNum">Zero-based index of the plane.</param>
 public void setWavelength(uint num, uint den, int planeNum)
 {
     if (planeNum < 0 || planeNum >= numPlane)
     {
         return;
     }
     wavelength[planeNum] = new TiffInfo(StkInfoCollection.UIC3Tag, "Wavelength", num, den);
 }
Exemple #3
0
 /// <summary>
 /// Set the midification time of the given plane.
 /// </summary>
 /// <param name="julian">Julian Date</param>
 /// <param name="millisecond">Milliseconds</param>
 /// <param name="planeNum">Zero-based index of the plane.</param>
 public void setModifiedDatetime(uint julian, uint millisecond, int planeNum)
 {
     if (planeNum < 0 || planeNum >= numPlane)
     {
         return;
     }
     modifiedTime[planeNum] = new TiffInfo(StkInfoCollection.UIC2Tag, "Modified time", julian, millisecond);
 }
Exemple #4
0
 /// <summary>
 /// Set the creation time of the given plane.
 /// </summary>
 /// <param name="julian">Julian Date</param>
 /// <param name="millisecond">Milliseconds</param>
 /// <param name="planeNum">Zero-based index of the plane.</param>
 public void setCreationDatetime(uint julian, uint millisecond, int planeNum)
 {
     if (planeNum < 0 || planeNum >= numPlane)
     {
         return;
     }
     creationTime[planeNum] = new TiffInfo(StkInfoCollection.UIC2Tag, "Creation time", julian, millisecond);
 }
Exemple #5
0
        /// <summary>
        /// Set the unit of calibration.
        /// </summary>
        /// <param name="unit">A string representing the unit.</param>
        public void setCalibrationUnit(string unit)
        {
            UIC1.Remove(StkInfoCollection.CalibrationUnits);
            var c = new TiffInfo(StkInfoCollection.UIC1Tag, "Calibration Unit", unit);
            var l = new List <TiffInfo>();

            l.Add(c);
            UIC1.Add(StkInfoCollection.CalibrationUnits, l);
        }
Exemple #6
0
        /// <summary>
        /// Set the modification time of the given plane.
        /// </summary>
        /// <param name="dt">Local DateTime.</param>
        /// <param name="planeNum">Zero-based index of the plane.</param>
        public void setModifiedDatetime(DateTime dt, int planeNum)
        {
            if (planeNum < 0 || planeNum >= numPlane)
            {
                return;
            }
            long julian, millisecond;

            JulianDatetime.getSTKdatetime(dt, out julian, out millisecond);
            modifiedTime[planeNum] = new TiffInfo(StkInfoCollection.UIC2Tag, "Modified time", Convert.ToUInt32(julian), Convert.ToUInt32(millisecond));
        }
Exemple #7
0
 /// <summary>
 /// Set UIC4 data for a specific plane
 /// </summary>
 /// <param name="key">UIC4 key</param>
 /// <param name="info">Tiffinfo</param>
 /// <param name="planeNum">Zero-indexed plane number</param>
 public void setUIC4Data(ushort key, TiffInfo info, int planeNum)
 {
     if (planeNum < 0 || planeNum >= numPlane)
     {
         return;
     }
     try {
         UIC4[key][planeNum] = info;
     } catch
     {
     }
 }
Exemple #8
0
        /// <summary>
        /// Set calibration in Y-direction.
        /// </summary>
        /// <param name="numerator">Numerator of the calibration value.</param>
        /// <param name="denominator">Denominator of the calibration value.</param>
        public void setYCalibration(uint numerator, uint denominator)
        {
            UIC1.Remove(StkInfoCollection.SpatialCalibration);
            var c = new TiffInfo(StkInfoCollection.UIC1Tag, "Calibration On/Off", (uint)1);
            var l = new List <TiffInfo>();

            l.Add(c);
            UIC1.Add(StkInfoCollection.SpatialCalibration, l);
            UIC1.Remove(StkInfoCollection.YCalibration);
            c = new TiffInfo(StkInfoCollection.UIC1Tag, "Y Calibration", numerator, denominator);
            l = new List <TiffInfo>();
            l.Add(c);
            UIC1.Add(StkInfoCollection.YCalibration, l);
        }
Exemple #9
0
 /// <summary>
 /// Forcely add absolute Z info to UIC4
 /// </summary>
 /// <param name="num">Array of the numerators of Z position.</param>
 /// <param name="denom">Array of the denominators of Z position.</param>
 /// <returns>True if successful.</returns>
 public bool setAbsoluteZUIC4(uint[] num, uint[] denom)
 {
     if (num.Length != numPlane || denom.Length != numPlane)
     {
         throw new Exception("Array lenght mismatch.");
     }
     TiffInfo[] z     = new TiffInfo[numPlane];
     TiffInfo[] v     = new TiffInfo[numPlane];
     uint[]     valid = new uint[numPlane];
     for (int i = 0; i < numPlane; i++)
     {
         valid[i] = 1;
         z[i]     = new TiffInfo(UIC4Tag, "Absolute Z", num[i], denom[i]);
         v[i]     = new TiffInfo(UIC4Tag, "Absolute Z Validity", valid[i]);
     }
     forceAddUIC4Data(AbsoluteZ, z);
     forceAddUIC4Data(AbsoluteZValid, v);
     return(true);
 }
Exemple #10
0
        /// <summary>
        /// Forcely add absolute Z info to UIC1
        /// </summary>
        /// <param name="num">Array of the numerators of Z position.</param>
        /// <param name="denom">Array of the denominators of Z position.</param>
        /// <returns>True if successful.</returns>
        public void setAbsoluteZUIC1(uint[] num, uint[] denom)
        {
            if (num.Length != numPlane || denom.Length != numPlane)
            {
                throw new Exception("Array lenght mismatch.");
            }
            TiffInfo z = new TiffInfo(UIC1Tag, "Absolute Z", num, denom);

            forceAddUIC1Data(AbsoluteZ, new TiffInfo[1] {
                z
            });
            uint[] valid = new uint[numPlane];
            for (int i = 0; i < numPlane; i++)
            {
                valid[i] = 1;
            }
            TiffInfo v = new TiffInfo(UIC1Tag, "Absolute Z Validity", valid);

            forceAddUIC1Data(AbsoluteZValid, new TiffInfo[1] {
                v
            });
        }
Exemple #11
0
        internal override TiffInfoCollection toInfoCollection()
        {
            StkInfoCollection infoC = new StkInfoCollection(Convert.ToUInt32(numPlane), base.toInfoCollection());

            TiffDirData uic2test = search(StkInfoCollection.UIC2Tag);

            if (uic2test == null || UIC2data == null)
            {
                return(infoC);
            }

            uint[] uicContent = (uint[])UIC2data.getContent();
            if (uicContent.Length < 6 * numPlane)
            {
                return(infoC);
            }

            for (int i = 0; i < numPlane; i++)
            {
                infoC.setZdistance(uicContent[6 * i], uicContent[6 * i + 1], i);
                infoC.setCreationDatetime(uicContent[6 * i + 2], uicContent[6 * i + 3], i);
                infoC.setModifiedDatetime(uicContent[6 * i + 4], uicContent[6 * i + 5], i);
            }

            TiffDirData uic3test = search(StkInfoCollection.UIC3Tag);

            if (uic3test != null && UIC3data != null)
            {
                uicContent = (uint[])UIC3data.getContent();
                if (uicContent.Length < 2 * numPlane)
                {
                    return(infoC);
                }

                for (int i = 0; i < numPlane; i++)
                {
                    infoC.setWavelength(uicContent[2 * i], uicContent[2 * i + 1], i);
                }
            }

            TiffDirData uic4test = search(StkInfoCollection.UIC4Tag);

            if (uic4test != null && UIC4data != null && UIC4data.Count > 0)
            {
                foreach (KeyValuePair <ushort, TiffData[]> pair in UIC4data)
                {
                    if (pair.Value.Length != numPlane)
                    {
                        continue;
                    }
                    TiffInfo[] temp = new TiffInfo[numPlane];
                    for (int j = 0; j < numPlane; j++)
                    {
                        temp[j] = new TiffInfo(StkInfoCollection.UIC4Tag, "UIC4", (pair.Value)[j]);
                    }
                    infoC.forceAddUIC4Data(pair.Key, temp);
                }
            }

            TiffDirData uic1test = search(StkInfoCollection.UIC1Tag);

            if (uic1test != null && UIC1data != null && UIC1data.Count > 0)
            {
                foreach (KeyValuePair <uint, TiffData[]> pair in UIC1data)
                {
                    TiffInfo[] uic1info = new TiffInfo[pair.Value.Length];
                    for (int i = 0; i < pair.Value.Length; i++)
                    {
                        uic1info[i] = new TiffInfo(StkInfoCollection.UIC1Tag, "UIC1", pair.Value[i]);
                    }
                    infoC.forceAddUIC1Data(pair.Key, uic1info);
                }
            }

            return(infoC);
        }