Ejemplo n.º 1
0
            public void WriteFrameImpl(IntPtr intPtr, int p, RawFrameInfo info)
            {
                object   data = MarshalToCLR(intPtr, p);
                Fits     fits = new Fits();
                BasicHDU hdu  = FitsFactory.HDUFactory(data);

                if ((data is short[][] || data is short[][][]) && _significantBitDepth > 8)
                {
                    hdu.AddValue("BZERO", 32768.0, "");
                }

                AddMetadataToFrame(info, hdu);

                fits.AddHDU(hdu);
                using (FileStream fs = File.Create(Path.GetTempFileName()))
                {
                    using (BufferedDataStream f = new BufferedDataStream(fs))
                    {
                        fits.Write(f);
                    }
                }
            }
Ejemplo n.º 2
0
            private void AddMetadataToFrame(RawFrameInfo info, BasicHDU hdu)
            {
                if (info == null)
                {
                    info = new RawFrameInfo()
                    {
                        ColourSpace = _colourSpaceId
                    }
                }
                ;

                if (info.ExposureMs.HasValue)
                {
                    hdu.AddValue("EXPTIME", info.ExposureMs.Value / 1000, "");
                }

                if (info.PixelSize.HasValue)
                {
                    hdu.AddValue("XPIXSZ", info.PixelSize.Value, "");
                    hdu.AddValue("YPIXSZ", info.PixelSize.Value, "");
                }

                if (info.Binning > 0)
                {
                    hdu.AddValue("XBINNING", info.Binning, "");
                    hdu.AddValue("YBINNING", info.Binning, "");
                }

                if (info.SensorTemp.HasValue)
                {
                    hdu.AddValue("CCD-TEMP", info.SensorTemp.Value, "");
                }

                switch (info.ColourSpace)
                {
                case ColourSpaceId.Mono:
                    break;

                case ColourSpaceId.RGB:
                    hdu.AddValue("COLORTYP", "RGB", "");
                    break;

                case ColourSpaceId.Bayer_RGGB:
                    hdu.AddValue("COLORTYP", "RGGB", "");
                    break;

                case ColourSpaceId.Bayer_GRBG:
                    hdu.AddValue("COLORTYP", "GRBG", "");
                    break;

                case ColourSpaceId.Bayer_GBRG:
                    hdu.AddValue("COLORTYP", "GBRG", "");
                    break;

                case ColourSpaceId.Bayer_BGGR:
                    hdu.AddValue("COLORTYP", "BGGR", "");
                    break;

                case ColourSpaceId.Bayer_CYYM:
                    hdu.AddValue("COLORTYP", "CYYM", "");
                    break;

                case ColourSpaceId.Bayer_YMCY:
                    hdu.AddValue("COLORTYP", "YMCY", "");
                    break;

                case ColourSpaceId.Bayer_MYYC:
                    hdu.AddValue("COLORTYP", "MYYC", "");
                    break;

                case ColourSpaceId.Bayer_Unknown:
                    break;
                }

                hdu.AddValue("SWCREATE", "SharpCap", "");
                hdu.AddValue("DATE-OBS", DateTime.UtcNow.ToString("s"), "");

                if (!string.IsNullOrEmpty(info.CameraName))
                {
                    hdu.AddValue("INSTRUME", info.CameraName, "");
                }
            }
Ejemplo n.º 3
0
            private void AddMetadataToFrame(RawFrameInfo info, BasicHDU hdu)
            {
                if (info == null)
                    info = new RawFrameInfo() {ColourSpace = _colourSpaceId};

                if (info.ExposureMs.HasValue)
                    hdu.AddValue("EXPTIME", info.ExposureMs.Value/1000, "");

                if (info.PixelSize.HasValue)
                {
                    hdu.AddValue("XPIXSZ", info.PixelSize.Value, "");
                    hdu.AddValue("YPIXSZ", info.PixelSize.Value, "");
                }

                if (info.Binning > 0)
                {
                    hdu.AddValue("XBINNING", info.Binning, "");
                    hdu.AddValue("YBINNING", info.Binning, "");
                }

                if (info.SensorTemp.HasValue)
                {
                    hdu.AddValue("CCD-TEMP", info.SensorTemp.Value, "");
                }

                switch (info.ColourSpace)
                {
                    case ColourSpaceId.Mono:
                        break;
                    case ColourSpaceId.RGB:
                        hdu.AddValue("COLORTYP", "RGB", "");
                        break;
                    case ColourSpaceId.Bayer_RGGB:
                        hdu.AddValue("COLORTYP", "RGGB", "");
                        break;
                    case ColourSpaceId.Bayer_GRBG:
                        hdu.AddValue("COLORTYP", "GRBG", "");
                        break;
                    case ColourSpaceId.Bayer_GBRG:
                        hdu.AddValue("COLORTYP", "GBRG", "");
                        break;
                    case ColourSpaceId.Bayer_BGGR:
                        hdu.AddValue("COLORTYP", "BGGR", "");
                        break;
                    case ColourSpaceId.Bayer_CYYM:
                        hdu.AddValue("COLORTYP", "CYYM", "");
                        break;
                    case ColourSpaceId.Bayer_YMCY:
                        hdu.AddValue("COLORTYP", "YMCY", "");
                        break;
                    case ColourSpaceId.Bayer_MYYC:
                        hdu.AddValue("COLORTYP", "MYYC", "");
                        break;
                    case ColourSpaceId.Bayer_Unknown:
                        break;
                }

                hdu.AddValue("SWCREATE", "SharpCap", "");
                hdu.AddValue("DATE-OBS", DateTime.UtcNow.ToString("s"), "");

                if (!string.IsNullOrEmpty(info.CameraName))
                    hdu.AddValue("INSTRUME", info.CameraName, "");
            }
Ejemplo n.º 4
0
            public void WriteFrameImpl(IntPtr intPtr, int p, RawFrameInfo info)
            {
                object data = MarshalToCLR(intPtr, p);
                Fits fits = new Fits();
                BasicHDU hdu = FitsFactory.HDUFactory(data);
                if ((data is short[][] || data is short[][][]) && _significantBitDepth > 8)
                {
                    hdu.AddValue("BZERO", 32768.0, "");
                }

                AddMetadataToFrame(info, hdu);

                fits.AddHDU(hdu);
                using (FileStream fs = File.Create(Path.GetTempFileName()))
                {
                    using (BufferedDataStream f = new BufferedDataStream(fs))
                    {
                        fits.Write(f);
                    }
                }
            }