ADS-B positions that have not changed are intended to be skipped, but the comparison reads lat, lon, and alt from out while those values are stored in proc. The position timestamp also adds seen_pos, although seen_pos is the age of the position and should be subtracted.
I reproduced the combined effect with a deterministic moving-aircraft feed that updated position every two seconds while adsb2dd polled every second. Bistatic delay changed from 45.73938 to 45.73987 km, but upstream reported Doppler as 0 throughout.
Using the stored proc coordinates for the unchanged-position check and calculating timestamps with json.now - aircraft.seen_pos, the identical feed produced evolving Doppler from -0.00164 to -0.01310 Hz.
ADS-B positions that have not changed are intended to be skipped, but the comparison reads
lat,lon, andaltfromoutwhile those values are stored inproc. The position timestamp also addsseen_pos, althoughseen_posis the age of the position and should be subtracted.I reproduced the combined effect with a deterministic moving-aircraft feed that updated position every two seconds while adsb2dd polled every second. Bistatic delay changed from
45.73938to45.73987km, but upstream reported Doppler as0throughout.Using the stored
proccoordinates for the unchanged-position check and calculating timestamps withjson.now - aircraft.seen_pos, the identical feed produced evolving Doppler from-0.00164to-0.01310Hz.