thkruz / keeptrack.space

🌎📡 TypeScript Astrodynamics Software for Non-Engineers. 3D Visualization of satellite data and the sensors that track them.
http://keeptrack.space
GNU Affero General Public License v3.0
144 stars 28 forks source link

Angle-only orbit determination #384

Open ckuethe opened 2 years ago

ckuethe commented 2 years ago

User Story

Acceptance Criteria

Commentary

Basically, I have a few photographic frames with satellite tracks. I know the observer location, the observation time, the exposure duration and I'd like to use these to produce state vectors or orbital elements.

thkruz commented 2 years ago

I will have to do some reading on this. I did a lot of work to get the Intial Orbit feature working using ECI coordinates but that was meant for guesstimating using a single radar return vs a photo.

Can you help me understand what variables I have to work with as inputs? I suspect it is something along the lines of:

  1. Time
  2. Az (or equivalent)
  3. El (or equivalent)

Using two of those I should be able to calculate an approximate velocity.

If I can get from there to ECI then it will all fold into the current system seamlessly.

After rereading this - are you suggesting that you would upload the image, identify the positions, and then KeepTrack would calculate the positions from the graphic? Or did you mean you would use a graphical interface to enter the observed points time and position?

The first one can surely be done, and I recall seeing some python tools that (planned?) to do that, but since I have no background in astrophotography I would not expect a quick turnaround for me to do it.

ckuethe commented 2 years ago

I had my astrophotographer hat on the other night and couldn't figure out what photobombed me. I tried using Stellarium to model what would have been in that part of the sky but didn't find anything. By way of example, consider this single frame which contains a very obvious satellite trail.

The FITS header contains:

SIMPLE  =                    T / file does conform to FITS standard
BITPIX  =                   16 / number of bits per data pixel
NAXIS   =                    2 / number of data axes
NAXIS1  =                 1920 / length of data axis 1
NAXIS2  =                 1080 / length of data axis 2
EXTEND  =                    T / FITS dataset may contain extensions
COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H
BZERO   =                32768 / offset data range to that of unsigned short
BSCALE  =                    1 / default scaling factor
ROWORDER= 'TOP-DOWN'           / Row Order
INSTRUME= 'ZWO CCD ASI482MC'   / CCD Name
TELESCOP= 'Skywatcher Alt-Az'  / Telescope name
OBSERVER= 'Unknown '           / Observer name
OBJECT  = 'NGC2174 '           / Object name
EXPTIME =         3.000000E+01 / Total Exposure Time (s)
CCD-TEMP=            1.580E+01 / CCD Temperature (Celsius)
PIXSIZE1=         5.800000E+00 / Pixel Size 1 (microns)
PIXSIZE2=         5.800000E+00 / Pixel Size 2 (microns)
XBINNING=                    1 / Binning factor in width
YBINNING=                    1 / Binning factor in height
XPIXSZ  =         5.800000E+00 / X binned pixel size in microns
YPIXSZ  =         5.800000E+00 / Y binned pixel size in microns
FRAME   = 'Light   '           / Frame Type
IMAGETYP= 'Light Frame'        / Frame Type
XBAYROFF=                    0 / X offset of Bayer array
YBAYROFF=                    0 / Y offset of Bayer array
BAYERPAT= 'RGGB    '           / Bayer color pattern
FOCALLEN=            3.360E+02 / Focal Length (mm)
APTDIA  =            7.000E+01 / Telescope diameter (mm)
SCALE   =         3.561131E+00 / arcsecs per pixel
SITELAT =         3.781978E+01 / Latitude of the imaging site in degrees
SITELONG=        -1.221825E+02 / Longitude of the imaging site in degrees
AIRMASS =         1.070593E+00 / Airmass
OBJCTAZ =         1.386015E+02 / Azimuth of center of image in Degrees
OBJCTALT=         6.906248E+01 / Altitude of center of image in Degrees
OBJCTRA = ' 6 09 22.44'        / Object J2000 RA in Hours
OBJCTDEC= '20 39 34.76'        / Object J2000 DEC in Degrees
RA      =         9.234351E+01 / Object J2000 RA in Degrees
DEC     =         2.065965E+01 / Object J2000 DEC in Degrees
EQUINOX =                 2000 / Equinox
CRVAL1  =     9.2343505824E+01 / CRVAL1
CRVAL2  =     2.0659654799E+01 / CRVAL1
RADECSYS= 'FK5     '           / RADECSYS
CTYPE1  = 'RA---TAN'           / CTYPE1
CTYPE2  = 'DEC--TAN'           / CTYPE2
CRPIX1  =     9.6000000000E+02 / CRPIX1
CRPIX2  =     5.4000000000E+02 / CRPIX2
SECPIX1 =     3.5611310695E+00 / SECPIX1
SECPIX2 =     3.5611310695E+00 / SECPIX2
CDELT1  =     9.8920307486E-04 / CDELT1
CDELT2  =     9.8920307486E-04 / CDELT2
CROTA1  =     2.3638673585E+02 / CROTA1
CROTA2  =     2.3638673585E+02 / CROTA2
DATE-OBS= '2022-01-11T05:56:26.537' / UTC start date of observation
COMMENT Generated by INDI
GAIN    =                 211. / Gain
OFFSET  =                  40. / Offset

As for my inputs for orbit determination, I might use these three frames from a sequence of 30s exposures.

First image, satellite entering from bottom right. I would only use the end of the streak to where the satellite enters my FOV at 2022-01-11T05:55:53.226Z: NGC_2174_Light_312

The frame above, uploaded for astrometric analysis, might be good for two more points (2022-01-11T05:56:26.537 and 2022-01-11T05:56:56.537). Gimp says that streak is 259 pixels, or about 932 arcseconds long, thus the object is traveling through my field of view at about 31arc-seconds per second. NGC_2174_Light_314

Last image in the sequence of 30s exposures, satellite leaving top left. We can assume that the beginning of the satellite departure from FOV was at 2022-01-11T05:59:05.113Z NGC_2174_Light_319

I'm not sure about the UI; I'd certainly be happy to upload an image or set of images, then click on points in the images to use as inputs for orbit determination. I don't know that all observers would have long exposures with nice long streaks through a wide field of view. Some might have shorter exposures, or tighter fields of view, or shorter arcs, so being able to use multiple frames as inputs would probably be very desirable.

stphot is some related work.