meteortools.utils.findNearDuplicates

 1# Copyright (C) 2018-2023 Mark McIntyre
 2
 3import pandas as pd
 4
 5
 6def _findNearDuplicates():
 7    """ not yet implemented """
 8    cols=['_mjd','_localtime','_lat1','_lng1','_lat2','_lng2','numstats','stations']
 9    df = pd.read_parquet('matched/matches-full-2022.parquet.snap', columns=cols)
10    df['l1diff']=df._lat1.diff()*60
11    df['l2diff']=df._lat2.diff()*60
12    df['g1diff']=df._lng1.diff()*60
13    df['g2diff']=df._lng2.diff()*60
14    df['dtdiff']=df._mjd.diff()*86400
15    df['stdiff']=df.numstats.diff()
16    df['bl1diff']=df._lat1.diff(periods=-1)*60
17    df['bl2diff']=df._lat2.diff(periods=-1)*60
18    df['bg1diff']=df._lng1.diff(periods=-1)*60
19    df['bg2diff']=df._lng2.diff(periods=-1)*60
20    df['bdtdiff']=df._mjd.diff(periods=-1)*86400
21    df['bstdiff']=df.numstats.diff(periods=-1)
22    df = df.fillna(999)
23
24    df2 = df[(abs(df.dtdiff) <= 1.0) | (abs(df.bdtdiff) <= 1.0)]
25    df2 = df2[(abs(df2.l1diff) <= 2) | (abs(df2.bl1diff) <= 2)]
26    df2 = df2[(abs(df2.l2diff) <= 2) | (abs(df2.bl2diff) <= 2)]
27    df2 = df2[(abs(df2.g1diff) <= 2) | (abs(df2.bg1diff) <= 2)]
28    df2 = df2[(abs(df2.g2diff) <= 2) | (abs(df2.bg2diff) <= 2)]
29
30    numsame=0
31    for i,rw in df2.iterrows():
32        if df.iloc[i-1].stations != rw.stations:
33            numsame +=1
34            print(rw._localtime)
35        print(f' number with the same cameras:  {numsame}')
36        print(f' number with different cameras: {len(df2)-numsame}')