lvjiameng commited on
Commit
d24fe95
·
verified ·
1 Parent(s): 31758bc

Upload 21 files

Browse files
ExampleCode/example1/Multi_band_analy.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
ExampleCode/example1/Sanomalous_sources.csv ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ra,dec,anomaly_score
2
+ 200.19305,33.443726,-0.6930316796112987
3
+ 220.35742,33.72618,-0.5619702131612299
4
+ 218.21674,47.768574,-0.6189931296508746
5
+ 224.97906,47.63954,-0.5917523232022385
6
+ 200.29968,31.729654,-0.5786086053982126
7
+ 223.13959,36.13852,-0.5855118386973505
8
+ 224.76053,47.418983,-0.5720925415138971
9
+ 223.0734,46.768044,-0.581471299025403
10
+ 217.32109,46.852432,-0.577233879122645
11
+ 228.93903,36.706173,-0.5689133460036013
12
+ 212.11525,33.205482,-0.5898777332408975
13
+ 212.13579,33.16155,-0.6243711700507368
14
+ 205.59035,32.690517,-0.6097489913166909
15
+ 219.83424,46.86007,-0.5574332297733766
16
+ 226.28036,46.963696,-0.5923697736365776
17
+ 222.7845,47.675457,-0.5815100892096293
18
+ 205.69641,32.42519,-0.5672470017979784
19
+ 215.9645,47.10679,-0.6096682280563198
20
+ 212.16959,32.59188,-0.5683391632649394
21
+ 225.21576,47.30673,-0.5937442856152948
22
+ 219.57034,47.352955,-0.5556436382203152
23
+ 224.01189,36.243046,-0.6695349974551924
24
+ 222.963,46.913734,-0.5793439664467084
25
+ 210.7116,32.92613,-0.5778126897217477
26
+ 210.91286,35.773186,-0.5600545266906618
27
+ 211.00102,32.670048,-0.6242225858420763
28
+ 226.92117,46.89221,-0.6103942130253949
29
+ 219.89328,46.63121,-0.6413601162909434
30
+ 200.04846,33.09609,-0.6771650566707986
31
+ 223.0503,46.521004,-0.5628563220725986
32
+ 219.58582,47.816025,-0.617485136663874
33
+ 200.23062,33.902607,-0.6557414604975511
34
+ 222.81557,46.70404,-0.581834044779202
35
+ 224.42175,47.216965,-0.6271035115846311
36
+ 211.56627,35.795273,-0.7077425872138497
37
+ 222.83739,35.504044,-0.5836484389319461
38
+ 222.83969,34.44721,-0.6072835613043173
39
+ 211.72879,33.472313,-0.5824126280048473
40
+ 219.30371,47.499092,-0.5599966720366738
41
+ 219.0164,46.743916,-0.5648288494412933
42
+ 223.08978,36.091084,-0.5841514545595019
43
+ 222.33034,47.44863,-0.5710990093546388
44
+ 212.09677,36.199924,-0.5812158359114539
45
+ 223.4386,34.389263,-0.5706426646588099
46
+ 224.93661,47.07267,-0.5760161695683038
47
+ 225.63454,47.293297,-0.566237520746517
48
+ 201.21243,33.26414,-0.594847745756717
49
+ 224.42151,46.822662,-0.5615085424128482
50
+ 224.87427,47.76158,-0.5599291686456922
51
+ 206.00899,32.11525,-0.6488928897939612
52
+ 223.06161,47.001293,-0.5931704281526834
53
+ 200.02356,33.287064,-0.5745143414030865
54
+ 200.06491,33.297512,-0.6915292696802472
55
+ 200.2609,33.339485,-0.7275117594014705
56
+ 200.54095,32.74289,-0.6011052875469948
57
+ 201.13945,31.67151,-0.5541432687311584
58
+ 201.16075,33.781464,-0.6561199460972833
59
+ 201.18198,32.54029,-0.7229205273308329
60
+ 201.1878,32.516823,-0.5997876971564051
61
+ 201.25839,33.271908,-0.598830387000561
62
+ 201.73921,32.383,-0.6668698248492971
63
+ 201.74942,32.706326,-0.5581080369827209
64
+ 201.79012,33.501156,-0.5842210665034255
65
+ 201.8101,33.786076,-0.5924704480147599
66
+ 201.87544,33.392143,-0.6260645979487105
67
+ 201.92282,34.35722,-0.5849633159190043
68
+ 202.48431,32.232494,-0.6175727530244329
69
+ 207.0826,32.0275,-0.6956250006462609
70
+ 225.50099,47.11725,-0.6626593644860734
71
+ 225.43314,47.5701,-0.6122573612878669
72
+ 200.58075,33.889343,-0.5960476641403275
73
+ 205.87703,32.26004,-0.5537245474620859
74
+ 206.00699,32.114067,-0.6258076431576377
75
+ 206.03018,31.838966,-0.5568796421344882
76
+ 206.13913,31.951334,-0.6331775916520421
77
+ 206.30923,32.761757,-0.5893223678991251
78
+ 206.39952,32.436924,-0.5896666630369354
79
+ 206.48341,31.730963,-0.5741364730563062
80
+ 206.49646,32.40309,-0.5566690076290227
81
+ 206.77965,31.72738,-0.6123740228636962
82
+ 206.86995,32.115643,-0.5608416586289711
83
+ 206.92854,32.0517,-0.6246939246639325
84
+ 207.00159,31.69941,-0.6194871153303225
85
+ 207.08122,32.309772,-0.6060798613325619
86
+ 207.20651,31.754204,-0.6166484366615139
87
+ 207.21309,32.910126,-0.5813153566528981
88
+ 207.24332,31.675657,-0.5980202166751152
89
+ 212.29573,39.28846,-0.6444623863571558
90
+ 224.27069,47.335457,-0.5661041696964321
91
+ 206.13358,33.488094,-0.6074852402469132
92
+ 226.09256,47.6867,-0.6362475765912455
93
+ 210.64293,35.302143,-0.5987487019556038
94
+ 210.81328,33.150513,-0.6018059688729229
95
+ 210.85245,32.815968,-0.5704098722835853
96
+ 210.8568,32.13594,-0.581843610871711
97
+ 210.83629,35.65457,-0.5606882199908048
98
+ 211.10704,35.61177,-0.6365922249379475
99
+ 211.21178,38.66414,-0.5980636069877537
100
+ 211.47302,33.170837,-0.6771737735875608
101
+ 211.6843,39.01213,-0.601324104715165
102
+ 211.82445,38.59338,-0.5634066382354657
103
+ 211.8437,36.290768,-0.6045724917788265
104
+ 212.41968,38.728687,-0.588165237899135
105
+ 212.50969,38.70649,-0.6019313232995143
106
+ 212.52777,39.400173,-0.5759002251671799
107
+ 212.54858,39.409256,-0.5829978941561668
108
+ 212.57089,39.034874,-0.6106339725024332
109
+ 212.57834,39.041847,-0.5632180885029978
110
+ 212.60635,39.467316,-0.6211793590298442
111
+ 212.63184,38.89353,-0.6936387540387613
112
+ 211.11621,38.40168,-0.5547876520003225
113
+ 213.29301,39.866394,-0.6140726758379427
114
+ 213.53786,39.497112,-0.5617939735754495
115
+ 213.66644,39.842617,-0.566054672901568
116
+ 200.12047,33.820747,-0.5741918770782739
117
+ 213.80695,39.703667,-0.5791061453295239
118
+ 213.85506,39.67346,-0.5559516143680534
119
+ 214.10843,39.651253,-0.6262239508275188
120
+ 222.57603,34.093918,-0.648049101844184
121
+ 200.2684,33.151455,-0.5586770375675211
122
+ 206.98126,32.98733,-0.6083544859087308
123
+ 214.58755,39.54192,-0.594390095419699
124
+ 214.85707,39.857384,-0.6064370213153873
125
+ 211.59433,38.82993,-0.5601422957871854
126
+ 222.91837,35.5132,-0.5920160708120491
127
+ 218.83414,47.382477,-0.569823681828731
128
+ 224.99876,47.243427,-0.606673641834868
129
+ 200.71564,35.019714,-0.6049640336266979
130
+ 224.8766,46.6288,-0.5907681207968967
131
+ 211.937,36.20765,-0.5914050563431276
132
+ 219.9522,46.597305,-0.5712539809632176
133
+ 201.04257,33.261486,-0.612917674747236
134
+ 212.25842,36.323418,-0.6156387266234188
135
+ 219.56393,32.862244,-0.5605689993956423
136
+ 219.66956,32.5748,-0.6210184170305761
137
+ 219.79848,32.686592,-0.5592810217733164
138
+ 219.79901,33.785275,-0.7168093201152106
139
+ 219.82674,32.63448,-0.5753305951447605
140
+ 219.89052,33.352432,-0.6049692656256447
141
+ 220.07722,32.767906,-0.7006318458240804
142
+ 220.29765,33.84457,-0.566296673876863
143
+ 220.34712,33.757187,-0.6026759241258309
144
+ 220.42723,33.302834,-0.6500478418131659
145
+ 219.74295,47.307888,-0.6040367003693287
146
+ 206.14038,33.54464,-0.5599020531649982
147
+ 210.67586,32.18062,-0.5791184799751264
148
+ 222.43597,34.342525,-0.587221023224993
149
+ 222.57188,34.573353,-0.5945776151522206
150
+ 222.72176,36.17021,-0.5864638856708192
151
+ 222.73546,35.57169,-0.6601356727954886
152
+ 223.05081,34.027065,-0.5774383871353495
153
+ 223.44524,34.79861,-0.6067579467275153
154
+ 223.44724,36.1347,-0.5610555272001411
155
+ 223.70625,34.51449,-0.555503584624521
156
+ 223.99643,35.66342,-0.6016213504029252
157
+ 219.32945,47.251503,-0.608815626493015
158
+ 219.68648,47.252506,-0.5590208222188274
159
+ 224.5197,47.406647,-0.6595209700694811
160
+ 224.0696,46.916237,-0.608113270953753
161
+ 211.39746,38.423523,-0.59691595851189
162
+ 211.44347,39.15259,-0.5702953258768438
163
+ 225.31096,47.4071,-0.5826233797843896
164
+ 222.83455,46.684982,-0.6051438599646451
165
+ 205.76637,33.096676,-0.5555794166790564
166
+ 211.68022,33.334686,-0.5961098002084769
167
+ 218.09491,47.11061,-0.6362163480872454
168
+ 216.2295,47.73962,-0.5743768974491661
169
+ 219.31471,46.945824,-0.5649871913946566
170
+ 200.61858,33.66162,-0.6196747800170833
171
+ 219.74077,47.24487,-0.5981155199788025
172
+ 223.06969,35.077347,-0.6195896885621592
173
+ 228.27931,37.94177,-0.5568645896913637
174
+ 228.3645,37.973812,-0.5756060290818129
175
+ 228.49507,37.00813,-0.5610068341079185
176
+ 228.55719,37.265854,-0.5945155659896727
177
+ 228.84914,36.79295,-0.5621503558140126
178
+ 228.93855,37.135365,-0.6440655921462716
179
+ 229.04361,37.186684,-0.5778757493297623
180
+ 212.12021,32.224735,-0.5602010832858404
181
+ 229.1178,36.83929,-0.5771535968643262
182
+ 229.1906,36.696434,-0.6094152483033662
183
+ 229.19077,36.889626,-0.6472907403357917
184
+ 229.2292,37.144295,-0.5640068214405909
185
+ 229.2747,37.0816,-0.6533012255736493
186
+ 223.34373,35.891567,-0.6648627179605477
187
+ 229.54259,36.75623,-0.6063604321551223
188
+ 212.24332,35.390007,-0.5676302580353012
189
+ 217.46295,46.53011,-0.5573872988146823
190
+ 225.51064,47.230347,-0.6280639722430795
191
+ 225.8057,47.140423,-0.6014017017096293
192
+ 205.74358,33.297,-0.59648776542504
193
+ 223.63498,34.04843,-0.562211516822322
194
+ 218.98026,47.634544,-0.5668952113750706
195
+ 215.97032,46.73816,-0.6087406795844373
196
+ 227.50311,47.240654,-0.6235747753022507
197
+ 219.34494,32.904804,-0.5941874796892497
198
+ 205.93634,31.748707,-0.576028072731488
199
+ 205.97066,31.835638,-0.5933763569465876
200
+ 206.00267,33.263084,-0.5717152586869263
201
+ 223.929,36.42147,-0.5602031827041053
202
+ 219.56244,32.693924,-0.5602242493196115
203
+ 222.10153,47.674393,-0.555397823120572
204
+ 206.24904,31.802961,-0.7125365162191757
205
+ 219.70418,32.582756,-0.6367975850103503
206
+ 228.71115,37.252575,-0.6298185861334504
207
+ 224.81299,47.517773,-0.5779536529468127
208
+ 210.95143,33.569786,-0.6335829976655191
209
+ 216.78508,47.259075,-0.6613321470217932
210
+ 206.69695,32.90637,-0.609910373920131
211
+ 211.99275,38.3277,-0.6069966356188836
212
+ 223.31084,46.48638,-0.6769478466902171
213
+ 223.35246,46.485462,-0.6779575288414771
214
+ 222.56502,36.513935,-0.6077750053272429
215
+ 211.39828,38.754696,-0.5616589310996815
216
+ 222.69455,36.167004,-0.6741968879487549
217
+ 222.74599,47.530132,-0.569664952007007
218
+ 219.40982,47.672005,-0.5917026923590818
219
+ 211.6404,38.38539,-0.5887307860645821
220
+ 219.35918,46.67046,-0.60480928257622
221
+ 212.08089,33.03165,-0.6007648075719927
222
+ 222.34369,47.35065,-0.5879728632814807
223
+ 212.11871,31.815794,-0.6302967228558736
224
+ 223.30116,35.969868,-0.5586866983049844
225
+ 212.12698,36.495354,-0.6237574265822019
226
+ 223.3763,34.7923,-0.5728153022934084
227
+ 212.20108,38.540554,-0.5939662515907348
228
+ 219.80396,46.843464,-0.595464341439691
229
+ 205.70216,33.306023,-0.558505411106937
230
+ 223.61409,35.44088,-0.6368079425050536
231
+ 205.78004,33.76482,-0.5941471438933146
232
+ 219.83786,47.291893,-0.6448251128778545
233
+ 219.70135,46.78622,-0.5785797729920847
234
+ 225.61334,47.25961,-0.6425830486310952
235
+ 201.58698,31.72249,-0.688416995243427
236
+ 223.95187,36.039677,-0.6054070378731597
237
+ 224.20229,35.48768,-0.5659705197242403
238
+ 219.98111,47.30258,-0.5606282661077158
239
+ 222.96446,46.490948,-0.5815485517953743
240
+ 211.05383,38.733627,-0.6008758019830466
241
+ 211.09053,33.476147,-0.6299236749109145
242
+ 211.24315,38.634235,-0.7119215393047873
243
+ 215.99352,47.235878,-0.6363884958036011
244
+ 216.33784,47.245285,-0.6671713040057737
245
+ 223.83412,47.496624,-0.6460088176465577
246
+ 222.7272,47.302494,-0.5844506502967335
247
+ 222.99913,46.751015,-0.6356912817835798
248
+ 211.39856,38.75381,-0.5884251839445539
249
+ 222.66629,34.42808,-0.5895794022078413
250
+ 222.7257,35.143856,-0.566908020832897
251
+ 222.83011,36.316166,-0.6076284184468513
252
+ 222.83278,36.315655,-0.56971411800722
253
+ 200.06,33.899506,-0.6282724163759763
254
+ 207.21243,31.768005,-0.6576804553517467
255
+ 211.77324,32.046455,-0.670542861316147
256
+ 217.4446,46.714607,-0.5745735932552493
257
+ 200.64491,33.157143,-0.6471539080072187
258
+ 211.87059,38.467915,-0.5620358672113765
259
+ 223.12976,35.34915,-0.6042035791198339
260
+ 213.37685,39.709454,-0.5651321316592149
261
+ 219.50427,46.69559,-0.5707640812688742
262
+ 219.75996,46.695293,-0.5559549588660394
263
+ 223.33229,34.02187,-0.5569594533651612
264
+ 219.7207,46.674423,-0.6858684845460824
265
+ 219.45872,47.034668,-0.5663423059710004
266
+ 212.2097,38.992966,-0.6138614394060123
267
+ 219.21396,47.68608,-0.5680497252796495
268
+ 216.48073,46.481537,-0.5626232537984583
269
+ 222.87622,47.267452,-0.5748297383437533
270
+ 219.44644,33.34785,-0.558589038219422
271
+ 218.0475,47.841133,-0.5645063302210299
272
+ 224.71503,46.547832,-0.608234898410591
273
+ 206.21326,32.526016,-0.7111195406207801
274
+ 216.02274,47.642952,-0.5665303462246929
275
+ 219.81471,33.33526,-0.6248623972640455
276
+ 210.94124,32.0004,-0.6585076110865062
277
+ 210.94652,35.741676,-0.7194618273177658
278
+ 202.01907,34.31152,-0.7015330741562368
279
+ 225.61803,46.674896,-0.5723039016302445
280
+ 205.8765,32.22188,-0.6105517207001179
281
+ 206.59183,31.800785,-0.5652848645046274
282
+ 219.68506,47.537968,-0.5771996032189316
283
+ 210.92648,32.99119,-0.5553045831892786
284
+ 222.38347,34.913834,-0.5546015507585168
285
+ 200.03183,32.856133,-0.7160977424000261
286
+ 211.2138,32.1434,-0.560508170500413
287
+ 220.30243,32.89001,-0.5989589957004252
288
+ 211.42117,35.98351,-0.647695399590087
289
+ 224.62692,46.52434,-0.5680783220631186
290
+ 217.12424,46.832558,-0.5623939675008774
291
+ 207.03954,32.582333,-0.5662401829845286
292
+ 219.82018,46.754856,-0.5618618777518325
293
+ 222.80998,35.542118,-0.7252712755290388
294
+ 211.73944,38.969215,-0.6101007747131342
295
+ 206.62093,31.840519,-0.6135952315620742
296
+ 211.82008,35.52303,-0.596708577188052
297
+ 223.12796,36.243114,-0.6780973146997797
298
+ 218.6748,47.243122,-0.5632019066799581
299
+ 212.01659,31.989616,-0.5778540276742009
300
+ 212.0365,33.79927,-0.5778888741396954
301
+ 219.34125,47.253494,-0.5933471151735913
302
+ 226.16415,47.4365,-0.5853809379451742
303
+ 218.44777,47.220814,-0.6465787890357562
304
+ 223.45518,34.39159,-0.5984404511423297
305
+ 212.4783,38.10973,-0.5757423583370173
306
+ 201.41113,33.68046,-0.7001001719321747
307
+ 223.30237,35.97214,-0.5780772113785858
308
+ 224.25931,35.55065,-0.6925239324467983
309
+ 219.4925,32.70068,-0.5644043115631001
310
+ 201.60884,32.290596,-0.6180791286119631
311
+ 228.45468,37.97749,-0.6612649781784813
312
+ 216.18149,47.032627,-0.6384564444800287
313
+ 224.20563,36.49883,-0.6611884581020797
314
+ 210.8478,32.81645,-0.6169228530425417
315
+ 210.85153,33.061066,-0.6264618516148622
316
+ 210.98184,31.72497,-0.621554384598006
317
+ 206.56665,32.76978,-0.5716473975066376
318
+ 223.3885,47.09354,-0.577146964003476
319
+ 216.77759,46.474823,-0.5705134283823594
320
+ 220.04477,33.356194,-0.5873991308219549
321
+ 226.53406,47.049088,-0.6303280861009763
322
+ 229.16681,37.212566,-0.5761756717533421
323
+ 200.09956,33.176804,-0.6011555141221244
ExampleCode/example1/anomalies_with_fastspecfit_bpt.csv ADDED
@@ -0,0 +1,314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ra,dec,anomaly_score,filename,index_in_file,ra,dec,z,helpha_flux,nii_6584_flux,hbeta_flux,oiii_5007_flux,dn4000,hdelta_ew,vdisp
2
+ 200.19305,33.443726,-0.6930316796112987,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,518,200.19305924442443,33.443724778729994,0.0343063969061808,0.0,0.0,0.0,3.1295378,2.04159,1.668341,162.29738
3
+ 220.35742,33.72618,-0.5619702131612299,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,1248,220.3574195641044,33.72618010519572,0.1815831098501453,11.701393,6.5269723,0.014729375,2.4300866,1.7600622,1.5904528,158.3329
4
+ 218.21674,47.768574,-0.6189931296508746,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,4105,218.2167289496506,47.76857409822143,0.2859439359605082,33.544243,20.763424,7.632061,3.2754557,1.6246678,1.8248686,336.80478
5
+ 224.97906,47.63954,-0.5917523232022385,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4473,224.97907157838284,47.63954128860117,0.3292178817551113,46.171604,19.413092,10.531518,4.9221544,1.2734464,3.6211343,394.24063
6
+ 200.29968,31.729654,-0.5786086053982126,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=649/001-000.hdf5,385,200.2996858897432,31.729654478400768,0.1279681727622484,22.169073,20.475023,6.7495565,9.37232,1.7048742,0.0,196.23938
7
+ 223.13959,36.13852,-0.5855118386973505,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,479,223.1395931015776,36.13851859287507,0.1221636506879343,0.0,6.455571,0.0,0.7606706,1.8232591,0.0,218.83289
8
+ 224.76053,47.418983,-0.5720925415138971,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4569,224.7605285139694,47.418983690702255,0.0865251283940239,4.609281,15.706084,2.3353944,8.821846,1.7286868,0.6246338,184.04753
9
+ 217.32109,46.852432,-0.577233879122645,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,3310,217.32109434089563,46.85243338143166,0.2205435676215131,59.29362,43.09025,5.9881806,18.172663,1.6301978,0.0,63.731575
10
+ 228.93903,36.706173,-0.5689133460036013,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-001.hdf5,2120,228.9390293825037,36.70617109123725,0.1950075841693564,146.80438,57.652664,32.53454,1.1585485,1.3725106,2.8531868,125.0
11
+ 212.11525,33.205482,-0.5898777332408975,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,2394,212.115255014566,33.20548386455542,0.3425285848151238,30.67521,10.673882,14.167748,0.17902084,1.481198,0.75895274,125.0
12
+ 212.13579,33.16155,-0.6243711700507368,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,2241,212.13579468513004,33.161550481732206,0.2542479248727974,40.76484,25.875357,6.278582,3.085951,1.9874376,1.0232004,120.65612
13
+ 205.59035,32.690517,-0.6097489913166909,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-001.hdf5,68,205.5903494576989,32.69051781498831,0.3755669794054338,25.251226,10.187649,10.183599,2.952541,1.3391865,0.8771074,125.0
14
+ 219.83424,46.86007,-0.5574332297733766,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1119,219.8342416473574,46.86006985206804,0.3011260978809559,11.567794,20.456682,1.8185974,15.619151,1.3472403,0.9917974,129.00739
15
+ 226.28036,46.963696,-0.5923697736365776,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=705/001-000.hdf5,3780,226.2803680873732,46.963695730304295,0.0377137482793957,289.48236,96.03292,80.29495,30.222914,1.2453047,1.3990825,125.0
16
+ 222.7845,47.675457,-0.5815100892096293,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,100,222.7845057697953,47.6754572561875,0.2555093796030173,48.005295,17.874546,8.131941,5.4859114,1.2839929,0.38702363,125.0
17
+ 205.69641,32.42519,-0.5672470017979784,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4858,205.6964042829116,32.42518825202579,0.189421655941009,61.804474,23.856216,16.740828,4.720527,1.4240438,0.0,395.3502
18
+ 215.9645,47.10679,-0.6096682280563198,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,2357,215.9644957625781,47.10678873628945,0.1684604097301251,0.0,3.7492428,0.0,12.165534,1.9283041,0.0,341.88303
19
+ 212.16959,32.59188,-0.5683391632649394,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,74,212.16958241556705,32.59188074732092,0.191082971630363,0.0,0.0,2.0046709,16.7322,2.0642247,1.0998353,347.28912
20
+ 225.21576,47.30673,-0.5937442856152948,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4395,225.21575862763004,47.30672733710575,0.231386497408801,35.592216,18.119886,5.268182,3.386487,1.6014321,1.0757612,125.0
21
+ 219.57034,47.352955,-0.5556436382203152,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,1294,219.5703470255049,47.35295464144728,0.0950303054838077,0.0,9.123637,0.0,0.0,2.1123557,0.2224029,239.12633
22
+ 224.01189,36.243046,-0.6695349974551924,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,1799,224.01188541773564,36.24304626196033,0.0472313120185995,129.3738,119.57966,26.353537,21.31139,1.4268224,0.32690594,91.21222
23
+ 222.963,46.913734,-0.5793439664467084,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1050,222.96299893819668,46.91373521018148,0.076043879566273,41.684826,35.362488,9.43389,6.708354,1.6678497,0.4975586,100.551994
24
+ 210.7116,32.92613,-0.5778126897217477,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,2599,210.71159367983148,32.9261302932211,0.1476382299082023,73.85395,42.593975,15.098367,7.1452107,1.3654661,0.7190586,91.65019
25
+ 210.91286,35.773186,-0.5600545266906618,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-001.hdf5,800,210.91285383161784,35.773186728036734,0.0133403466239761,13.649347,2.275988,4.354769,9.20346,1.6012939,3.2976995,125.0
26
+ 211.00102,32.670048,-0.6242225858420763,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=645/001-000.hdf5,3312,211.0010167338634,32.67004806893381,0.0671597962590391,14.284497,53.465183,12.594709,19.433619,1.9349676,1.1048987,293.79504
27
+ 226.92117,46.89221,-0.6103942130253949,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=705/001-000.hdf5,1263,226.92118065891,46.892207161877565,0.0905692343984707,699.1391,164.21088,163.69133,178.81459,1.1030179,2.24335,362.03806
28
+ 219.89328,46.63121,-0.6413601162909434,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,627,219.8932850479245,46.63120865207797,0.0375364890667122,1684.9369,813.02466,260.66617,90.362076,1.2437927,2.8132715,110.71867
29
+ 200.04846,33.09609,-0.6771650566707986,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,630,200.04846720021123,33.09608833422207,0.0396385996701661,84.131096,44.45386,9.918953,8.187026,1.7141064,0.6740512,70.03848
30
+ 223.0503,46.521004,-0.5628563220725986,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1315,223.05029934664813,46.52100280670349,0.0721267166692352,2.0307114,13.6547785,0.0,11.176326,2.0280647,0.0,173.46309
31
+ 219.58582,47.816025,-0.617485136663874,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,2490,219.5858130520594,47.81602561856626,0.2460078607801517,0.0,1.4027765,4.4766035,0.0,2.680429,2.5337577,157.76195
32
+ 200.23062,33.902607,-0.6557414604975511,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,869,200.2306247950612,33.90260802325843,0.1797854124313932,0.0,9.785126,6.1485534,5.8740244,1.8656517,0.2940471,297.73224
33
+ 224.42175,47.216965,-0.6271035115846311,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4591,224.4217568924908,47.21696661867415,0.0850491675107326,96.126434,81.75871,47.881783,34.330124,2.010385,0.52510005,271.93787
34
+ 211.56627,35.795273,-0.7077425872138497,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3347,211.56626236843644,35.79527249718016,0.0269179017288922,234.1024,79.274506,62.1393,6.6741495,1.3705786,0.92396975,125.0
35
+ 222.83739,35.504044,-0.5836484389319461,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,740,222.8373895831141,35.50404452434604,0.1047305402923954,123.14245,24.011309,24.859426,43.34396,1.2856913,0.0,125.0
36
+ 222.83969,34.44721,-0.6072835613043173,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1816,222.83968564695525,34.44721007212757,0.1551261355597668,18.551071,12.908168,3.9302208,2.932675,1.1998602,0.0,141.58092
37
+ 211.72879,33.472313,-0.5824126280048473,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,2196,211.72878583291987,33.4723114586313,0.3303006629130588,54.224686,16.342693,11.063623,13.370103,1.2430671,0.21980469,125.0
38
+ 219.30371,47.499092,-0.5599966720366738,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2581,219.3037100412387,47.49909142241468,0.1846300938520471,0.0,10.060135,0.0,2.4128926,1.6125512,1.0525064,113.40818
39
+ 219.0164,46.743916,-0.5648288494412933,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1261,219.0164032088993,46.74391728678388,0.2745691281919983,38.766983,27.53382,3.3798504,5.189906,1.4134003,0.0,137.99214
40
+ 223.08978,36.091084,-0.5841514545595019,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,477,223.0897842296164,36.09108448968527,0.0707606977282446,30.590155,35.352654,3.9749823,20.392942,1.8643974,0.0,154.67648
41
+ 222.33034,47.44863,-0.5710990093546388,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,3058,222.3303352590996,47.44863230196504,0.1622167030680589,63.759056,17.164026,21.630444,18.196495,1.2350461,1.0986282,125.0
42
+ 212.09677,36.199924,-0.5812158359114539,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,4104,212.0967724184268,36.199924746070366,0.173282077781452,13.54374,15.260717,0.44516045,6.347724,1.5528253,0.8225291,144.3078
43
+ 223.4386,34.389263,-0.5706426646588099,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,3792,223.4385941059093,34.38926152658966,0.2186607382648306,197.02957,80.62603,40.7879,7.0163593,1.1962504,1.7506077,125.0
44
+ 224.93661,47.07267,-0.5760161695683038,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4449,224.9366209686408,47.072671531941545,0.2055615850919092,0.0,4.208838,0.0,1.7497872,1.9096621,0.0,264.22485
45
+ 225.63454,47.293297,-0.566237520746517,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4756,225.6345331923442,47.29329832691437,0.0836408246355768,39.496693,26.057682,5.8202305,2.5624068,1.6925266,0.0,124.72639
46
+ 201.21243,33.26414,-0.594847745756717,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,991,201.21243861542587,33.2641399298698,0.1945976580408478,32.275528,14.408648,11.19581,3.7737694,1.4141546,0.8630274,139.6687
47
+ 224.42151,46.822662,-0.5615085424128482,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4102,224.42150906071527,46.822660938104384,0.4991303158061358,0.0,0.0,3.837246,0.0,1.7117543,0.45246977,280.5234
48
+ 224.87427,47.76158,-0.5599291686456922,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4554,224.87426408944484,47.761582551052456,0.1449827202299946,4.884886,5.428815,1.6076049,5.7064085,1.9510121,0.0,137.41873
49
+ 206.00899,32.11525,-0.6488928897939612,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4604,206.00898250243657,32.11524775609827,0.1027756745791712,8.671251,15.87902,4.5115747,11.050366,2.142722,0.9336052,223.28067
50
+ 223.06161,47.001293,-0.5931704281526834,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,3775,223.0616210535607,47.00129482809106,0.0860072734465668,122.69132,61.706615,36.461952,19.240562,1.621557,0.9362112,168.05334
51
+ 200.02356,33.287064,-0.5745143414030865,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,231,200.02355633595155,33.28706350649918,0.0340574561903357,102.2948,52.111813,24.137001,19.449585,1.5548453,0.24182859,125.0
52
+ 200.06491,33.297512,-0.6915292696802472,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,223,200.06490626468783,33.29751046696272,0.0357816356839197,0.0,23.570286,0.0,0.0,2.0298402,0.5271562,189.12274
53
+ 200.2609,33.339485,-0.7275117594014705,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,543,200.26089421008896,33.339483930945335,0.0365231918941089,22.186289,93.97089,0.0,0.0,2.0162902,0.11195589,284.89755
54
+ 200.54095,32.74289,-0.6011052875469948,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,420,200.5409605188636,32.742888974873125,0.0389025886479906,132.68816,69.978745,37.34377,7.870204,1.590646,0.19280377,92.58403
55
+ 201.13945,31.67151,-0.5541432687311584,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,4765,201.1394456137627,31.671510405817955,0.0157042529275299,2.3524148,3.5928018,5.4790983,4.246914,1.5908474,1.2105498,125.0
56
+ 201.18198,32.54029,-0.7229205273308329,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,4409,201.18197431276528,32.5402893642906,0.0397820921263507,5458.167,3199.113,982.9366,729.4028,1.2184215,1.228747,375.87613
57
+ 201.1878,32.516823,-0.5997876971564051,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,4419,201.1878049962727,32.51682246438476,0.0243643677851214,10.820844,26.964106,0.0,43.04428,1.8825213,0.62308985,65.3587
58
+ 201.25839,33.271908,-0.598830387000561,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,987,201.2583964570045,33.27190894235522,0.1035532628864396,59.16318,26.343004,12.230872,7.044405,1.6835968,2.6431098,125.0
59
+ 201.73921,32.383,-0.6668698248492971,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,222,201.73921160838265,32.38300079673323,0.0999187315274107,0.0,13.877981,11.784263,14.029617,2.0588653,0.21812959,347.52975
60
+ 201.74942,32.706326,-0.5581080369827209,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,4903,201.74942354184213,32.70632603618168,0.0242890821311472,0.0,4.6906567,4.458124,2.7374365,1.8348471,0.07974044,99.54372
61
+ 201.79012,33.501156,-0.5842210665034255,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,4957,201.790111117366,33.5011541170638,0.1338037703217408,0.0,13.136049,0.0,11.772675,1.8926485,1.0458214,276.22415
62
+ 201.8101,33.786076,-0.5924704480147599,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,2304,201.81010032989985,33.786076906612,0.039572923619018,463.93637,197.40096,103.23579,26.665054,1.433467,1.1664426,130.72394
63
+ 201.87544,33.392143,-0.6260645979487105,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,4961,201.8754391735282,33.3921437626614,0.0359498826171761,567.5528,446.27744,120.51637,274.4664,1.665294,0.9467856,165.0971
64
+ 201.92282,34.35722,-0.5849633159190043,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,2369,201.92282306282905,34.357221562592315,0.0343793954134015,0.0,26.734838,7.2940063,4.257527,1.792479,1.322652,146.6718
65
+ 202.48431,32.232494,-0.6175727530244329,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,655,202.4843143010023,32.23249263606264,0.1389815163741137,0.0,10.83329,18.531168,0.0,1.887573,0.30687627,193.88425
66
+ 207.0826,32.0275,-0.6956250006462609,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3668,207.0825931405956,32.02750157035022,0.0801399706436009,18.643217,53.649597,0.036278352,22.863344,1.9498808,0.24249217,237.07874
67
+ 225.50099,47.11725,-0.6626593644860734,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4830,225.50099361513813,47.11724767191799,0.4123073390398996,3.5633779,5.322578,3.4070137,7.519645,1.9217192,1.2859493,175.13623
68
+ 225.43314,47.5701,-0.6122573612878669,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4831,225.433138415303,47.57009804750207,0.2021655451911654,33.421776,17.74692,4.7452693,6.255411,1.6987009,4.5206285,125.0
69
+ 200.58075,33.889343,-0.5960476641403275,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,990,200.58075704401665,33.88934343397551,0.3743202097062087,18.251879,14.091039,6.565206,2.1679301,1.5050137,1.9202901,77.59964
70
+ 205.87703,32.26004,-0.5537245474620859,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4606,205.8770264579534,32.260039891449985,0.165043034777569,0.0,0.9496397,0.0,0.35828102,1.7472262,1.9600616,194.9768
71
+ 206.00699,32.114067,-0.6258076431576377,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4523,206.00699482403377,32.11406541102019,0.103196282062254,0.0,0.0,0.0,4.364116,1.9091669,0.94135356,169.3539
72
+ 206.03018,31.838966,-0.5568796421344882,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=646/001-000.hdf5,4778,206.0301764967681,31.838966500335463,0.0788855066680599,56.5344,24.380386,15.269197,6.0548477,1.3966492,1.3161752,97.55143
73
+ 206.13913,31.951334,-0.6331775916520421,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=646/001-000.hdf5,4766,206.1391257732112,31.95133427279436,0.3446268109807492,0.0,0.0,0.0,1.518941,2.1055892,1.5975788,252.75848
74
+ 206.30923,32.761757,-0.5893223678991251,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4666,206.30924172305865,32.761755637580755,0.1644824939538681,23.36069,13.48482,2.6613388,6.0080833,1.5540636,1.8518265,116.36514
75
+ 206.39952,32.436924,-0.5896666630369354,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3958,206.3995145462756,32.43692477483224,0.1333823726537826,30.900303,26.13315,1.5016136,6.757316,1.7948401,0.0,169.80815
76
+ 206.48341,31.730963,-0.5741364730563062,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4050,206.48341653769336,31.73096234258783,0.3428153781617297,18.235163,14.299304,3.2681048,6.303649,1.500911,0.0,199.46442
77
+ 206.49646,32.40309,-0.5566690076290227,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3587,206.4964648803969,32.4030920265069,0.086250836813975,20.75456,29.98846,0.0,10.30701,1.8349515,0.52225286,163.35898
78
+ 206.77965,31.72738,-0.6123740228636962,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4094,206.77965387342672,31.72737993215746,0.1158036184895423,17.599953,52.64966,2.91634,18.757751,1.7461296,0.11843636,218.94588
79
+ 206.86995,32.115643,-0.5608416586289711,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3808,206.8699435925978,32.11564073306392,0.1074534847594947,78.90822,49.283077,6.0953884,5.8237715,1.519044,0.03562138,143.68477
80
+ 206.92854,32.0517,-0.6246939246639325,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3662,206.9285428177548,32.0517011424404,0.1075529205193271,38.07781,24.340185,6.7555914,7.3738465,1.7019628,0.0,197.7783
81
+ 207.00159,31.69941,-0.6194871153303225,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4165,207.001594494217,31.69940897501129,0.1987007349733261,0.0,3.0843742,0.4815168,0.19149244,2.0109618,0.0,77.93035
82
+ 207.08122,32.309772,-0.6060798613325619,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3667,207.08121515503737,32.309771923766654,0.163545214691702,0.0,0.0,12.0425005,0.0,2.1390398,0.0,326.3595
83
+ 207.20651,31.754204,-0.6166484366615139,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,1127,207.20651397910143,31.75420387753708,0.1065807729707902,11.271789,11.850342,0.0,0.0,1.8284445,0.87155294,170.73048
84
+ 207.21309,32.910126,-0.5813153566528981,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4324,207.21309367339447,32.91012618252359,0.1944679851553689,1.0747736,4.8003674,2.6386006,6.2366476,1.5625354,0.65093094,120.43932
85
+ 207.24332,31.675657,-0.5980202166751152,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,1111,207.243312105534,31.675658178620367,0.0760450093763785,4.0224624,12.887316,0.0,7.8925886,2.0682714,0.4021392,216.6748
86
+ 212.29573,39.28846,-0.6444623863571558,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4668,212.29572729739496,39.28845866917107,0.3523514935677235,40.476967,13.044783,10.372715,7.89279,1.1488165,2.7687988,177.3769
87
+ 224.27069,47.335457,-0.5661041696964321,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4514,224.2706961343229,47.33545732165221,0.1360163461397858,0.0,12.464649,3.7781096,1.2228712,2.0113862,0.0,301.08035
88
+ 206.13358,33.488094,-0.6074852402469132,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-001.hdf5,129,206.13358107594075,33.48809456522228,0.2739931985305081,0.79417723,0.1487888,5.8457084,0.0,1.7899655,1.5389441,220.4389
89
+ 226.09256,47.6867,-0.6362475765912455,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=705/001-000.hdf5,4664,226.09255430835245,47.68669715018158,0.0933861996400477,184.60187,144.15887,32.058487,15.440179,1.811719,0.29084396,300.61115
90
+ 210.64293,35.302143,-0.5987487019556038,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,1708,210.64292425767096,35.30214254064556,0.466394972343971,54.03332,18.863293,16.772726,8.307977,1.0934554,1.3408453,125.0
91
+ 210.81328,33.150513,-0.6018059688729229,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,101,210.8132840983208,33.15051387101775,0.0626315598738335,474.91568,476.01624,50.329693,295.18732,1.4722034,0.5305707,157.75453
92
+ 210.85245,32.815968,-0.5704098722835853,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,2626,210.852445208131,32.81596670233385,0.2933952148845262,13.031618,0.0,0.45714527,2.0987911,1.8312287,0.13459975,157.85374
93
+ 210.8568,32.13594,-0.581843610871711,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=645/001-000.hdf5,3646,210.85679242090777,32.135938745178606,0.1165942410969168,96.55597,20.354279,27.716656,24.89311,1.3030288,2.0120647,125.0
94
+ 210.83629,35.65457,-0.5606882199908048,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-001.hdf5,18,210.8362906921042,35.6545703924217,0.3392191296493043,73.83673,89.31965,20.744759,82.43235,1.5053855,2.2625399,180.77463
95
+ 211.10704,35.61177,-0.6365922249379475,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3484,211.1070329624476,35.61177055380295,0.027266545300458,119.71564,44.160084,37.635246,7.2889643,1.4123491,0.3094304,125.0
96
+ 211.21178,38.66414,-0.5980636069877537,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4080,211.21177114237528,38.6641392402956,0.0640495652840224,34.78704,56.92076,0.0,23.881334,2.052838,0.5506668,191.18707
97
+ 211.47302,33.170837,-0.6771737735875608,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,1486,211.473027373856,33.1708379494616,0.0545837896154792,0.0,66.03611,0.0,0.0,2.0488505,0.39095822,266.29742
98
+ 211.6843,39.01213,-0.601324104715165,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3753,211.68428987765725,39.01212954702455,0.211787656312605,0.01942657,2.4512324,0.0,1.707608,1.8512852,0.5878976,182.66818
99
+ 211.82445,38.59338,-0.5634066382354657,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4371,211.8244421603893,38.593379969381694,0.1399504839559008,3.6988332,19.386808,0.21946427,10.769871,1.9768147,0.67482287,224.37392
100
+ 211.8437,36.290768,-0.6045724917788265,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,4203,211.84370277548567,36.290767553626814,0.1640405511491878,0.0,8.427735,2.7709746,4.82846,1.9911486,0.0,376.21762
101
+ 212.41968,38.728687,-0.588165237899135,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3238,212.4196726074984,38.72868716072999,0.4308398942362837,84.58413,29.84395,26.288927,23.725332,1.2391694,1.4008379,125.0
102
+ 212.50969,38.70649,-0.6019313232995143,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3491,212.5096957881894,38.70648878770626,0.0254046838449561,95.00908,28.681293,9.904182,3.727456,1.192345,1.2656068,255.8642
103
+ 212.52777,39.400173,-0.5759002251671799,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4768,212.5277712111112,39.40017322665678,0.0953865104469184,4.0339127,21.272093,6.0873013,6.8741446,1.93562,1.1174482,197.87987
104
+ 212.54858,39.409256,-0.5829978941561668,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4770,212.54859109540627,39.409257805643286,0.0957025804048368,62.531067,81.259575,8.660412,16.484186,1.9066255,0.48014888,232.9337
105
+ 212.57089,39.034874,-0.6106339725024332,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,65,212.57088704014035,39.034874040150726,0.2566611350947865,0.0,0.8762979,0.0,0.0,1.7821372,0.0,229.96886
106
+ 212.57834,39.041847,-0.5632180885029978,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4673,212.5783364219272,39.04184867446266,0.2114715311799801,0.0,6.4059544,0.0,0.0,2.4245684,0.0,257.66064
107
+ 212.60635,39.467316,-0.6211793590298442,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,211,212.60636014801503,39.46731392373784,0.0956716279611148,443.43948,166.7696,93.173195,24.89545,1.2152063,1.4550186,132.41571
108
+ 212.63184,38.89353,-0.6936387540387613,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,2993,212.6318323463921,38.8935310081632,0.0255831708538627,121.24634,70.45137,33.40885,46.61589,1.6076778,0.6716498,71.762566
109
+ 211.11621,38.40168,-0.5547876520003225,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-001.hdf5,1836,211.1162130552622,38.401678938986805,0.1386694633110824,0.0,47.111797,0.0,4.655442,1.9610288,0.0,253.12947
110
+ 213.29301,39.866394,-0.6140726758379427,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,2610,213.2930161270885,39.86639319409584,0.020724539962755,901.6638,356.52322,204.63278,123.7038,1.37242,2.1267896,73.10862
111
+ 213.53786,39.497112,-0.5617939735754495,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,482,213.53785445211983,39.49711372839428,0.0431563723593559,152.00291,69.32567,36.585594,40.793663,1.448733,0.80287176,228.37401
112
+ 213.66644,39.842617,-0.566054672901568,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,719,213.66645008010505,39.84261695702546,0.2884659440950299,85.37928,29.668833,21.11754,8.766691,1.331178,2.8547058,125.0
113
+ 200.12047,33.820747,-0.5741918770782739,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,1107,200.12047293866527,33.8207459750785,0.1118597107810325,13.342489,34.51986,0.0,3.188223,1.8528523,0.97340286,225.91655
114
+ 213.80695,39.703667,-0.5791061453295239,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,717,213.80694618788576,39.703667768463255,0.0425444175972489,1539.9432,485.44247,346.3773,212.8216,1.2012135,2.618088,125.0
115
+ 213.85506,39.67346,-0.5559516143680534,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,708,213.85505467549265,39.67345655763509,0.2576344132085498,23.113068,16.149668,10.935778,4.303281,1.5649688,0.0,110.17751
116
+ 214.10843,39.651253,-0.6262239508275188,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,562,214.1084363534509,39.65125142861267,0.0254503756554625,27.92884,20.052586,1.1916468,2.8574893,1.5503192,0.41022223,125.0
117
+ 222.57603,34.093918,-0.648049101844184,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1709,222.5760395559512,34.093917492113086,0.089155891847577,3.6732945,19.671986,0.0,3.8772118,1.9923276,0.0,270.28528
118
+ 200.2684,33.151455,-0.5586770375675211,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,561,200.26839531316344,33.15145647051468,0.1196310800036571,0.0,13.484382,0.0,0.0,1.9692236,0.12680204,301.3307
119
+ 206.98126,32.98733,-0.6083544859087308,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4207,206.98125974963,32.98733029528872,0.1611008251001568,0.105566956,4.7902336,4.0942626,5.0955386,1.8559214,1.00057,75.01639
120
+ 214.58755,39.54192,-0.594390095419699,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,1983,214.58755908956667,39.54191872025695,0.2614905674351391,19.60288,15.98745,2.734782,1.2283802,1.8041553,1.1057148,153.15163
121
+ 214.85707,39.857384,-0.6064370213153873,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,1535,214.8570696990949,39.85738225564789,0.0054464482407823,1078.9054,80.46467,367.11935,1077.3285,1.1300904,3.9371824,125.0
122
+ 211.59433,38.82993,-0.5601422957871854,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3930,211.5943229109224,38.82993087556921,0.0701205850618111,1374.1403,252.5842,372.7128,805.32416,1.1221515,4.6841855,354.14713
123
+ 222.91837,35.5132,-0.5920160708120491,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,430,222.9183637937329,35.51319777262585,0.3688895658415224,35.247227,16.779707,2.9674067,2.8514087,1.8918798,1.8079698,269.1782
124
+ 218.83414,47.382477,-0.569823681828731,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2269,218.8341341311609,47.3824785617545,0.0745046133980712,4.5406785,68.62229,0.0,10.664129,1.8262026,0.24213488,174.25041
125
+ 224.99876,47.243427,-0.606673641834868,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4476,224.99876961391456,47.24342700209724,0.0884543272406851,74.65757,49.285107,5.4270163,14.406216,1.6656307,0.0,165.74397
126
+ 200.71564,35.019714,-0.6049640336266979,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,2739,200.7156423447873,35.0197136245017,0.1301835803804129,4.987716,4.8324127,0.5012143,0.0,1.8825408,1.2074434,71.95352
127
+ 224.8766,46.6288,-0.5907681207968967,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,3895,224.87660554309284,46.62879815572196,0.0973582161679877,0.59842885,10.68485,0.0,8.609838,1.9551188,0.5665278,234.09956
128
+ 211.937,36.20765,-0.5914050563431276,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3883,211.937000017882,36.207648863121584,0.1637330853832733,0.0,3.5354424,0.0,0.0,2.0566583,0.0,211.3913
129
+ 219.9522,46.597305,-0.5712539809632176,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,832,219.95220073020388,46.59730432582713,0.4028638287473299,0.0,6.4310637,0.008039239,0.13711749,1.4550163,0.0,170.71991
130
+ 201.04257,33.261486,-0.612917674747236,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,959,201.042577992498,33.2614861705324,0.0352774866139583,461.5791,250.8647,68.25791,99.35406,1.3960756,1.396961,194.4545
131
+ 212.25842,36.323418,-0.6156387266234188,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3775,212.25842649119696,36.32341830131969,0.0110697181454592,163.71632,104.38179,70.155495,43.566128,1.3181894,2.1876454,316.11493
132
+ 219.56393,32.862244,-0.5605689993956423,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-000.hdf5,4877,219.56393043589685,32.8622430208386,0.4951273643794364,43.83611,0.0,8.756644,1.8934585,1.4010749,0.87323743,183.5364
133
+ 219.66956,32.5748,-0.6210184170305761,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,185,219.66955145992537,32.574797965348374,0.2514618204387289,6.5272965,6.7401905,0.3336855,3.7614493,1.9571998,0.00032769376,257.41364
134
+ 219.79848,32.686592,-0.5592810217733164,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-000.hdf5,4742,219.7984803327828,32.68659132425678,0.2513475344033499,118.796974,45.667683,22.835281,4.8570075,1.1951044,1.5274028,102.598976
135
+ 219.79901,33.785275,-0.7168093201152106,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,3938,219.79900537541417,33.78527349761495,0.0475878655595121,8.8137455,37.277992,2.2266881,22.33169,1.9655448,0.26227197,222.16867
136
+ 219.82674,32.63448,-0.5753305951447605,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,124,219.82674346397613,32.63448123041645,0.3429463701138904,10.191678,11.186805,1.7113514,3.8219228,3.6783407,0.0,171.06001
137
+ 219.89052,33.352432,-0.6049692656256447,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,4118,219.89051989904883,33.352431243383364,0.2419174382323575,0.0,0.54296356,1.207454,7.370367,2.087663,0.32500294,178.01915
138
+ 220.07722,32.767906,-0.7006318458240804,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-000.hdf5,4913,220.07722921029185,32.767906334791924,0.0908292072791342,161.8592,368.0356,39.2706,347.0914,1.588741,0.5401367,156.59846
139
+ 220.29765,33.84457,-0.566296673876863,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,4289,220.29764943456183,33.84456941775816,0.0860597316195983,83.42156,75.74049,6.4498215,15.866237,1.6146117,1.1312429,202.01173
140
+ 220.34712,33.757187,-0.6026759241258309,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,970,220.3471214731185,33.757187778318595,0.1798527211266138,27.476126,29.368305,0.0,25.943401,1.6759259,0.7400875,175.66818
141
+ 220.42723,33.302834,-0.6500478418131659,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,1169,220.4272344580592,33.30283226982711,0.0575443238460249,0.0,10.787925,9.457212,11.604758,2.0409455,0.49289072,168.21913
142
+ 219.74295,47.307888,-0.6040367003693287,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,1331,219.74294741930424,47.30788952630464,0.0270759705789607,307.4401,80.6204,88.83942,116.65541,1.2357608,0.41265604,133.1318
143
+ 206.14038,33.54464,-0.5599020531649982,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-001.hdf5,222,206.1403824454885,33.54463875626278,0.1662019101960731,269.41565,106.14157,54.2275,25.099771,1.4659518,3.5225248,125.0
144
+ 210.67586,32.18062,-0.5791184799751264,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=645/001-000.hdf5,3417,210.6758545616341,32.18061998098871,0.0791432367331962,0.0,11.841154,0.0,0.0,2.0272617,0.8028675,230.6861
145
+ 222.43597,34.342525,-0.587221023224993,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1188,222.43597798310344,34.342523897281595,0.340490227739321,115.31614,29.967829,34.649204,23.886856,1.1803927,3.504892,125.0
146
+ 222.57188,34.573353,-0.5945776151522206,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1178,222.57187828563755,34.57335139451143,0.1341822023488934,14.332778,46.033176,0.3688603,3.1483254,1.9730093,1.2665237,280.99228
147
+ 222.72176,36.17021,-0.5864638856708192,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,865,222.7217498790792,36.17021351244886,0.1222176893819427,175.63924,75.940025,31.894058,4.6895742,1.3481951,0.62894213,157.79854
148
+ 222.73546,35.57169,-0.6601356727954886,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,487,222.7354556328703,35.571688282728815,0.0039695336777407,3443.6672,151.33598,1137.5629,4294.6865,1.0020062,3.1881292,125.0
149
+ 223.05081,34.027065,-0.5774383871353495,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1079,223.05080455271624,34.027063514016305,0.1620309838191107,65.19058,26.102282,16.987501,6.538011,1.3159517,1.4064438,65.37186
150
+ 223.44524,34.79861,-0.6067579467275153,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,3708,223.4452363851028,34.79861119735138,0.0770945828784734,7.858922,28.771578,0.0,10.71163,1.9498831,0.039399184,181.50952
151
+ 223.44724,36.1347,-0.5610555272001411,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,1116,223.44723745611304,36.1347000781951,0.0731210143332696,205.15065,105.85612,48.582436,10.044661,1.6816188,1.3304148,166.3001
152
+ 223.70625,34.51449,-0.555503584624521,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,3656,223.70625149860203,34.51448932189829,0.2030341848228544,23.15143,6.185155,4.9168677,3.5135589,1.3334256,0.7558826,175.21295
153
+ 223.99643,35.66342,-0.6016213504029252,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,4756,223.9964274557889,35.66342324032763,0.0335815965404772,1.7743999,42.331783,0.3233424,36.214302,1.9824646,1.254335,143.1142
154
+ 219.32945,47.251503,-0.608815626493015,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2625,219.3294462582454,47.25150453486008,0.1225995221736021,11.084662,19.678726,1.3400545,7.8316894,1.989124,1.6353171,214.41988
155
+ 224.5197,47.406647,-0.6595209700694811,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4609,224.5197061619336,47.40664589577288,0.0848143174376725,24.303368,62.071705,4.255969,25.421356,2.273095,0.07493029,403.0216
156
+ 224.0696,46.916237,-0.608113270953753,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4032,224.06959449323315,46.91623619256161,0.0855187944154564,13.586229,39.610065,7.738013,12.804683,1.916908,0.502094,202.82097
157
+ 211.39746,38.423523,-0.59691595851189,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4324,211.3974604283739,38.42352189868875,0.4696733365425841,65.137024,24.510183,9.443341,6.569673,1.3829902,1.0595624,378.2059
158
+ 211.44347,39.15259,-0.5702953258768438,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3686,211.4434711622688,39.152590230234246,0.1031131140504137,7.4845605,15.498243,0.0,0.0,1.6772119,0.3228938,183.57558
159
+ 222.83455,46.684982,-0.6051438599646451,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1072,222.83454887076985,46.68498267040715,0.0747797931456135,7.554874,61.17681,0.0,27.182123,1.9557168,0.27199674,258.6711
160
+ 205.76637,33.096676,-0.5555794166790564,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4628,205.7663777087079,33.09667709069031,0.1644335385229733,86.02553,24.594728,21.265049,10.208262,1.2561816,2.231582,91.35825
161
+ 211.68022,33.334686,-0.5961098002084769,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,1843,211.6802278069152,33.33468546051164,0.4581448721812153,72.63895,29.199303,10.505818,2.6324103,1.266427,0.0,232.15697
162
+ 218.09491,47.11061,-0.6362163480872454,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1709,218.09490236960383,47.11061185946859,0.1086942674583146,25.940062,29.512754,15.613782,21.51171,1.964001,0.22049187,235.82353
163
+ 216.2295,47.73962,-0.5743768974491661,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,4649,216.22950758504223,47.73961901978189,0.074914961390262,28.868378,22.536259,10.127764,9.6079645,1.8251929,0.018838555,146.44377
164
+ 219.31471,46.945824,-0.5649871913946566,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1193,219.31471506956908,46.94582232353993,0.0934017171802508,81.13482,67.10934,11.565868,6.0580306,1.555259,0.55442363,144.69151
165
+ 200.61858,33.66162,-0.6196747800170833,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,1103,200.61857365994487,33.661620976940654,0.4323553607374453,16.46546,10.708547,2.374653,1.9309137,1.5786408,0.0,185.14197
166
+ 219.74077,47.24487,-0.5981155199788025,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,907,219.740775357679,47.2448703033323,0.2911882214566502,67.14965,24.980637,13.382441,3.264203,1.3361862,1.2058113,336.38553
167
+ 223.06969,35.077347,-0.6195896885621592,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,3848,223.06968003069235,35.07734690562238,0.4227590622199453,31.929966,15.543224,3.8774934,4.424237,1.3776451,0.5248221,360.56583
168
+ 228.27931,37.94177,-0.5568645896913637,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,3878,228.27930615960065,37.94176701651247,0.3319690389042785,179.22223,120.99037,36.970463,104.36327,1.3153695,1.494078,419.51538
169
+ 228.3645,37.973812,-0.5756060290818129,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,3876,228.36450596311383,37.97381278578304,0.0559084025837915,0.0,14.570004,0.0,0.0,2.0484486,0.6453704,171.75305
170
+ 228.49507,37.00813,-0.5610068341079185,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,1821,228.4950702185072,37.00812758477887,0.2064317251333488,1.5312843,8.128542,0.0,0.0,1.92103,1.4125488,296.03476
171
+ 228.55719,37.265854,-0.5945155659896727,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,2387,228.55718757107576,37.26585561887151,0.1589147785281133,1.8214308,4.255132,0.0,1.2651855,2.3477323,1.8158982,161.2094
172
+ 228.84914,36.79295,-0.5621503558140126,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,2289,228.84914321377352,36.7929492077741,0.1597033747738024,106.52054,54.420708,16.87555,0.0,1.6755643,0.0,478.39453
173
+ 228.93855,37.135365,-0.6440655921462716,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,2025,228.938552648146,37.13536589994408,0.1505489053762369,74.953125,16.125166,17.017136,26.3971,1.3199744,2.717431,125.0
174
+ 229.04361,37.186684,-0.5778757493297623,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,2039,229.04361218566805,37.18668244937653,0.2872972755051858,0.0,1.282869,0.0,1.9433968,2.0195315,0.9426205,260.3401
175
+ 212.12021,32.224735,-0.5602010832858404,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,567,212.12020736341,32.22473391429282,0.1638391296492364,77.86213,33.19613,21.268816,3.2805185,1.3434662,0.60638577,180.8912
176
+ 229.1178,36.83929,-0.5771535968643262,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-001.hdf5,2259,229.1178023855698,36.83928994254862,0.2320734934368725,96.34299,66.105064,8.620694,13.0059805,1.2842717,0.0,379.05923
177
+ 229.1906,36.696434,-0.6094152483033662,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-001.hdf5,1561,229.1905936151645,36.696432687290816,0.1587731278980015,1.8929231,7.2078123,0.0,0.0,1.6508603,2.4333315,199.02113
178
+ 229.19077,36.889626,-0.6472907403357917,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-001.hdf5,1768,229.1907682934603,36.88962490404788,0.212447765618817,30.14342,16.97583,7.413594e-05,2.1948829,1.6177421,0.028573819,132.43378
179
+ 229.2292,37.144295,-0.5640068214405909,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-001.hdf5,1554,229.22919583659112,37.14429490457671,0.3239629583832507,44.16187,23.953215,4.1929593,3.525928,1.3575059,0.20579596,195.81538
180
+ 223.34373,35.891567,-0.6648627179605477,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,598,223.34373924893785,35.89156867299774,0.3492067881437579,8.017072,14.874008,0.0,3.0638328,1.7268292,0.0,180.00992
181
+ 229.54259,36.75623,-0.6063604321551223,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-001.hdf5,1702,229.5425946044939,36.75623070518471,0.1616545937981491,0.0,0.052401733,0.0,5.301617,1.8032849,0.0,163.86069
182
+ 212.24332,35.390007,-0.5676302580353012,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,2175,212.2433115279403,35.390007525988025,0.0909579105299386,67.30816,28.515175,8.259927,3.3147748,1.2733002,0.1271286,235.51474
183
+ 217.46295,46.53011,-0.5573872988146823,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2101,217.4629568603479,46.530110556779945,0.2415589998715414,50.517216,28.670652,9.800989,0.19696328,1.319974,0.2750141,74.57404
184
+ 225.51064,47.230347,-0.6280639722430795,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4747,225.51064012175945,47.23034689529288,0.0363446022414091,0.0,50.7692,0.0,13.704027,2.0492685,0.53264266,185.33624
185
+ 225.8057,47.140423,-0.6014017017096293,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,3807,225.80570192051107,47.14042161784469,0.2640268016391942,0.12095449,3.50769,0.032992516,4.1940093,1.7258393,0.15578339,192.26971
186
+ 205.74358,33.297,-0.59648776542504,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=653/001-000.hdf5,526,205.7435685929352,33.29699975101718,0.0613524334807697,53.494003,140.54405,1.5721275,43.567474,2.0457273,0.002231399,214.06526
187
+ 223.63498,34.04843,-0.562211516822322,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=572/001-001.hdf5,3774,223.6349836986801,34.04842972941864,0.2018087646193901,0.0,0.0,1.7867359,4.096354,1.8743061,0.0,360.35425
188
+ 218.98026,47.634544,-0.5668952113750706,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2590,218.9802524897984,47.634544687111344,0.0735673467472184,34.86036,16.01794,4.116827,2.9265628,1.8427795,0.0,113.01733
189
+ 215.97032,46.73816,-0.6087406795844373,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,918,215.9703213446816,46.7381607303229,0.1088451543318697,8.850026,40.167934,1.2005614,11.442958,1.9950749,0.36588567,304.39694
190
+ 227.50311,47.240654,-0.6235747753022507,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=705/001-000.hdf5,1410,227.50311582421804,47.24065387623113,0.0869573507363546,120.693275,44.410736,26.845058,8.1900835,1.2738321,0.21378446,153.9413
191
+ 205.93634,31.748707,-0.576028072731488,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=646/001-000.hdf5,4608,205.9363381320065,31.74870734877123,0.2217447992661667,0.0,3.3700073,5.423889,1.1376532,1.868407,0.64356816,335.30087
192
+ 205.97066,31.835638,-0.5933763569465876,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=646/001-000.hdf5,4595,205.97065456420285,31.835637523459333,0.16795608885692,3.21686,2.3820996,0.65935594,1.4539292,1.7159455,0.019821541,125.0
193
+ 206.00267,33.263084,-0.5717152586869263,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-001.hdf5,32,206.00266885465825,33.263085653720054,0.0843982198322347,12.33899,11.825106,0.56343216,7.4066806,2.3358374,0.0,107.05722
194
+ 223.929,36.42147,-0.5602031827041053,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,1503,223.92899925008248,36.42147215549951,0.1717236572189635,99.331154,30.962952,21.690374,3.8960242,1.1742882,1.7985938,128.85745
195
+ 219.56244,32.693924,-0.5602242493196115,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-000.hdf5,4696,219.56243629385355,32.69392485370115,0.2507484227264551,12.928726,14.504343,4.606252,10.931316,3.361864,2.9734979,80.73392
196
+ 222.10153,47.674393,-0.555397823120572,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,3394,222.1015374454602,47.67439404919335,0.1706647074192798,5.8592477,30.634834,6.7525406,13.319966,1.7125338,0.019240968,211.36922
197
+ 206.24904,31.802961,-0.7125365162191757,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=646/001-000.hdf5,4739,206.2490382127669,31.802961907467846,0.0431645845527583,47.17974,100.664696,5.1675715,32.644352,1.8671514,0.23782326,155.92433
198
+ 219.70418,32.582756,-0.6367975850103503,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,129,219.70417471805865,32.58275734416754,0.2530671985271198,4.5437183,7.787877,4.6815605,0.48354384,2.1307495,0.0,229.9084
199
+ 228.71115,37.252575,-0.6298185861334504,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,2383,228.7111587048745,37.25257397533544,0.0297181056348212,0.0,35.394444,0.0,20.58374,1.9824018,0.23680045,179.7472
200
+ 224.81299,47.517773,-0.5779536529468127,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4686,224.8129919346501,47.51777144135956,0.0851662470778703,45.707638,43.13437,11.197289,21.72629,2.053551,0.0,183.23315
201
+ 210.95143,33.569786,-0.6335829976655191,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,215,210.9514363884165,33.569787625218424,0.019090542069898,345.16522,141.0208,112.238556,57.7665,1.2999928,0.70553225,125.0
202
+ 216.78508,47.259075,-0.6613321470217932,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,2983,216.7850838167972,47.25907369347196,0.3082398095829989,125.489,35.359432,27.88053,29.70893,1.263976,1.6382729,125.0
203
+ 206.69695,32.90637,-0.609910373920131,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-001.hdf5,270,206.6969521109795,32.9063670471755,0.2464921141894627,312.33716,148.06842,45.719658,25.673061,1.3768301,1.6108108,125.0
204
+ 211.99275,38.3277,-0.6069966356188836,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4288,211.99275757009897,38.32770203179291,0.1522071127914046,21.28807,19.46789,6.706501,12.075101,1.8768413,0.58561087,272.41776
205
+ 223.31084,46.48638,-0.6769478466902171,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1723,223.31083440235744,46.48638205402484,0.0220579104613582,31.907045,31.587925,2.9782033,4.7873435,1.6940837,0.29837957,125.0
206
+ 223.35246,46.485462,-0.6779575288414771,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1247,223.35246419577632,46.48546058672305,0.031192400977308,285.85114,90.70609,66.33839,38.279797,1.275101,1.1150723,314.30573
207
+ 222.56502,36.513935,-0.6077750053272429,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-002.hdf5,607,222.56502278848188,36.51393374680878,0.3689641979059582,50.286423,21.773619,16.065407,11.043507,1.2204005,4.1605096,314.49063
208
+ 222.69455,36.167004,-0.6741968879487549,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,863,222.6945433587852,36.16700382418537,0.0786995120941885,0.0,4.299266,0.0,21.927624,1.9921585,0.0,243.60175
209
+ 222.74599,47.530132,-0.569664952007007,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,32,222.7459924581821,47.53013289926452,0.4990294238163574,0.0,0.0,10.930847,2.5052185,1.0179429,0.0,349.33368
210
+ 219.40982,47.672005,-0.5917026923590818,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,2438,219.4098279806456,47.67200364275616,0.0944676187780445,32.995667,32.615368,5.8607965,7.4234166,1.8971497,0.25134394,181.4559
211
+ 211.6404,38.38539,-0.5887307860645821,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4026,211.64040049110253,38.38539050928069,0.158976499907055,44.182228,13.517852,9.745341,7.984386,1.2449375,0.0,125.0
212
+ 219.35918,46.67046,-0.60480928257622,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1070,219.3591811389088,46.67045830844129,0.0367119421051692,174.82256,76.76055,31.864077,13.491936,1.6902514,0.7219411,89.55349
213
+ 212.08089,33.03165,-0.6007648075719927,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,1389,212.0808937567787,33.03165237222267,0.1908965908591296,0.0,11.274109,0.0,4.393191,2.0851479,0.0,380.53568
214
+ 222.34369,47.35065,-0.5879728632814807,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,3263,222.34368248831785,47.35064964242633,0.0999071807136972,0.75243735,32.346878,0.9037573,23.178295,2.0101779,0.9400376,218.99979
215
+ 212.11871,31.815794,-0.6302967228558736,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,569,212.11871776314777,31.81579359486736,0.1892055962903157,49.112762,26.70237,9.290448,2.9900815,1.7637391,0.5366015,182.10286
216
+ 223.30116,35.969868,-0.5586866983049844,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,182,223.30115513907,35.96986727040134,0.3674628680816229,0.0,1.389918,0.0,0.0,1.8981191,0.3340102,280.11584
217
+ 212.12698,36.495354,-0.6237574265822019,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3854,212.1269803985712,36.49535507613856,0.0352466235505702,65.05379,27.91922,19.133852,4.8374023,1.3267293,0.28137922,125.0
218
+ 223.3763,34.7923,-0.5728153022934084,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,4083,223.3762938528633,34.79230068395399,0.1619398939923426,0.0,2.0003333,0.9938541,2.0683866,2.1529741,0.2880829,327.1509
219
+ 212.20108,38.540554,-0.5939662515907348,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4462,212.20108588225563,38.54055292090585,0.0451353453884809,230.41386,76.14302,55.541157,8.832134,1.2838078,0.96622896,70.85919
220
+ 219.80396,46.843464,-0.595464341439691,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,979,219.8039581605784,46.84346306890006,0.1358284506131482,1.7759002,0.24040967,0.0,0.0,2.7820559,2.3690228,174.38004
221
+ 205.70216,33.306023,-0.558505411106937,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=653/001-000.hdf5,529,205.70215960251792,33.30602375467269,0.2803082382127252,39.887375,22.379267,7.4868894,1.9807751,1.6393282,1.2445171,192.72423
222
+ 223.61409,35.44088,-0.6368079425050536,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,3914,223.61409079603712,35.44088127025764,0.0778410484414868,13.306026,54.100056,3.659013,3.9201136,2.0894976,0.6376175,310.91486
223
+ 205.78004,33.76482,-0.5941471438933146,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=653/001-000.hdf5,1063,205.78003962340856,33.76481875704611,0.1654175069687837,9.861464,9.286304,0.39036524,0.46077505,1.6748273,0.0,135.48343
224
+ 219.83786,47.291893,-0.6448251128778545,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,858,219.83785303636603,47.29189367446383,0.026960225904097,20.216671,2.6855693,9.378885,14.616732,1.1758399,0.14987265,287.443
225
+ 219.70135,46.78622,-0.5785797729920847,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,624,219.7013616972392,46.78621978447689,0.0355060396688551,0.0,18.487915,8.907152,2.2291965,1.8696325,1.0508584,91.37565
226
+ 225.61334,47.25961,-0.6425830486310952,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,4751,225.61334264285628,47.25960910290959,0.0823336387891186,39.023865,14.131322,11.833689,2.3777807,1.5213865,2.1708808,69.67774
227
+ 201.58698,31.72249,-0.688416995243427,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-000.hdf5,462,201.5869738044902,31.7224904892537,0.0440451785264033,71.9547,98.60482,14.148545,20.493465,1.6810817,0.33980575,168.21315
228
+ 223.95187,36.039677,-0.6054070378731597,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,129,223.9518782189249,36.03967650195825,0.3169111015122308,90.60422,18.232029,20.1593,21.607988,1.1550869,4.660353,125.0
229
+ 224.20229,35.48768,-0.5659705197242403,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,4503,224.2022820054661,35.48768031050145,0.0896440893839615,1.7813605,10.547363,0.009553298,0.0,2.0401363,0.23399597,117.3457
230
+ 222.96446,46.490948,-0.5815485517953743,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1307,222.96446556582293,46.49094727242199,0.1042760697486841,0.0,7.694892,0.0,13.013653,1.8083621,1.1605588,193.75554
231
+ 211.05383,38.733627,-0.6008758019830466,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3950,211.0538365095153,38.73362812624559,0.0634408942336423,13.3647785,44.675964,0.0,8.413316,1.7835332,0.20542252,152.88016
232
+ 211.09053,33.476147,-0.6299236749109145,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,442,211.09053209292097,33.47614769173361,0.0584200044378733,29.726887,47.707172,1.6702757,18.240906,1.9838941,0.10859641,180.81404
233
+ 211.24315,38.634235,-0.7119215393047873,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4075,211.24314185345915,38.63423394346926,0.0649938043021899,1.3962209,71.103035,0.0,7.3574967,2.0916867,0.06657433,272.885
234
+ 215.99352,47.235878,-0.6363884958036011,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,2718,215.99352042612912,47.23587611965132,0.037663277723294,29.483028,76.54686,0.103849865,33.597275,1.9665147,0.61646295,164.1316
235
+ 216.33784,47.245285,-0.6671713040057737,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,1278,216.33784094386235,47.24528662132693,0.0725879436006087,0.0,16.585499,0.0,13.151505,2.1598978,1.1413054,229.74977
236
+ 223.83412,47.496624,-0.6460088176465577,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,4117,223.83411975795053,47.49662448709858,0.067736504930081,70.76181,30.10592,13.480769,0.252954,0.0,1.6025207,125.0
237
+ 222.7272,47.302494,-0.5844506502967335,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,4227,222.7272053214624,47.3024958315898,0.0757744738895595,0.0,22.565905,0.0,0.0,2.0770378,0.0,269.22464
238
+ 222.99913,46.751015,-0.6356912817835798,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,1776,222.99912535975795,46.7510135958094,0.0740380020870629,1.9638792,28.619366,0.0,1.7857072,2.0420766,0.0008552527,237.49394
239
+ 211.39856,38.75381,-0.5884251839445539,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4120,211.39856081106808,38.75381172286644,0.0641704956904409,253.72649,141.76968,65.006905,29.339708,1.489503,0.972196,139.02777
240
+ 222.66629,34.42808,-0.5895794022078413,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1133,222.66628634671025,34.42808036305879,0.0902765713914481,14.688876,48.02353,0.0,35.983826,2.010323,0.017309785,189.18668
241
+ 222.7257,35.143856,-0.566908020832897,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,969,222.7256998515073,35.14385703007413,0.2056565091937433,1872.1788,1130.1382,285.39505,480.56772,1.1939725,1.3712007,353.7322
242
+ 222.83011,36.316166,-0.6076284184468513,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,210,222.830107867032,36.31616777629684,0.1485191101567135,53.141758,136.83415,6.317867,39.949173,2.0385668,0.08374795,312.25238
243
+ 222.83278,36.315655,-0.56971411800722,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,663,222.83277692230752,36.31565335546741,0.1509986763150851,0.0,0.0,2.583286e-10,4.4516144,2.1013184,0.0,259.08197
244
+ 200.06,33.899506,-0.6282724163759763,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=654/001-000.hdf5,1103,200.059999527115,33.899504315264664,0.0386651937468673,727.8531,767.3198,169.96373,579.3758,1.578046,1.8861433,141.69551
245
+ 207.21243,31.768005,-0.6576804553517467,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,1154,207.21242697999148,31.76800454657741,0.0830813100041928,1.0212235e-07,19.675047,0.0,3.5434103,2.0946429,0.22502628,243.69397
246
+ 211.77324,32.046455,-0.670542861316147,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,511,211.77324011806056,32.04645449344301,0.4234626124082155,30.52254,12.0160885,7.3977947,2.5715735,1.3495785,1.9987979,222.14679
247
+ 217.4446,46.714607,-0.5745735932552493,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1420,217.44459922024345,46.714607599930325,0.2698913269952953,99.6053,23.540203,28.313992,24.183628,1.1686085,1.8747644,125.0
248
+ 200.64491,33.157143,-0.6471539080072187,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,347,200.6449151123672,33.15714151402084,0.0368527184812982,45.263012,103.81952,4.7278647,53.7522,2.0052664,0.0,176.33658
249
+ 211.87059,38.467915,-0.5620358672113765,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,4365,211.870586802548,38.467915766335246,0.20951908635375,0.05249393,0.0,0.0,2.0507407,1.8073038,0.19296096,118.78147
250
+ 223.12976,35.34915,-0.6042035791198339,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,627,223.12975610545976,35.34915246692521,0.2748527841072689,12.611233,11.789672,1.5435411,2.4924376,1.6314558,0.17248091,156.86925
251
+ 213.37685,39.709454,-0.5651321316592149,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,1013,213.3768423814097,39.70945293239721,0.1308391224715016,2.0139093,7.4614744,0.0,0.0001418237,1.8551707,0.68499446,196.33961
252
+ 219.50427,46.69559,-0.5707640812688742,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1168,219.50426570226463,46.69558946712832,0.0347788591169166,12.131677,22.58946,4.774204,9.983032,1.8351032,0.0,81.840614
253
+ 219.75996,46.695293,-0.5559549588660394,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1140,219.75995914108017,46.69529348591108,0.1694744837560224,158.4449,49.703285,40.55534,24.665363,1.2523222,2.807921,125.0
254
+ 223.33229,34.02187,-0.5569594533651612,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,1692,223.3322955929524,34.02187102554704,0.1014463340812436,46.056725,21.08992,7.3157477,0.011385011,1.4377099,0.0,89.91985
255
+ 219.7207,46.674423,-0.6858684845460824,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,614,219.72070038771847,46.674424186064826,0.0362879840585972,21.87249,68.839386,0.103540994,37.13172,2.0455072,0.21805651,212.27754
256
+ 219.45872,47.034668,-0.5663423059710004,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,1143,219.4587259243186,47.03466907322638,0.3275327159325496,48.092445,15.794038,15.439525,6.908117,1.2625272,0.0,125.0
257
+ 212.2097,38.992966,-0.6138614394060123,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-002.hdf5,71,212.2097072852645,38.99296678264097,0.065859742358712,166.66225,57.561794,40.825794,9.744902,1.3652656,0.6121404,100.28822
258
+ 219.21396,47.68608,-0.5680497252796495,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,2825,219.21396474506568,47.68608242860388,0.2577938378471837,20.86831,5.4568195,4.6920047,0.49148914,1.4607228,1.4669226,134.41139
259
+ 216.48073,46.481537,-0.5626232537984583,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,1476,216.4807327355749,46.481538065580416,0.0331177206190242,405.37878,99.386,81.49503,82.82357,1.2398098,1.8559607,125.0
260
+ 222.87622,47.267452,-0.5748297383437533,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,3662,222.8762244274211,47.26745113640384,0.3490728502193045,56.608356,44.915943,11.3698225,9.102114,1.3423404,0.00044995896,160.92593
261
+ 219.44644,33.34785,-0.558589038219422,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,4010,219.4464410391988,33.347851265519964,0.1650695086216278,0.0,5.1087046,0.0,0.0,2.1012168,0.03527971,320.60318
262
+ 218.0475,47.841133,-0.5645063302210299,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,3628,218.0475054283721,47.84113262095771,0.2942295415873331,38.088425,22.34242,11.646282,32.820354,1.2801782,1.4459016,188.33478
263
+ 224.71503,46.547832,-0.608234898410591,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,3863,224.71502420170185,46.54783179997517,0.2692662966972153,33.14798,19.167648,5.6376133,4.6758227,1.0331684,0.0,125.0
264
+ 206.21326,32.526016,-0.7111195406207801,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4556,206.21325560585925,32.526017815280134,0.0253505109821122,0.0,0.0,0.0,0.0,1.9978496,0.66932636,189.4188
265
+ 216.02274,47.642952,-0.5665303462246929,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,4187,216.02274030706155,47.64295328090901,0.11153338822731,23.138065,54.3646,1.9204876,11.323554,2.0558534,0.69140285,205.25897
266
+ 219.81471,33.33526,-0.6248623972640455,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,4115,219.8147070690904,33.33525722450142,0.0905026725603343,164.02087,66.347916,35.845165,0.0,1.4260689,0.3666166,138.8823
267
+ 210.94124,32.0004,-0.6585076110865062,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=645/001-000.hdf5,3087,210.94124190468509,32.000400513709,0.0623070310918198,550.4903,328.94537,94.70129,27.339529,1.3807733,1.2732729,162.25876
268
+ 210.94652,35.741676,-0.7194618273177658,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-001.hdf5,815,210.94651509595053,35.741677506045626,0.0127839419250193,0.0,139.15714,81.62244,2.6366422,2.0040412,1.260008,150.1614
269
+ 202.01907,34.31152,-0.7015330741562368,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,2486,202.01906981031712,34.31152118697956,0.0359643831159669,167.94148,75.31167,48.145298,38.297295,1.4741668,0.759179,66.19577
270
+ 225.61803,46.674896,-0.5723039016302445,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,3765,225.61801997352268,46.67489727765363,0.1735251271601348,18.7469,6.546904,5.7988725,8.493981,1.2235737,7.0728297,125.0
271
+ 205.8765,32.22188,-0.6105517207001179,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=646/001-001.hdf5,1129,205.87649247668529,32.22188182216297,0.2398050138166083,25.879347,53.64465,4.146173,17.096897,1.9438381,0.15102965,252.7436
272
+ 206.59183,31.800785,-0.5652848645046274,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,3792,206.59183453206663,31.800784627149223,0.2282949010244794,10.015573,10.765384,3.0920367,0.08779311,2.0636342,2.8829436,229.82335
273
+ 219.68506,47.537968,-0.5771996032189316,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-001.hdf5,1165,219.6850660197225,47.53796808062533,0.0420239513877465,0.0,62.255276,9.690014,9.430833,1.8897711,0.95282644,215.8427
274
+ 210.92648,32.99119,-0.5553045831892786,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,375,210.9264824846191,32.99119095958491,0.0833905946429146,79.931114,43.25111,1.3975024,8.880603,1.3855246,0.0,125.0
275
+ 222.38347,34.913834,-0.5546015507585168,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,3024,222.3834687747484,34.91383455883082,0.263713873572713,62.62483,23.813236,18.81705,5.326656,1.408871,0.7761157,125.0
276
+ 200.03183,32.856133,-0.7160977424000261,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,301,200.03183573380787,32.85613284210982,0.0374133604904739,33.25536,144.10402,0.0,85.99707,2.01732,0.22207399,224.32664
277
+ 211.2138,32.1434,-0.560508170500413,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=645/001-000.hdf5,3248,211.21380126193367,32.143397276633735,0.0620305035582619,1823.5197,580.00354,405.89798,223.11354,1.1675128,3.564166,313.68356
278
+ 220.30243,32.89001,-0.5989589957004252,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,203,220.302428773187,32.89001143433202,0.1300886330164915,53.584698,37.81482,9.053202,9.579107,1.3193984,0.13573644,114.55238
279
+ 211.42117,35.98351,-0.647695399590087,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3520,211.42117841752247,35.98350972790609,0.0648457166561662,9.236463,48.731873,3.144705,8.563835,2.0501087,0.9982951,239.4515
280
+ 224.62692,46.52434,-0.5680783220631186,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=704/001-001.hdf5,3855,224.6269265994732,46.5243398353377,0.0927474023431488,122.183655,153.31918,18.800375,151.62453,1.7647065,0.32801744,154.88443
281
+ 217.12424,46.832558,-0.5623939675008774,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,3399,217.12423011395865,46.83255682867735,0.2207429887056317,21.213734,17.354979,3.3825102,2.9828188,1.5362092,0.4186663,168.42451
282
+ 207.03954,32.582333,-0.5662401829845286,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4277,207.0395312970765,32.58233251772263,0.2150068343093536,4.1546574,1.1920553,1.2519939,0.9764111,1.6171916,0.68595624,112.16352
283
+ 219.82018,46.754856,-0.5618618777518325,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,618,219.82017451084744,46.75485778726789,0.0761472565263532,128.16225,45.55345,21.298595,14.156609,1.604411,0.378113,121.82631
284
+ 222.80998,35.542118,-0.7252712755290388,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,757,222.8099863764032,35.54211745891947,0.0042533869406729,428.86755,44.750553,142.35117,377.02963,1.1837897,0.83269536,448.22513
285
+ 211.73944,38.969215,-0.6101007747131342,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,3671,211.7394461895545,38.96921486147313,0.0629369232998372,544.3271,201.11705,83.44659,15.916725,1.3295546,0.69876665,198.42227
286
+ 206.62093,31.840519,-0.6135952315620742,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,4069,206.6209321065957,31.84051883539687,0.2262097951655649,73.88992,25.640022,14.374814,4.102258,1.26297,1.5849736,125.0
287
+ 211.82008,35.52303,-0.596708577188052,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,3300,211.82008675983323,35.52302919637887,0.3390159630390817,8.67266,7.464699,0.9648773,2.679358,1.7927754,0.0,169.27748
288
+ 223.12796,36.243114,-0.6780973146997797,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,1175,223.1279544610076,36.24311465752952,0.070949880660853,35.995293,91.34249,0.061676983,18.182476,2.1102884,0.008745009,337.519
289
+ 218.6748,47.243122,-0.5632019066799581,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2826,218.67481143467816,47.24312270338074,0.3378888524019066,13.986075,8.090653,4.620382,1.5440474,1.447462,0.0,179.00015
290
+ 212.01659,31.989616,-0.5778540276742009,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,336,212.01658537411944,31.989616921076063,0.2364471633983412,0.0,0.10811742,0.0,0.854815,2.1614456,0.07849903,335.49628
291
+ 212.0365,33.79927,-0.5778888741396954,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=656/001-001.hdf5,2300,212.03649724290736,33.799271040288126,0.4236311838338661,27.403906,43.693096,8.861774,16.382029,1.1644462,0.42222023,151.96588
292
+ 219.34125,47.253494,-0.5933471151735913,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2579,219.34124789728773,47.25349427778048,0.1221727499809194,0.0,0.0,0.0,0.0,1.910559,1.3071207,198.9288
293
+ 226.16415,47.4365,-0.5853809379451742,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=705/001-000.hdf5,3305,226.1641543784496,47.43650099415338,0.0885541880771874,12.997893,26.482037,3.0641744,3.960923,1.9731562,0.028540233,171.05582
294
+ 218.44777,47.220814,-0.6465787890357562,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=663/001-002.hdf5,2548,218.44777578699163,47.22081201138626,0.1086113717283268,143.75339,55.496426,30.801418,8.164457,1.4091117,2.0243702,72.98063
295
+ 223.45518,34.39159,-0.5984404511423297,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,4228,223.45518254638048,34.39158899813855,0.1038556315094002,27.761898,45.85823,6.7634234,12.778305,1.6795392,0.0,157.88515
296
+ 212.4783,38.10973,-0.5757423583370173,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=659/001-001.hdf5,2893,212.47830899112432,38.10972947101503,0.1641755048666749,48.182674,6.8612227,10.543942,4.32827,1.271807,0.07249685,231.07306
297
+ 201.41113,33.68046,-0.7001001719321747,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,807,201.41113234780423,33.68046068703888,0.0389696839888054,378.6119,137.5145,98.66451,24.915403,1.410767,1.8065761,127.90504
298
+ 223.30237,35.97214,-0.5780772113785858,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,266,223.3023647490924,35.97214138771019,0.3663424291359989,0.0,6.0992103,0.0,0.7819878,2.3150868,0.0,227.67809
299
+ 224.25931,35.55065,-0.6925239324467983,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-000.hdf5,4705,224.2593107014132,35.55065003590121,0.0709745135616521,92.17152,111.944046,24.231833,26.113152,1.8499825,0.44447735,256.5489
300
+ 219.4925,32.70068,-0.5644043115631001,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-001.hdf5,355,219.49249281280711,32.70067999366049,0.2170419470475136,29.109507,38.72613,9.995894,32.185677,1.7447802,0.53255945,222.43297
301
+ 201.60884,32.290596,-0.6180791286119631,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,214,201.60884692836856,32.29059690481838,0.0507278671245979,347.90976,134.2505,84.47989,18.707962,1.3898423,0.9062137,121.53773
302
+ 228.45468,37.97749,-0.6612649781784813,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,3885,228.4546859479211,37.97749093105686,0.2864597007298993,72.32711,32.331608,14.621863,18.138807,1.2837765,1.0470684,145.37991
303
+ 216.18149,47.032627,-0.6384564444800287,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,912,216.18148643964005,47.03262881254336,0.033300938977261,0.0,13.756496,0.0,14.598742,1.9563925,0.3176022,187.52126
304
+ 224.20563,36.49883,-0.6611884581020797,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=574/001-001.hdf5,1537,224.20563294659817,36.49883020974112,0.2694991429427568,13.434988,7.5181785,0.27125493,6.490096,1.8494194,1.8472166,158.27652
305
+ 210.8478,32.81645,-0.6169228530425417,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-000.hdf5,2189,210.84778887639607,32.81644767943904,0.291849270175903,0.0,2.571024,0.0,0.0,1.6674832,2.811897,122.8934
306
+ 210.85153,33.061066,-0.6264618516148622,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=658/001-000.hdf5,96,210.85153924196072,33.061065902673874,0.0702434742572337,122.4887,67.76843,28.230057,13.59156,1.5903448,0.6651828,150.76375
307
+ 210.98184,31.72497,-0.621554384598006,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=645/001-000.hdf5,3191,210.9818391835518,31.724970204394623,0.1062051927095989,0.0,1.7141805,0.0,10.200883,2.1092374,0.69861555,284.22202
308
+ 206.56665,32.76978,-0.5716473975066376,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=647/001-001.hdf5,3,206.56664963683568,32.76978061093133,0.1365429694462349,3.3105798,16.607845,5.8494368,9.021165,1.9278936,0.0,227.52652
309
+ 223.3885,47.09354,-0.577146964003476,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=706/001-000.hdf5,4245,223.3885028219136,47.09354091446824,0.0878033856638974,7.3662434,9.120713,0.0,6.920443,1.8687993,0.36318842,140.22997
310
+ 216.77759,46.474823,-0.5705134283823594,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=669/001-000.hdf5,1392,216.77758485081205,46.47482256127831,0.4435274689382065,79.324394,27.214142,17.836405,13.228048,1.148881,3.0951688,125.0
311
+ 220.04477,33.356194,-0.5873991308219549,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=571/001-000.hdf5,4930,220.04476892065296,33.35619219806193,0.1257487836865493,0.0,2.7238019,10.122667,1.7666408,2.4690325,0.0,181.54008
312
+ 226.53406,47.049088,-0.6303280861009763,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=705/001-000.hdf5,3840,226.53406288795296,47.04908688091575,0.246151608729111,46.20743,20.416367,11.737026,0.0,1.4774631,0.0,181.43123
313
+ 229.16681,37.212566,-0.5761756717533421,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=573/001-002.hdf5,2311,229.16680374982909,37.21256663467442,0.1568503704341307,12.070091,11.048991,4.31476,0.37216288,2.1523495,0.10034796,307.3504
314
+ 200.09956,33.176804,-0.6011555141221244,AstroM3/Dataset/catalogs/fastspecfit/data/healpix=652/001-001.hdf5,249,200.09956664914952,33.17680268279988,0.0346261901901408,0.0,30.716385,0.0,0.0,1.9944212,0.77009666,221.25778
ExampleCode/example1/anomaly_metadata.csv ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ index,ra,dec,simbad_otype
2
+ 0,200.19305,33.443726,GtowardsGroup
3
+ 1,220.35742,33.72618,No_match
4
+ 2,218.21674,47.768574,No_match
5
+ 3,224.97906,47.63954,Galaxy
6
+ 4,200.29968,31.729654,Galaxy
7
+ 5,223.13959,36.13852,Galaxy
8
+ 6,224.76053,47.418983,Galaxy
9
+ 7,223.0734,46.768044,No_match
10
+ 8,217.32109,46.852432,No_match
11
+ 9,228.93903,36.706173,No_match
12
+ 10,212.11525,33.205482,No_match
13
+ 11,212.13579,33.16155,No_match
14
+ 12,205.59035,32.690517,No_match
15
+ 13,219.83424,46.86007,No_match
16
+ 14,226.28036,46.963696,Galaxy
17
+ 15,222.7845,47.675457,No_match
18
+ 16,205.69641,32.42519,No_match
19
+ 17,215.9645,47.10679,Galaxy
20
+ 18,212.16959,32.59188,LowSurfBrghtG
21
+ 19,225.21576,47.30673,No_match
22
+ 20,219.57034,47.352955,Galaxy
23
+ 21,224.01189,36.243046,Galaxy
24
+ 22,222.963,46.913734,Galaxy
25
+ 23,210.7116,32.92613,No_match
26
+ 24,210.91286,35.773186,No_match
27
+ 25,211.00102,32.670048,Galaxy
28
+ 26,226.92117,46.89221,RadioG
29
+ 27,219.89328,46.63121,Galaxy
30
+ 28,200.04846,33.09609,GtowardsGroup
31
+ 29,223.0503,46.521004,No_match
32
+ 30,219.58582,47.816025,No_match
33
+ 31,200.23062,33.902607,BrightestCG
34
+ 32,222.81557,46.70404,No_match
35
+ 33,224.42175,47.216965,Galaxy
36
+ 34,211.56627,35.795273,Galaxy
37
+ 35,222.83739,35.504044,No_match
38
+ 36,222.83969,34.44721,No_match
39
+ 37,211.72879,33.472313,No_match
40
+ 38,219.30371,47.499092,No_match
41
+ 39,219.0164,46.743916,No_match
42
+ 40,223.08978,36.091084,Galaxy
43
+ 41,222.33034,47.44863,No_match
44
+ 42,212.09677,36.199924,No_match
45
+ 43,223.4386,34.389263,No_match
46
+ 44,224.93661,47.07267,No_match
47
+ 45,225.63454,47.293297,No_match
48
+ 46,201.21243,33.26414,No_match
49
+ 47,224.42151,46.822662,No_match
50
+ 48,224.87427,47.76158,Galaxy
51
+ 49,206.00899,32.11525,Galaxy
52
+ 50,223.06161,47.001293,EmissionG
53
+ 51,200.02356,33.287064,Galaxy
54
+ 52,200.06491,33.297512,GtowardsGroup
55
+ 53,200.2609,33.339485,RadioG
56
+ 54,200.54095,32.74289,GtowardsGroup
57
+ 55,201.13945,31.67151,EmissionG
58
+ 56,201.16075,33.781464,No_match
59
+ 57,201.18198,32.54029,PartofG
60
+ 58,201.1878,32.516823,Galaxy
61
+ 59,201.25839,33.271908,No_match
62
+ 60,201.73921,32.383,GtowardsCl
63
+ 61,201.74942,32.706326,Galaxy
64
+ 62,201.79012,33.501156,Galaxy
65
+ 63,201.8101,33.786076,Galaxy
66
+ 64,201.87544,33.392143,Galaxy
67
+ 65,201.92282,34.35722,Galaxy
68
+ 66,202.48431,32.232494,Galaxy
69
+ 67,207.0826,32.0275,Galaxy
70
+ 68,225.50099,47.11725,No_match
71
+ 69,225.43314,47.5701,No_match
72
+ 70,200.58075,33.889343,No_match
73
+ 71,205.87703,32.26004,No_match
74
+ 72,206.00699,32.114067,Galaxy
75
+ 73,206.03018,31.838966,Galaxy
76
+ 74,206.13913,31.951334,BrightestCG
77
+ 75,206.30923,32.761757,Galaxy
78
+ 76,206.39952,32.436924,Galaxy
79
+ 77,206.48341,31.730963,No_match
80
+ 78,206.49646,32.40309,Galaxy
81
+ 79,206.77965,31.72738,Galaxy
82
+ 80,206.86995,32.115643,Galaxy
83
+ 81,206.92854,32.0517,No_match
84
+ 82,207.00159,31.69941,No_match
85
+ 83,207.08122,32.309772,GtowardsCl
86
+ 84,207.20651,31.754204,Galaxy
87
+ 85,207.21309,32.910126,SIMBAD_error
88
+ 86,207.24332,31.675657,Galaxy
89
+ 87,212.29573,39.28846,No_match
90
+ 88,224.27069,47.335457,RadioG
91
+ 89,206.13358,33.488094,No_match
92
+ 90,226.09256,47.6867,RadioG
93
+ 91,210.64293,35.302143,No_match
94
+ 92,210.81328,33.150513,Seyfert2
95
+ 93,210.85245,32.815968,No_match
96
+ 94,210.8568,32.13594,No_match
97
+ 95,210.83629,35.65457,No_match
98
+ 96,211.10704,35.61177,Galaxy
99
+ 97,211.21178,38.66414,LINER
100
+ 98,211.47302,33.170837,Galaxy
101
+ 99,211.6843,39.01213,Galaxy
102
+ 100,211.82445,38.59338,Galaxy
103
+ 101,211.8437,36.290768,Galaxy
104
+ 102,212.41968,38.728687,No_match
105
+ 103,212.50969,38.70649,RadioG
106
+ 104,212.52777,39.400173,Galaxy
107
+ 105,212.54858,39.409256,LINER
108
+ 106,212.57089,39.034874,No_match
109
+ 107,212.57834,39.041847,No_match
110
+ 108,212.60635,39.467316,Galaxy
111
+ 109,212.63184,38.89353,Galaxy
112
+ 110,211.11621,38.40168,Galaxy
113
+ 111,213.29301,39.866394,EmissionG
114
+ 112,213.53786,39.497112,Galaxy
115
+ 113,213.66644,39.842617,No_match
116
+ 114,200.12047,33.820747,Galaxy
117
+ 115,213.80695,39.703667,RadioG
118
+ 116,213.85506,39.67346,No_match
119
+ 117,214.10843,39.651253,Galaxy
120
+ 118,222.57603,34.093918,No_match
121
+ 119,200.2684,33.151455,Galaxy
122
+ 120,206.98126,32.98733,No_match
123
+ 121,214.58755,39.54192,No_match
124
+ 122,214.85707,39.857384,EmissionG
125
+ 123,211.59433,38.82993,Galaxy
126
+ 124,222.91837,35.5132,No_match
127
+ 125,218.83414,47.382477,Galaxy
128
+ 126,224.99876,47.243427,Galaxy
129
+ 127,200.71564,35.019714,No_match
130
+ 128,224.8766,46.6288,Galaxy
131
+ 129,211.937,36.20765,No_match
132
+ 130,219.9522,46.597305,No_match
133
+ 131,201.04257,33.261486,Galaxy
134
+ 132,212.25842,36.323418,AGN_Candidate
135
+ 133,219.56393,32.862244,No_match
136
+ 134,219.66956,32.5748,No_match
137
+ 135,219.79848,32.686592,No_match
138
+ 136,219.79901,33.785275,LINER
139
+ 137,219.82674,32.63448,No_match
140
+ 138,219.89052,33.352432,No_match
141
+ 139,220.07722,32.767906,Seyfert2
142
+ 140,220.29765,33.84457,Galaxy
143
+ 141,220.34712,33.757187,No_match
144
+ 142,220.42723,33.302834,Galaxy
145
+ 143,219.74295,47.307888,EmissionG
146
+ 144,206.14038,33.54464,No_match
147
+ 145,210.67586,32.18062,Galaxy
148
+ 146,222.43597,34.342525,No_match
149
+ 147,222.57188,34.573353,No_match
150
+ 148,222.72176,36.17021,RadioG
151
+ 149,222.73546,35.57169,HIIG
152
+ 150,223.05081,34.027065,No_match
153
+ 151,223.44524,34.79861,Galaxy
154
+ 152,223.44724,36.1347,Galaxy
155
+ 153,223.70625,34.51449,SIMBAD_error
156
+ 154,223.99643,35.66342,Galaxy
157
+ 155,219.32945,47.251503,No_match
158
+ 156,219.68648,47.252506,No_match
159
+ 157,224.5197,47.406647,GtowardsCl
160
+ 158,224.0696,46.916237,Galaxy
161
+ 159,211.39746,38.423523,No_match
162
+ 160,211.44347,39.15259,Galaxy
163
+ 161,225.31096,47.4071,No_match
164
+ 162,222.83455,46.684982,Galaxy
165
+ 163,205.76637,33.096676,No_match
166
+ 164,211.68022,33.334686,No_match
167
+ 165,218.09491,47.11061,BrightestCG
168
+ 166,216.2295,47.73962,Galaxy
169
+ 167,219.31471,46.945824,EmissionG
170
+ 168,200.61858,33.66162,No_match
171
+ 169,219.74077,47.24487,No_match
172
+ 170,223.06969,35.077347,No_match
173
+ 171,228.27931,37.94177,No_match
174
+ 172,228.3645,37.973812,Galaxy
175
+ 173,228.49507,37.00813,Galaxy
176
+ 174,228.55719,37.265854,No_match
177
+ 175,228.84914,36.79295,No_match
178
+ 176,228.93855,37.135365,No_match
179
+ 177,229.04361,37.186684,No_match
180
+ 178,212.12021,32.224735,No_match
181
+ 179,229.1178,36.83929,No_match
182
+ 180,229.1906,36.696434,No_match
183
+ 181,229.19077,36.889626,No_match
184
+ 182,229.2292,37.144295,No_match
185
+ 183,229.2747,37.0816,No_match
186
+ 184,223.34373,35.891567,No_match
187
+ 185,229.54259,36.75623,No_match
188
+ 186,212.24332,35.390007,No_match
189
+ 187,217.46295,46.53011,No_match
190
+ 188,225.51064,47.230347,Galaxy
191
+ 189,225.8057,47.140423,No_match
192
+ 190,205.74358,33.297,Galaxy
193
+ 191,223.63498,34.04843,No_match
194
+ 192,218.98026,47.634544,Galaxy
195
+ 193,215.97032,46.73816,Galaxy
196
+ 194,227.50311,47.240654,Galaxy
197
+ 195,219.34494,32.904804,No_match
198
+ 196,205.93634,31.748707,No_match
199
+ 197,205.97066,31.835638,No_match
200
+ 198,206.00267,33.263084,No_match
201
+ 199,223.929,36.42147,No_match
202
+ 200,219.56244,32.693924,No_match
203
+ 201,222.10153,47.674393,Galaxy
204
+ 202,206.24904,31.802961,LINER
205
+ 203,219.70418,32.582756,No_match
206
+ 204,228.71115,37.252575,Galaxy
207
+ 205,224.81299,47.517773,Galaxy
208
+ 206,210.95143,33.569786,AGN_Candidate
209
+ 207,216.78508,47.259075,No_match
210
+ 208,206.69695,32.90637,No_match
211
+ 209,211.99275,38.3277,Galaxy
212
+ 210,223.31084,46.48638,GinPair
213
+ 211,223.35246,46.485462,EmissionG
214
+ 212,222.56502,36.513935,No_match
215
+ 213,211.39828,38.754696,No_match
216
+ 214,222.69455,36.167004,Galaxy
217
+ 215,222.74599,47.530132,No_match
218
+ 216,219.40982,47.672005,Galaxy
219
+ 217,211.6404,38.38539,No_match
220
+ 218,219.35918,46.67046,Galaxy
221
+ 219,212.08089,33.03165,BrightestCG
222
+ 220,222.34369,47.35065,No_match
223
+ 221,212.11871,31.815794,No_match
224
+ 222,223.30116,35.969868,BrightestCG
225
+ 223,212.12698,36.495354,Galaxy
226
+ 224,223.3763,34.7923,BrightestCG
227
+ 225,212.20108,38.540554,Galaxy
228
+ 226,219.80396,46.843464,No_match
229
+ 227,205.70216,33.306023,No_match
230
+ 228,223.61409,35.44088,RadioG
231
+ 229,205.78004,33.76482,Galaxy
232
+ 230,219.83786,47.291893,No_match
233
+ 231,219.70135,46.78622,Galaxy
234
+ 232,225.61334,47.25961,No_match
235
+ 233,201.58698,31.72249,LINER
236
+ 234,223.95187,36.039677,No_match
237
+ 235,224.20229,35.48768,Galaxy
238
+ 236,219.98111,47.30258,No_match
239
+ 237,222.96446,46.490948,Galaxy
240
+ 238,211.05383,38.733627,Galaxy
241
+ 239,211.09053,33.476147,Galaxy
242
+ 240,211.24315,38.634235,RadioG
243
+ 241,215.99352,47.235878,LINER
244
+ 242,216.33784,47.245285,Galaxy
245
+ 243,223.83412,47.496624,No_match
246
+ 244,222.7272,47.302494,No_match
247
+ 245,222.99913,46.751015,BrightestCG
248
+ 246,211.39856,38.75381,Galaxy
249
+ 247,222.66629,34.42808,Galaxy
250
+ 248,222.7257,35.143856,Seyfert1
251
+ 249,222.83011,36.316166,Galaxy
252
+ 250,222.83278,36.315655,No_match
253
+ 251,200.06,33.899506,LINER
254
+ 252,207.21243,31.768005,No_match
255
+ 253,211.77324,32.046455,No_match
256
+ 254,217.4446,46.714607,No_match
257
+ 255,200.64491,33.157143,Seyfert2
258
+ 256,211.87059,38.467915,No_match
259
+ 257,223.12976,35.34915,No_match
260
+ 258,213.37685,39.709454,Galaxy
261
+ 259,219.50427,46.69559,Galaxy
262
+ 260,219.75996,46.695293,No_match
263
+ 261,223.33229,34.02187,Galaxy
264
+ 262,219.7207,46.674423,Galaxy
265
+ 263,219.45872,47.034668,No_match
266
+ 264,212.2097,38.992966,Galaxy
267
+ 265,219.21396,47.68608,No_match
268
+ 266,216.48073,46.481537,No_match
269
+ 267,222.87622,47.267452,No_match
270
+ 268,219.44644,33.34785,Galaxy
271
+ 269,218.0475,47.841133,No_match
272
+ 270,224.71503,46.547832,No_match
273
+ 271,206.21326,32.526016,Galaxy
274
+ 272,216.02274,47.642952,Galaxy
275
+ 273,219.81471,33.33526,Galaxy
276
+ 274,210.94124,32.0004,RadioG
277
+ 275,210.94652,35.741676,GtowardsGroup
278
+ 276,202.01907,34.31152,Galaxy
279
+ 277,225.61803,46.674896,No_match
280
+ 278,205.8765,32.22188,No_match
281
+ 279,206.59183,31.800785,No_match
282
+ 280,219.68506,47.537968,Galaxy
283
+ 281,210.92648,32.99119,Galaxy
284
+ 282,222.38347,34.913834,No_match
285
+ 283,200.03183,32.856133,LINER
286
+ 284,211.2138,32.1434,RadioG
287
+ 285,220.30243,32.89001,Galaxy
288
+ 286,211.42117,35.98351,Galaxy
289
+ 287,224.62692,46.52434,Seyfert2
290
+ 288,217.12424,46.832558,No_match
291
+ 289,207.03954,32.582333,No_match
292
+ 290,219.82018,46.754856,SIMBAD_error
293
+ 291,222.80998,35.542118,No_match
294
+ 292,211.73944,38.969215,Galaxy
295
+ 293,206.62093,31.840519,No_match
296
+ 294,211.82008,35.52303,No_match
297
+ 295,223.12796,36.243114,RadioG
298
+ 296,218.6748,47.243122,No_match
299
+ 297,212.01659,31.989616,RadioG
300
+ 298,212.0365,33.79927,No_match
301
+ 299,219.34125,47.253494,Galaxy
302
+ 300,226.16415,47.4365,LINER
303
+ 301,218.44777,47.220814,No_match
304
+ 302,223.45518,34.39159,No_match
305
+ 303,212.4783,38.10973,No_match
306
+ 304,201.41113,33.68046,AGN
307
+ 305,223.30237,35.97214,BrightestCG
308
+ 306,224.25931,35.55065,Galaxy
309
+ 307,219.4925,32.70068,No_match
310
+ 308,201.60884,32.290596,Galaxy
311
+ 309,228.45468,37.97749,No_match
312
+ 310,216.18149,47.032627,Galaxy
313
+ 311,224.20563,36.49883,No_match
314
+ 312,210.8478,32.81645,No_match
315
+ 313,210.85153,33.061066,Galaxy
316
+ 314,210.98184,31.72497,Galaxy
317
+ 315,206.56665,32.76978,Galaxy
318
+ 316,223.3885,47.09354,Galaxy
319
+ 317,216.77759,46.474823,No_match
320
+ 318,220.04477,33.356194,No_match
321
+ 319,226.53406,47.049088,No_match
322
+ 320,229.16681,37.212566,RadioG
323
+ 321,200.09956,33.176804,GtowardsGroup
ExampleCode/example1/dataset/SFDJA_image_catalog.csv ADDED
The diff for this file is too large to render. See raw diff
 
ExampleCode/example1/features/FAJD_multimodal_features.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc002453b18664f54ae9a3b457512daa4bd30c7a00de3e29288a198634ae9478
3
+ size 190405960
ExampleCode/example1/features/FAJD_multimodal_features_norm.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5177380a355ed76532e1cc80abcfaabc538542134cf7fd5ba6ae7651a95ca1a1
3
+ size 190407120
ExampleCode/example1/features/SFAJD_multimodal_features.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:85acdb1b278186ede2071e3d969a2933d50ab78a7985b40b7a89800013835ea0
3
+ size 190009072
ExampleCode/example1/features/SFAJD_multimodal_features_norm.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:713478d154da077867c48a6bfdc29945aaf289d856a3fe3aa2f4d25ecf6f7654
3
+ size 190011136
ExampleCode/example1/features/clustered_sources_gmm_tsne.csv ADDED
The diff for this file is too large to render. See raw diff
 
ExampleCode/example1/features/clustered_sources_gmm_umap.csv ADDED
The diff for this file is too large to render. See raw diff
 
ExampleCode/example1/model/DesiEncoder.py ADDED
@@ -0,0 +1,416 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+ from functools import partial
4
+ from timm.models.vision_transformer import PatchEmbed, Block
5
+ import torch.nn.functional as F
6
+ import numpy as np
7
+ import torch
8
+
9
+
10
+ import numpy as np
11
+ import skimage
12
+ import numpy as np
13
+ import cv2 as cv
14
+
15
+ def sdss_rgb(imgs, bands, scales=None,
16
+ m=0.02):
17
+ """
18
+ Transformation from raw image data (nanomaggies) to the rgb values displayed
19
+ at the legacy viewer https://www.legacysurvey.org/viewer
20
+
21
+ Code copied from
22
+ https://github.com/legacysurvey/imagine/blob/master/map/views.py
23
+ """
24
+
25
+ rgbscales = {'u': (2, 1.5), # 1.0,
26
+ 'g': (2, 2.5),
27
+ 'r': (1, 1.5),
28
+ 'i': (0, 1.0),
29
+ 'z': (0, 0.4), # 0.3
30
+ }
31
+
32
+ if scales is not None:
33
+ rgbscales.update(scales)
34
+
35
+ I = 0
36
+ for img, band in zip(imgs, bands):
37
+ plane, scale = rgbscales[band]
38
+ img = np.maximum(0, img * scale + m)
39
+ I = I + img
40
+ I /= len(bands)
41
+
42
+ Q = 20
43
+ fI = np.arcsinh(Q * I) / np.sqrt(Q)
44
+ I += (I == 0.) * 1e-6
45
+ H, W = I.shape
46
+ rgb = np.zeros((H, W, 3), np.float32)
47
+
48
+ for img, band in zip(imgs, bands):
49
+ plane, scale = rgbscales[band]
50
+ rgb[:, :, plane] = (img * scale + m) * fI / I
51
+
52
+ rgb = np.clip(rgb, 0, 1)
53
+
54
+ return rgb
55
+
56
+ def dr2_rgb(rimgs, bands, **ignored):
57
+ return sdss_rgb(rimgs, bands, scales=dict(g=(2, 6.0), r=(1, 3.4), z=(0, 2.2)), m=0.03)
58
+
59
+
60
+ # --------------------------------------------------------
61
+ # 2D sine-cosine position embedding
62
+ # References:
63
+ # Transformer: https://github.com/tensorflow/models/blob/master/official/nlp/transformer/model_utils.py
64
+ # MoCo v3: https://github.com/facebookresearch/moco-v3
65
+ # --------------------------------------------------------
66
+ def get_2d_sincos_pos_embed(embed_dim, grid_size, cls_token=False):
67
+ """
68
+ grid_size: int of the grid height and width
69
+ return:
70
+ pos_embed: [grid_size*grid_size, embed_dim] or [1+grid_size*grid_size, embed_dim] (w/ or w/o cls_token)
71
+ """
72
+ grid_h = np.arange(grid_size, dtype=np.float32)
73
+ grid_w = np.arange(grid_size, dtype=np.float32)
74
+ grid = np.meshgrid(grid_w, grid_h) # here w goes first
75
+ grid = np.stack(grid, axis=0)
76
+
77
+ grid = grid.reshape([2, 1, grid_size, grid_size])
78
+ pos_embed = get_2d_sincos_pos_embed_from_grid(embed_dim, grid)
79
+ if cls_token:
80
+ pos_embed = np.concatenate([np.zeros([1, embed_dim]), pos_embed], axis=0)
81
+ return pos_embed
82
+
83
+
84
+ def get_2d_sincos_pos_embed_from_grid(embed_dim, grid):
85
+ assert embed_dim % 2 == 0
86
+
87
+ # use half of dimensions to encode grid_h
88
+ emb_h = get_1d_sincos_pos_embed_from_grid(embed_dim // 2, grid[0]) # (H*W, D/2)
89
+ emb_w = get_1d_sincos_pos_embed_from_grid(embed_dim // 2, grid[1]) # (H*W, D/2)
90
+
91
+ emb = np.concatenate([emb_h, emb_w], axis=1) # (H*W, D)
92
+ return emb
93
+
94
+
95
+ def get_1d_sincos_pos_embed_from_grid(embed_dim, pos):
96
+ """
97
+ embed_dim: output dimension for each position
98
+ pos: a list of positions to be encoded: size (M,)
99
+ out: (M, D)
100
+ """
101
+ assert embed_dim % 2 == 0
102
+ omega = np.arange(embed_dim // 2, dtype=float)
103
+ omega /= embed_dim / 2.
104
+ omega = 1. / 10000**omega # (D/2,)
105
+
106
+ pos = pos.reshape(-1) # (M,)
107
+ out = np.einsum('m,d->md', pos, omega) # (M, D/2), outer product
108
+
109
+ emb_sin = np.sin(out) # (M, D/2)
110
+ emb_cos = np.cos(out) # (M, D/2)
111
+
112
+ emb = np.concatenate([emb_sin, emb_cos], axis=1) # (M, D)
113
+ return emb
114
+
115
+
116
+ # --------------------------------------------------------
117
+ # Interpolate position embeddings for high-resolution
118
+ # References:
119
+ # DeiT: https://github.com/facebookresearch/deit
120
+ # --------------------------------------------------------
121
+ def interpolate_pos_embed(model, checkpoint_model):
122
+ if 'pos_embed' in checkpoint_model:
123
+ pos_embed_checkpoint = checkpoint_model['pos_embed']
124
+ embedding_size = pos_embed_checkpoint.shape[-1]
125
+ num_patches = model.patch_embed.num_patches
126
+ num_extra_tokens = model.pos_embed.shape[-2] - num_patches
127
+ # height (== width) for the checkpoint position embedding
128
+ orig_size = int((pos_embed_checkpoint.shape[-2] - num_extra_tokens) ** 0.5)
129
+ # height (== width) for the new position embedding
130
+ new_size = int(num_patches ** 0.5)
131
+ # class_token and dist_token are kept unchanged
132
+ if orig_size != new_size:
133
+ print("Position interpolate from %dx%d to %dx%d" % (orig_size, orig_size, new_size, new_size))
134
+ extra_tokens = pos_embed_checkpoint[:, :num_extra_tokens]
135
+ # only the position tokens are interpolated
136
+ pos_tokens = pos_embed_checkpoint[:, num_extra_tokens:]
137
+ pos_tokens = pos_tokens.reshape(-1, orig_size, orig_size, embedding_size).permute(0, 3, 1, 2)
138
+ pos_tokens = torch.nn.functional.interpolate(
139
+ pos_tokens, size=(new_size, new_size), mode='bicubic', align_corners=False)
140
+ pos_tokens = pos_tokens.permute(0, 2, 3, 1).flatten(1, 2)
141
+ new_pos_embed = torch.cat((extra_tokens, pos_tokens), dim=1)
142
+ checkpoint_model['pos_embed'] = new_pos_embed
143
+
144
+ class MaskedAutoEncoderViT(nn.Module):
145
+ """ Masked Autoencoder with VisionTransformer backbone
146
+ """
147
+ def __init__(self, img_size=224, patch_size=16, in_chans=3,
148
+ embed_dim=1024, depth=24, num_heads=16,
149
+ decoder_embed_dim=512, decoder_depth=8, decoder_num_heads=16,
150
+ mlp_ratio=4.0, norm_layer=nn.LayerNorm, norm_pix_loss=False,lambda_consistency=1.0):
151
+ super().__init__()
152
+
153
+ # --------------------------------------------------------------------------
154
+ # MAE encoder specifics
155
+ self.patch_embed = PatchEmbed(img_size, patch_size, in_chans, embed_dim)
156
+ num_patches = self.patch_embed.num_patches
157
+
158
+ self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim))
159
+ self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim), requires_grad=False) # fixed sin-cos embedding
160
+
161
+ self.blocks = nn.ModuleList([
162
+ Block(embed_dim, num_heads, mlp_ratio, qkv_bias=True, norm_layer=norm_layer)
163
+ for i in range(depth)])
164
+ self.norm = norm_layer(embed_dim)
165
+ # --------------------------------------------------------------------------
166
+
167
+ # --------------------------------------------------------------------------
168
+ # MAE decoder specifics
169
+ self.decoder_embed = nn.Linear(embed_dim, decoder_embed_dim, bias=True)
170
+
171
+ self.mask_token = nn.Parameter(torch.zeros(1, 1, decoder_embed_dim))
172
+
173
+ self.decoder_pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, decoder_embed_dim), requires_grad=False) # fixed sin-cos embedding
174
+
175
+ self.decoder_blocks = nn.ModuleList([
176
+ Block(decoder_embed_dim, decoder_num_heads, mlp_ratio, qkv_bias=True, norm_layer=norm_layer)
177
+ for i in range(decoder_depth)
178
+ ])
179
+
180
+ self.decoder_norm = norm_layer(decoder_embed_dim)
181
+ self.decoder_pred = nn.Linear(decoder_embed_dim, patch_size**2 * in_chans, bias=True) # decoder to patch
182
+ # --------------------------------------------------------------------------
183
+
184
+ self.norm_pix_loss = norm_pix_loss
185
+ self.lambda_consistency = lambda_consistency
186
+
187
+ self.initialize_weights()
188
+
189
+ def initialize_weights(self):
190
+
191
+ pos_embed = get_2d_sincos_pos_embed(self.pos_embed.shape[-1], int(self.patch_embed.num_patches**.5), cls_token=True)
192
+ self.pos_embed.data.copy_(torch.from_numpy(pos_embed).float().unsqueeze(0))
193
+
194
+ decoder_pos_embed = get_2d_sincos_pos_embed(self.decoder_pos_embed.shape[-1], int(self.patch_embed.num_patches**.5), cls_token=True)
195
+ self.decoder_pos_embed.data.copy_(torch.from_numpy(decoder_pos_embed).float().unsqueeze(0))
196
+
197
+ w = self.patch_embed.proj.weight.data
198
+ torch.nn.init.xavier_uniform_(w.view([w.shape[0], -1]))
199
+
200
+ torch.nn.init.normal_(self.cls_token, std=.02)
201
+ torch.nn.init.normal_(self.mask_token, std=.02)
202
+
203
+ self.apply(self._init_weights)
204
+
205
+ def _init_weights(self, m):
206
+ if isinstance(m, nn.Linear):
207
+
208
+ torch.nn.init.xavier_uniform_(m.weight)
209
+ if isinstance(m, nn.Linear) and m.bias is not None:
210
+ nn.init.constant_(m.bias, 0)
211
+ elif isinstance(m, nn.LayerNorm):
212
+ nn.init.constant_(m.bias, 0)
213
+ nn.init.constant_(m.weight, 1.0)
214
+
215
+ def random_masking(self, x, mask_ratio):
216
+ """
217
+ Perform per-sample random masking by per-sample shuffling.
218
+ Per-sample shuffling is done by argsort random noise.
219
+ x: [N, L, D], sequence
220
+ """
221
+ N, L, D = x.shape # batch, length, dim
222
+ len_keep = int(L * (1 - mask_ratio))
223
+
224
+ noise = torch.rand(N, L, device=x.device) # noise in [0, 1]
225
+
226
+ ids_shuffle = torch.argsort(noise, dim=1) # ascend: small is keep, large is remove
227
+ ids_restore = torch.argsort(ids_shuffle, dim=1)
228
+
229
+ ids_keep = ids_shuffle[:, :len_keep]
230
+ x_masked = torch.gather(x, dim=1, index=ids_keep.unsqueeze(-1).repeat(1, 1, D))
231
+
232
+ mask = torch.ones([N, L], device=x.device)
233
+ mask[:, :len_keep] = 0
234
+
235
+ mask = torch.gather(mask, dim=1, index=ids_restore)
236
+
237
+ return x_masked, mask, ids_restore
238
+
239
+ def patchify(self, imgs):
240
+ """
241
+ imgs: (N, 3, H, W)
242
+ x: (N, L, patch_size**2 *3)
243
+ """
244
+ p = self.patch_embed.patch_size[0]
245
+ assert imgs.shape[2] == imgs.shape[3] and imgs.shape[2] % p == 0
246
+
247
+ h = w = imgs.shape[2] // p
248
+ x = imgs.reshape(shape=(imgs.shape[0], 3, h, p, w, p))
249
+ x = torch.einsum('nchpwq->nhwpqc', x)
250
+ x = x.reshape(shape=(imgs.shape[0], h*w, p**2*3))
251
+ return x
252
+
253
+ def unpatchify(self, x):
254
+ """
255
+ x: (N, L, patch_size**2 *3)
256
+ imgs: (N, 3, H, W)
257
+ """
258
+ p = self.patch_embed.patch_size[0]
259
+ h = w = int(x.shape[1]**0.5)
260
+ assert h *w == x.shape[1]
261
+
262
+ x = x.reshape(shape=(x.shape[0], h, w, p, p, 3))
263
+ x = torch.einsum('nhwpqc->nchpwq', x)
264
+ imgs = x.reshape(shape=(x.shape[0], 3, h * p, h * p))
265
+ return imgs
266
+
267
+ def forward_encoder(self, x, mask_ratio):
268
+
269
+ x = self.patch_embed(x)
270
+
271
+ x = x + self.pos_embed[:, 1:, :]
272
+
273
+ x, mask, ids_restore = self.random_masking(x, mask_ratio)
274
+
275
+ cls_token = self.cls_token + self.pos_embed[:, :1, :]
276
+ cls_tokens = cls_token.expand(x.shape[0], -1, -1)
277
+ x = torch.cat((cls_tokens, x), dim=1)
278
+
279
+ for blk in self.blocks:
280
+ x = blk(x)
281
+ x = self.norm(x)
282
+
283
+ return x, mask, ids_restore
284
+
285
+ def forward_decoder(self, x, ids_restore):
286
+ x = self.decoder_embed(x)
287
+
288
+ mask_tokens = self.mask_token.repeat(x.shape[0], ids_restore.shape[1] + 1 - x.shape[1], 1)
289
+ x_ = torch.cat([x[:, 1:, :], mask_tokens], dim=1) # no cls token
290
+ x_ = torch.gather(x_, dim=1, index=ids_restore.unsqueeze(-1).repeat(1, 1, x.shape[2])) # unshuffle
291
+ x = torch.cat([x[:, :1, :], x_], dim=1) # append cls token
292
+
293
+ x = x + self.decoder_pos_embed
294
+
295
+ for blk in self.decoder_blocks:
296
+ x = blk(x)
297
+ x = self.decoder_norm(x)
298
+ x = self.decoder_pred(x)
299
+
300
+ x = x[:, 1:, :]
301
+
302
+ return x
303
+
304
+ def forward_loss(self, imgs, pred, mask):
305
+ """
306
+ imgs: [N, 3, H, W]
307
+ pred: [N, L, p*p*3]
308
+ mask: [N, L], 0 is keep, 1 is move.
309
+ """
310
+ target = self.patchify(imgs)
311
+ if self.norm_pix_loss:
312
+ mean = target.mean(dim=-1, keepdim=True)
313
+ var = target.var(dim=-1, keepdim=True)
314
+ target = (target - mean) / (var + 1.e-6)**0.5
315
+
316
+ loss = (pred - target) ** 2
317
+ loss = loss.mean(dim=-1) # [N, L], mean loss per patch
318
+
319
+ loss = (loss * mask).sum() / mask.sum() # mean loss on removed patches
320
+ return loss
321
+
322
+
323
+ def consistency_loss(self, latent1, latent2, use_cls=False):
324
+ """
325
+ latent1, latent2: [N, L, D]
326
+ use_cls: 是否使用 cls_token,如果 False 就用平均 patch 特征
327
+ """
328
+ if use_cls:
329
+ z1 = latent1[:, 0] # [N, D] cls token
330
+ z2 = latent2[:, 0]
331
+ else:
332
+ z1 = latent1[:, 1:].mean(dim=1) # [N, D] 平均所有 patch 特征
333
+ z2 = latent2[:, 1:].mean(dim=1)
334
+
335
+ z1 = F.normalize(z1, dim=-1)
336
+ z2 = F.normalize(z2, dim=-1)
337
+
338
+ loss = 2 - 2 * (z1 * z2).sum(dim=-1).mean()
339
+ return loss
340
+
341
+ def forward(self, imgs, mask_ratio=0.75):
342
+ # --- 第一次 mask ---
343
+ latent1, mask1, ids_restore1 = self.forward_encoder(imgs, mask_ratio)
344
+ pred1 = self.forward_decoder(latent1, ids_restore1)
345
+ loss_recon1 = self.forward_loss(imgs, pred1, mask1)
346
+
347
+ # --- 第二次 mask ---
348
+ latent2, mask2, ids_restore2 = self.forward_encoder(imgs, mask_ratio)
349
+ pred2 = self.forward_decoder(latent2, ids_restore2)
350
+ loss_recon2 = self.forward_loss(imgs, pred2, mask2)
351
+
352
+ # --- 一致性损失 ---
353
+ loss_cons = self.consistency_loss(latent1, latent2)
354
+
355
+ # --- 总 loss ---
356
+ loss_total = (loss_recon1 + loss_recon2) / 2 + self.lambda_consistency * loss_cons
357
+
358
+ return loss_total, pred1, mask1
359
+
360
+
361
+ def forward_encoder_with_given_mask(self, x, given_patch_mask):
362
+ """
363
+ Forward encoder using a given patch-level mask.
364
+
365
+ Args:
366
+ x: (N, 3, H, W)
367
+ given_patch_mask: (N, L), 1 for masked patches, 0 for kept
368
+
369
+ Returns:
370
+ x: encoded tokens with cls token (N, len_keep + 1, embed_dim)
371
+ mask: (N, L), same as input
372
+ ids_restore: (N, L), mapping for unshuffling
373
+ """
374
+
375
+ x = self.patch_embed(x) # (N, L, D)
376
+ x = x + self.pos_embed[:, 1:, :] # (N, L, D)
377
+
378
+ N, L, D = x.shape
379
+
380
+ noise = torch.rand(N, L, device=x.device)
381
+
382
+ mask_float = given_patch_mask.float()
383
+ ids_shuffle = torch.argsort(mask_float * (noise.max() + 1) + noise, dim=1) # (N, L)
384
+ ids_restore = torch.argsort(ids_shuffle, dim=1)
385
+
386
+ len_keep = L - given_patch_mask.sum(dim=1).max().int().item()
387
+ ids_keep = ids_shuffle[:, :len_keep]
388
+ x_masked = torch.gather(x, dim=1, index=ids_keep.unsqueeze(-1).repeat(1, 1, D))
389
+
390
+ cls_token = self.cls_token + self.pos_embed[:, :1, :]
391
+ cls_tokens = cls_token.expand(x.shape[0], -1, -1)
392
+ x = torch.cat((cls_tokens, x_masked), dim=1)
393
+
394
+ for blk in self.blocks:
395
+ x = blk(x)
396
+ x = self.norm(x)
397
+
398
+ return x, given_patch_mask, ids_restore
399
+
400
+ def forward_with_given_mask(self, imgs, given_patch_mask):
401
+
402
+ latent, mask, ids_restore = self.forward_encoder_with_given_mask(imgs, given_patch_mask)
403
+ pred = self.forward_decoder(latent, ids_restore)
404
+ loss = self.forward_loss(imgs, pred, mask)
405
+ return loss, pred, mask
406
+
407
+
408
+
409
+
410
+ def mae_vit_base_patch16(**kwargs):
411
+ model = MaskedAutoEncoderViT(
412
+ patch_size=16, embed_dim=768, depth=12, num_heads=12,
413
+ decoder_embed_dim=512, decoder_depth=8, decoder_num_heads=16,
414
+ mlp_ratio=4, norm_layer=partial(nn.LayerNorm, eps=1e-6), **kwargs)
415
+ return model
416
+
ExampleCode/example1/model/JplusEncoder.py ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+ import torch.nn.functional as F
4
+ from timm.models import create_model
5
+
6
+
7
+ class MultiBand_Gate(nn.Module):
8
+
9
+ def __init__(self):
10
+ """
11
+ 初始化门控类。
12
+ 不需要指定输入大小,PSF 和 input_data 的特征在内部单独提取。
13
+ """
14
+ super(MultiBand_Gate, self).__init__()
15
+
16
+ # 提取 input_data 特征的卷积网络
17
+ self.input_encoder = nn.Sequential(
18
+ nn.Conv2d(1, 8, kernel_size=3, padding=1), # 输入: (B, 1, 224, 224) -> (B, 8, 224, 224)
19
+ nn.InstanceNorm2d(8),
20
+ nn.LeakyReLU(),
21
+ nn.AdaptiveAvgPool2d((14, 14)) # 下采样为相同尺寸
22
+ )
23
+
24
+ # 合并后生成门控权重的网络
25
+ self.gate_network = nn.Sequential(
26
+ nn.Conv2d(8, 4, kernel_size=3, padding=1), # 输入: (B, 16, 14, 14)
27
+ nn.InstanceNorm2d(4),
28
+ nn.LeakyReLU(),
29
+ nn.AdaptiveAvgPool2d((1, 1)), # 全局平均池化 -> (B, 8, 1, 1)
30
+ nn.Flatten(), # -> (B, 8)
31
+ nn.Linear(4, 1), # -> (B, 1)
32
+ )
33
+
34
+ def forward(self, input_data):
35
+ """
36
+ 前向传播函数。
37
+ 参数:
38
+ - psf: 点扩散函数,形状为 (B, 1, 51, 51)
39
+ - input_data: 输入图像数据,形状为 (B, 1, 224, 224)
40
+ 返回:
41
+ - gate_weight: 门控权重,形状为 (B, 1, 224, 224)
42
+ """
43
+
44
+ input_feat = self.input_encoder(input_data) # -> (B, 8, 14, 14)
45
+
46
+ combined_feat = input_feat
47
+ gate_weight = self.gate_network(combined_feat) # -> (B, 1, 224, 224)
48
+
49
+ return gate_weight
50
+
51
+
52
+ class MultiTask_Gate(nn.Module):
53
+ def __init__(self, input_dim, num_experts, dropout_rate):
54
+ """
55
+ 初始化多任务门控类。
56
+
57
+ 参数:
58
+ - input_dim: 输入数据的维度。
59
+ - num_experts: 专家数量。
60
+ - dropout_rate: Dropout比率。
61
+ """
62
+ super(MultiTask_Gate, self).__init__()
63
+
64
+ # TODO:这里的输入可以插入qita特征
65
+ self.gate = nn.Sequential(
66
+ nn.Linear(input_dim, 128),
67
+ nn.LayerNorm(128),
68
+ nn.LeakyReLU(),
69
+ # nn.Dropout(dropout_rate), # TODO:这里的dropout会导致模型不收敛, 目前不使用dropout
70
+ nn.Linear(128, num_experts),
71
+ nn.Softmax(dim=1)
72
+ )
73
+
74
+ def forward(self, x):
75
+ x = F.adaptive_avg_pool2d(x, (1, 1))[:,:,0,0] # 全局平均池化
76
+ return self.gate(x)
77
+
78
+
79
+ class MultiBand_MoE(nn.Module):
80
+
81
+ def __init__(self, model_name='vit_small_patch16_224', pretrained=False, multi_band_experts=12):
82
+ """
83
+ 初始化多波段输入的Mixture of Experts (MoE)模型。
84
+
85
+ 参数:
86
+ - model_name: 使用的基础模型名称。
87
+ - pretrained: 是否使用预训练权重。
88
+ - input_size: 输入数据的形状 (h, w),即高度和宽度。
89
+ - multi_band_experts: 专家数量。
90
+ """
91
+ super(MultiBand_MoE, self).__init__()
92
+
93
+ self.backbone = create_model(model_name=model_name, pretrained=pretrained, num_classes=0)
94
+ self.backbone.patch_embed.proj = nn.Conv2d(multi_band_experts, 384, kernel_size=(16, 16), stride=(16, 16), bias=False)
95
+
96
+ self.multi_band_experts = nn.ModuleList([MultiBand_Gate() for _ in range(multi_band_experts)])
97
+
98
+ def forward(self, input_data):
99
+ """
100
+ 前向传播函数。
101
+
102
+ 参数:
103
+ - input_data: 输入数据,形状为 (batch_size, num_bands, h, w)。
104
+ - psf: 点扩散函数,形状为 (batch_size, num_bands, h, w)。
105
+
106
+ 返回:
107
+ - output: 特征图像,形状为 (batch_size, num_bands, h, w)。
108
+ - multi_band_weights: 多波段权重,形状为 (batch_size, num_bands, 1, 1)。
109
+ """
110
+ multi_band_weights = torch.zeros((input_data.size(0), len(self.multi_band_experts), 1, 1)).to(input_data.device)
111
+
112
+ ################################################################################################################
113
+ for i in range(len(self.multi_band_experts)):
114
+ multi_band_weight = self.multi_band_experts[i](input_data[:, i:i+1, :, :])
115
+ # print("multi_band_weight.shape:", multi_band_weight.shape)
116
+ multi_band_weight = multi_band_weight.unsqueeze(1)
117
+ multi_band_weights[:, i, :, :] = multi_band_weight
118
+
119
+ multi_band_weights = F.softmax(multi_band_weights, dim=1)
120
+ output_data = input_data * multi_band_weights
121
+ ##################################################################################################################
122
+
123
+ # # 不增加 multi_band_weights
124
+ # output_data = input_data
125
+
126
+ feature = self.backbone.forward_features(output_data)
127
+
128
+ # TODO:这里的特征图像需要进行 reshape,不知道是否正确,先这样
129
+ feature = feature[:, 1:, :]
130
+ B, N, C = feature.shape
131
+ H = W = int(N ** 0.5)
132
+ feature = feature.reshape(B, H, W, C)
133
+ feature = feature.permute(0, 3, 1, 2)
134
+
135
+ return feature, multi_band_weights[:,:,0,0]
136
+
137
+ class ReconTask_MoE(nn.Module):
138
+
139
+ def __init__(self, input_dim, num_experts, dropout_rate):
140
+ super(ReconTask_MoE, self).__init__()
141
+
142
+ self.gating = MultiTask_Gate(input_dim, num_experts, dropout_rate)
143
+
144
+ self.num_experts = num_experts
145
+
146
+ self.embeding_dim = int(384 / num_experts) # 384是backbone的输出通道数
147
+
148
+ self.decoder = nn.Sequential(
149
+ nn.ConvTranspose2d(self.embeding_dim, 64, kernel_size=4, stride=2, padding=1), # -> 56x56
150
+ nn.InstanceNorm2d(64),
151
+ nn.LeakyReLU(),
152
+ nn.ConvTranspose2d(64, 32, kernel_size=4, stride=2, padding=1), # -> 112x112
153
+ nn.InstanceNorm2d(32),
154
+ nn.LeakyReLU(),
155
+ nn.ConvTranspose2d(32, 16, kernel_size=4, stride=2, padding=1), # -> 112x112
156
+ nn.InstanceNorm2d(16),
157
+ nn.LeakyReLU(),
158
+ nn.ConvTranspose2d(16, 12, kernel_size=4, stride=2, padding=1), # -> 224x224
159
+ )
160
+
161
+ def forward(self, x):
162
+
163
+ gate_weights = self.gating(x)
164
+
165
+ expert_outputs = [x[:, i * self.embeding_dim:(i + 1) * self.embeding_dim,:,:] for i in range(self.num_experts)]
166
+
167
+ b, c, h, w = expert_outputs[0].shape
168
+ output = sum(gate_weights[:, i].view(b, 1, 1, 1) * expert_outputs[i] for i in range(self.num_experts))
169
+ output = self.decoder(output)
170
+
171
+ return output, gate_weights
ExampleCode/example1/model/SpecEncoder.py ADDED
@@ -0,0 +1,416 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import math
3
+ import torch
4
+ import torch.nn as nn
5
+ import torch.nn.functional as F
6
+ from torchinterp1d import interp1d
7
+ import torch.optim as optim
8
+ import matplotlib.pyplot as plt
9
+ import os
10
+ from tqdm import tqdm
11
+ from dataset import desi
12
+
13
+ from scipy.ndimage import gaussian_filter1d
14
+ from astropy.convolution import convolve, Gaussian1DKernel
15
+ import numpy as np
16
+ import logging
17
+
18
+ class PatchEmbed1D(nn.Module):
19
+
20
+ def __init__(self, patch_size=16, d_model=512):
21
+ super().__init__()
22
+ self.patch_size = patch_size
23
+ self.proj = nn.Linear(patch_size, d_model)
24
+
25
+ def forward(self, x):
26
+ B, L = x.shape
27
+ pad_len = (math.ceil(L / self.patch_size) * self.patch_size) - L
28
+ if pad_len > 0:
29
+ x = F.pad(x, (0, pad_len))
30
+
31
+ x = x.view(B, -1, self.patch_size)
32
+ tokens = self.proj(x)
33
+
34
+ return tokens, L + pad_len
35
+
36
+
37
+ class ReconTransformer(nn.Module):
38
+ def __init__(self,
39
+ orig_length=7781,
40
+ target_length=9780,
41
+ patch_size=16,
42
+ d_model=512,
43
+ nhead=8,
44
+ num_layers=6,
45
+ dim_feedforward=2048,
46
+ dropout=0.1,
47
+ use_z_cond=True):
48
+ super().__init__()
49
+
50
+
51
+ self.orig_length = orig_length
52
+ self.target_length = target_length
53
+ self.patch_size = patch_size
54
+ self.d_model = d_model
55
+ self.use_z_cond = use_z_cond
56
+
57
+ self.patch_embed = PatchEmbed1D(patch_size=patch_size, d_model=d_model)
58
+
59
+ max_patches = math.ceil(orig_length / patch_size)
60
+ self.pos_embed = nn.Parameter(torch.randn(1, max_patches, d_model) * 0.02)
61
+
62
+ if use_z_cond:
63
+ self.z_proj = nn.Sequential(
64
+ nn.Linear(1, d_model),
65
+ nn.GELU(),
66
+ nn.Linear(d_model, d_model)
67
+ )
68
+ else:
69
+ self.z_proj = None
70
+
71
+ encoder_layer = nn.TransformerEncoderLayer(
72
+ d_model=d_model,
73
+ nhead=nhead,
74
+ dim_feedforward=dim_feedforward,
75
+ dropout=dropout,
76
+ activation='gelu',
77
+ batch_first=True
78
+ )
79
+ self.encoder = nn.TransformerEncoder(encoder_layer, num_layers=num_layers)
80
+
81
+ self.recon_head = nn.Linear(d_model, patch_size)
82
+ self.norm = nn.LayerNorm(d_model)
83
+ self._init_weights()
84
+ self.out_patches = math.ceil(self.target_length / patch_size)
85
+
86
+ def _init_weights(self):
87
+
88
+ nn.init.xavier_uniform_(self.recon_head.weight)
89
+ if self.recon_head.bias is not None:
90
+ nn.init.zeros_(self.recon_head.bias)
91
+
92
+ def forward(self, spec, z=None):
93
+
94
+ B, L = spec.shape
95
+ tokens, padded_len = self.patch_embed(spec)
96
+ N_in = tokens.shape[1]
97
+
98
+ pos = self.pos_embed[:, :N_in, :]
99
+ tokens = tokens + pos
100
+
101
+ if self.use_z_cond and z is not None:
102
+ if z.dim() == 1:
103
+ z = z.unsqueeze(-1)
104
+ z_emb = self.z_proj(z)
105
+ tokens = tokens + z_emb.unsqueeze(1)
106
+
107
+ tokens = self.norm(tokens)
108
+ enc_out = self.encoder(tokens)
109
+
110
+ N_out = self.out_patches
111
+ if N_out != N_in:
112
+ enc_out = F.interpolate(
113
+ enc_out.transpose(1, 2),
114
+ size=N_out,
115
+ mode="linear",
116
+ align_corners=False
117
+ ).transpose(1, 2)
118
+
119
+ patches = self.recon_head(enc_out)
120
+ recon = patches.reshape(B, N_out * self.patch_size)
121
+
122
+ recon = recon[:, :self.target_length]
123
+
124
+ if z is None:
125
+ z = torch.zeros(len(recon))
126
+
127
+ B = recon.size(0)
128
+
129
+ if z.dim() == 1:
130
+ z = z.unsqueeze(1)
131
+
132
+ return recon
133
+
134
+ def extract_features(self, spec, z=None, pool="mean"):
135
+
136
+ B, L = spec.shape
137
+ tokens, padded_len = self.patch_embed(spec)
138
+ N_in = tokens.shape[1]
139
+
140
+ pos = self.pos_embed[:, :N_in, :]
141
+ tokens = tokens + pos
142
+
143
+ if self.use_z_cond and z is not None:
144
+ if z.dim() == 1:
145
+ z = z.unsqueeze(-1)
146
+ z_emb = self.z_proj(z)
147
+ tokens = tokens + z_emb.unsqueeze(1)
148
+
149
+ tokens = self.norm(tokens)
150
+ enc_out = self.encoder(tokens)
151
+
152
+ if pool == "mean":
153
+ feat = enc_out.mean(dim=1)
154
+ elif pool == "cls":
155
+ feat = enc_out[:, 0, :]
156
+ elif pool == "flatten":
157
+ feat = enc_out.reshape(B, -1)
158
+ raise ValueError("Unknown pooling method")
159
+
160
+ return feat
161
+
162
+
163
+ def to_rest_frame(spec_obs, z, wave_obs_min=3600.0, wave_obs_max=9824.0, n_obs=7781, n_rest=9780, device="cuda"):
164
+
165
+ B = spec_obs.size(0)
166
+
167
+ wave_obs = torch.linspace(wave_obs_min, wave_obs_max, n_obs,
168
+ dtype=torch.float32, device=device)
169
+ wave_obs_batch = wave_obs.unsqueeze(0).expand(B, -1)
170
+
171
+ lmbda_min = wave_obs_min / (1.0 + 0.8)
172
+ lmbda_max = wave_obs_max / 1.0
173
+
174
+ wave_rest = torch.linspace(lmbda_min, lmbda_max, n_rest,
175
+ dtype=torch.float32, device=device)
176
+
177
+ wave_rest_batch = wave_rest.unsqueeze(0).expand(B, -1)
178
+ wave_redshifted = wave_rest_batch * (1 + z.unsqueeze(-1))
179
+
180
+ spec_rest = interp1d(wave_obs_batch, spec_obs, wave_redshifted)
181
+ valid = (wave_redshifted >= wave_obs_min) & (wave_redshifted <= wave_obs_max)
182
+ spec_rest[~valid] = 0.0
183
+
184
+ return spec_rest, wave_rest
185
+
186
+ def weighted_mse_loss(recon, target, weight):
187
+
188
+ diff = (recon - target) ** 2
189
+ weighted = diff * weight
190
+ denom = weight.sum()
191
+ if denom == 0:
192
+ return diff.mean()
193
+ return weighted.sum() / denom
194
+
195
+ def consistency_loss(sf, sf_aug, individual=False):
196
+ batch_size, s_size = sf.shape
197
+ x = torch.sum((sf_aug - sf)**2/(0.5)**2,dim=1)/s_size
198
+ sim_loss = torch.sigmoid(x)-0.5
199
+ if individual:
200
+ return x, sim_loss
201
+ return sim_loss.sum()
202
+
203
+
204
+ def train_model(desi, model, trainloader, validloader, device, epochs=20, lr=1e-4, weight_decay=1e-5,
205
+ save_path="best_recon_transformer.pth", plot_interval=1, fig_dir="figures",
206
+ log_interval=5000, log_file="training.log"):
207
+
208
+ # === 新增:配置 logging ===
209
+ os.makedirs(fig_dir, exist_ok=True)
210
+ os.makedirs(os.path.dirname(save_path) if os.path.dirname(save_path) else '.', exist_ok=True)
211
+
212
+ logging.basicConfig(
213
+ level=logging.INFO,
214
+ format='%(asctime)s - %(levelname)s - %(message)s',
215
+ handlers=[
216
+ logging.FileHandler(log_file, mode='w'), # 写入文件(覆盖模式)
217
+ logging.StreamHandler() # 同时输出到控制台
218
+ ]
219
+ )
220
+ logger = logging.getLogger()
221
+
222
+ model.to(device)
223
+ optimizer = optim.AdamW(model.parameters(), lr=lr, weight_decay=weight_decay)
224
+
225
+ best_val_loss = float("inf")
226
+ fixed_valid_batch = None
227
+
228
+ iter_loss_accums, iter_mse_accums, iter_consistency_accums = [], [], []
229
+ train_losses, val_losses = [], []
230
+
231
+ for epoch in range(1, epochs + 1):
232
+ model.train()
233
+ train_loss, num_samples = 0.0, 0
234
+ iter_count = 0
235
+ iter_loss_accum = iter_mse_accum = iter_consistency_accum = 0.0
236
+
237
+ for spec, w, z, _, _, _, _, _ in tqdm(trainloader, desc=f"Epoch {epoch} [Train]", leave=False):
238
+
239
+ B = spec.size(0)
240
+ # Preprocessing: smoothing
241
+ flux_smooth = gaussian_filter1d(spec.cpu().detach().numpy(), sigma=5, axis=1)
242
+ kernel = Gaussian1DKernel(stddev=5, x_size=5)
243
+ flux_conv_batch = np.array([convolve(f, kernel) for f in flux_smooth])
244
+
245
+ spec = torch.tensor(flux_conv_batch, device=device, dtype=torch.float32)
246
+ spec, w, z = spec.to(device).float(), w.to(device).float(), z.to(device).float()
247
+
248
+ rest_spec = to_rest_frame(spec, z, device=device)[0]
249
+ w_spec = to_rest_frame(w, z, device=device)[0]
250
+
251
+ optimizer.zero_grad()
252
+ recon = model(spec, z)
253
+ mse_loss = weighted_mse_loss(recon, rest_spec, w_spec)
254
+
255
+ spec_aug, w_aug, z_aug = desi.augment_spectra(spec, w, z)
256
+ specf_aug = model.extract_features(spec_aug, z_aug)
257
+ specf = model.extract_features(spec, z)
258
+ consistency_loss_value = consistency_loss(specf, specf_aug)
259
+
260
+ loss = mse_loss + consistency_loss_value
261
+ # loss = mse_loss
262
+ loss.backward()
263
+ optimizer.step()
264
+
265
+ train_loss += loss.item() * B
266
+ num_samples += B
267
+ iter_count += 1
268
+
269
+ iter_loss_accum += loss.item()
270
+ iter_mse_accum += mse_loss.item()
271
+ iter_consistency_accum += consistency_loss_value.item()
272
+
273
+ if iter_count % log_interval == 0:
274
+ avg_iter_loss = iter_loss_accum / log_interval
275
+ avg_iter_mse = iter_mse_accum / log_interval
276
+ avg_iter_consistency = iter_consistency_accum / log_interval
277
+
278
+ iter_loss_accums.append(avg_iter_loss)
279
+ iter_mse_accums.append(avg_iter_mse)
280
+ iter_consistency_accums.append(avg_iter_consistency)
281
+
282
+ # === 替换 print 为 logger.info ===
283
+ logger.info(
284
+ f"Epoch {epoch} Iter {iter_count}: "
285
+ f"Avg Total={avg_iter_loss:.6f}, "
286
+ f"MSE={avg_iter_mse:.6f}, "
287
+ f"Consistency={avg_iter_consistency:.6f}"
288
+ )
289
+
290
+ # Plot loss curves
291
+ fig_loss, axes = plt.subplots(3, 1, figsize=(10, 12), sharex=True)
292
+ axes[0].plot(iter_loss_accums, color='blue')
293
+ axes[0].set_ylabel('Total Loss'); axes[0].grid(True)
294
+ axes[1].plot(iter_mse_accums, color='green')
295
+ axes[1].set_ylabel('MSE Loss'); axes[1].grid(True)
296
+ axes[2].plot(iter_consistency_accums, color='orange')
297
+ axes[2].set_ylabel('Consistency Loss')
298
+ axes[2].set_xlabel('Iteration'); axes[2].grid(True)
299
+ fig_loss.suptitle('Training Loss Components')
300
+ plt.tight_layout(rect=[0, 0, 1, 0.96])
301
+ fig_loss.savefig(os.path.join(fig_dir, "loss_curve_iter.png"))
302
+ plt.close(fig_loss)
303
+
304
+ # Plot reconstructions
305
+ for i in range(min(4, B)):
306
+ plt.figure(figsize=(12, 3))
307
+ plt.subplot(2,1,1)
308
+ plt.plot(rest_spec[i].cpu().numpy(), label="Input", color='blue', linewidth=0.5, alpha=0.7)
309
+ plt.plot(recon[i].detach().cpu().numpy(), label="Reconstructed", color='red', linewidth=0.5, alpha=0.7)
310
+ plt.title(f"Epoch {epoch} Iter {iter_count} Sample {i} | z = {z[i].item():.3f}")
311
+ plt.legend(); plt.grid(True); plt.tight_layout()
312
+ plt.subplot(2,1,2)
313
+ plt.plot(w_spec[i].detach().cpu().numpy(), label="w", color='black', linewidth=0.5, alpha=0.7)
314
+ plt.legend(); plt.grid(True); plt.tight_layout()
315
+ plt.savefig(os.path.join(fig_dir, f"recon_epoch{epoch}_iter{iter_count}_sample{i}.png"))
316
+ plt.close()
317
+
318
+ iter_loss_accum = iter_mse_accum = iter_consistency_accum = 0.0
319
+
320
+ train_loss /= num_samples
321
+ train_losses.append(train_loss)
322
+
323
+ # Validation
324
+ model.eval()
325
+ val_loss, num_samples = 0.0, 0
326
+ with torch.no_grad():
327
+ for i, (spec, w, z, _, _, _, _, _) in enumerate(tqdm(validloader, desc=f"Epoch {epoch} [Valid]", leave=False)):
328
+ spec, w, z = spec.to(device).float(), w.to(device).float(), z.to(device).float()
329
+ rest_spec = to_rest_frame(spec, z, device=device)[0]
330
+ w_spec = to_rest_frame(w, z, device=device)[0]
331
+ recon = model(spec, z)
332
+ loss = weighted_mse_loss(recon, rest_spec, w_spec)
333
+ val_loss += loss.item() * spec.size(0)
334
+ num_samples += spec.size(0)
335
+
336
+ if fixed_valid_batch is None and i == 0:
337
+ fixed_valid_batch = (rest_spec.cpu(), recon.cpu(), z.cpu())
338
+
339
+ val_loss /= num_samples
340
+ val_losses.append(val_loss)
341
+
342
+ # === 替换 print 为 logger.info ===
343
+ logger.info(f"Epoch {epoch}: Train Loss = {train_loss:.6f}, Val Loss = {val_loss:.6f}")
344
+
345
+ if val_loss < best_val_loss:
346
+ best_val_loss = val_loss
347
+ save_dict = model.module.state_dict() if isinstance(model, nn.DataParallel) else model.state_dict()
348
+ torch.save(save_dict, save_path)
349
+ logger.info(f" ✅ New best model saved to {save_path}")
350
+
351
+ # Plot validation reconstructions periodically
352
+ if epoch % plot_interval == 0 and fixed_valid_batch is not None:
353
+ spec_fixed, recon_fixed, z_fixed = fixed_valid_batch
354
+ B_vis = min(4, spec_fixed.size(0))
355
+ fig_recon, axes = plt.subplots(B_vis, 1, figsize=(12, 2 * B_vis))
356
+ if B_vis == 1: axes = [axes]
357
+ for i in range(B_vis):
358
+ ax = axes[i]
359
+ ax.plot(spec_fixed[i].numpy(), label="Input", color='blue', linewidth=0.5, alpha=0.7)
360
+ ax.plot(recon_fixed[i].numpy(), label="Reconstructed", color='red', linewidth=0.5, alpha=0.7)
361
+ ax.set_title(f"z = {z_fixed[i].item():.3f}")
362
+ ax.legend(); ax.grid(True)
363
+ plt.tight_layout()
364
+ plt.savefig(os.path.join(fig_dir, f"recon_epoch_{epoch:03d}.png"))
365
+ plt.close(fig_recon)
366
+
367
+ logger.info("\n🎉 Training completed.")
368
+ logger.info(f"Best Validation Loss: {best_val_loss:.6f}")
369
+
370
+
371
+ if __name__ == "__main__":
372
+
373
+ device = torch.device("cuda:3" if torch.cuda.is_available() else "cpu")
374
+
375
+ desi = desi.DESI()
376
+
377
+ CSV_PATH = '/home/data/multimodalUniverse/DESIspec_make/matched_sources_by_targetid_inner.csv'
378
+
379
+ trainloader = desi.get_data_loader(
380
+ csv_path=CSV_PATH,
381
+ which="train",
382
+ batch_size=64,
383
+ shuffle=True
384
+ )
385
+
386
+ validloader = desi.get_data_loader(
387
+ csv_path=CSV_PATH,
388
+ which="test",
389
+ batch_size=64,
390
+ shuffle=False
391
+ )
392
+
393
+ model = ReconTransformer(
394
+ orig_length=7781,
395
+ target_length=9780,
396
+ patch_size=4,
397
+ d_model=512,
398
+ nhead=8,
399
+ num_layers=6,
400
+ dim_feedforward=2048,
401
+ dropout=0.1,
402
+ use_z_cond=True
403
+ )
404
+
405
+ model.to(device)
406
+
407
+ train_model( desi, model=model,
408
+ trainloader=trainloader,
409
+ validloader=validloader,
410
+ device=device,
411
+ epochs=1000,
412
+ lr=1e-4,
413
+ weight_decay=1e-5,
414
+ save_path="./training_plots_reshift/best_recon_transformer_acc.pth",
415
+ plot_interval=1,
416
+ fig_dir="training_plots_reshift")
ExampleCode/example1/model/__pycache__/DesiEncoder.cpython-310.pyc ADDED
Binary file (12.2 kB). View file
 
ExampleCode/example1/model/__pycache__/JplusEncoder.cpython-310.pyc ADDED
Binary file (5.84 kB). View file
 
ExampleCode/example1/model/checkpoint/DesiEncoder.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:96960363558415490e37ddcb6857b1ed270171000b14d0125fe13981a8cb1c55
3
+ size 1341142902
ExampleCode/example1/model/checkpoint/JplusEncoder.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b39ee0c41ec120e3da949d1ddd15418e2727e54c66e6125b9b0fada459a51c1f
3
+ size 90313443
ExampleCode/example2/Cot.ipynb ADDED
@@ -0,0 +1,373 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "id": "cd7f04e2",
7
+ "metadata": {},
8
+ "outputs": [],
9
+ "source": [
10
+ "import pandas as pd\n",
11
+ "import glob\n",
12
+ "import numpy as np\n",
13
+ "import os\n",
14
+ "import json\n",
15
+ "import matplotlib.pyplot as plt\n",
16
+ "import requests\n",
17
+ "from PIL import Image\n",
18
+ "from io import BytesIO\n",
19
+ "\n",
20
+ "# ======================\n",
21
+ "# 配置信息\n",
22
+ "# ======================\n",
23
+ "\n",
24
+ "cot_info = {\n",
25
+ " \"allwise\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/semantics/allwise.json\",\n",
26
+ " \"galex\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/semantics/Galex.json\",\n",
27
+ " \"spec\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/catalogs/fastspecfit/fastspecfit_ra_dec_with_source.csv\",\n",
28
+ " \"vla\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/semantics/vla.json\",\n",
29
+ " \"vla_g\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/semantics/vla_g.json\",\n",
30
+ " \"chandra\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/semantics/chandra.json\",\n",
31
+ " \"desiimage\": \"/home/dell461/ljm/DATA_other/AstroM3/Dataset/semantics/desi.json\"\n",
32
+ "}\n",
33
+ "\n",
34
+ "DEFAULT_CATALOG_DIR = '/home/dell461/ljm/DATA_other/AstroM3/Dataset/catalogs/Parameters/'\n",
35
+ "DEFAULT_SEARCH_RADIUS_ARCSEC = 2.0\n",
36
+ "\n",
37
+ "# ======================\n",
38
+ "# 核心函数:交叉匹配\n",
39
+ "# ======================\n",
40
+ "\n",
41
+ "def cross_match_catalogs(\n",
42
+ " target_ra: float,\n",
43
+ " target_dec: float,\n",
44
+ " catalog_dir: str = DEFAULT_CATALOG_DIR,\n",
45
+ " search_radius_arcsec: float = DEFAULT_SEARCH_RADIUS_ARCSEC,\n",
46
+ " ra_col_names: list = None,\n",
47
+ " dec_col_names: list = None,\n",
48
+ " verbose: bool = True\n",
49
+ "):\n",
50
+ " if ra_col_names is None:\n",
51
+ " ra_col_names = ['ra', 'raj2000', 'ra_deg', 'ra_degrees', 'alpha']\n",
52
+ " if dec_col_names is None:\n",
53
+ " dec_col_names = ['dec', 'dej2000', 'dec_deg', 'dec_degrees', 'delta']\n",
54
+ "\n",
55
+ " ra_col_names = [name.lower().strip() for name in ra_col_names]\n",
56
+ " dec_col_names = [name.lower().strip() for name in dec_col_names]\n",
57
+ "\n",
58
+ " csv_pattern = os.path.join(catalog_dir, '*.csv') if os.path.isdir(catalog_dir) else catalog_dir\n",
59
+ " csv_paths = glob.glob(csv_pattern)\n",
60
+ "\n",
61
+ " if not csv_paths:\n",
62
+ " if verbose:\n",
63
+ " print(f\"⚠️ No CSV files found in: {csv_pattern}\")\n",
64
+ " return []\n",
65
+ "\n",
66
+ " all_matches = []\n",
67
+ " if verbose:\n",
68
+ " print(f\"🔍 Searching within {search_radius_arcsec} arcsec of RA={target_ra}, Dec={target_dec}\\n\")\n",
69
+ "\n",
70
+ " for csv_path in sorted(csv_paths):\n",
71
+ " filename = os.path.basename(csv_path)\n",
72
+ " if verbose:\n",
73
+ " print(f\"Processing: {filename}\")\n",
74
+ "\n",
75
+ " try:\n",
76
+ " df = pd.read_csv(csv_path)\n",
77
+ " except Exception as e:\n",
78
+ " if verbose:\n",
79
+ " print(f\" ❌ Failed to read {filename}: {e}\")\n",
80
+ " continue\n",
81
+ "\n",
82
+ " ra_col = dec_col = None\n",
83
+ " for col in df.columns:\n",
84
+ " col_clean = col.lower().strip()\n",
85
+ " if col_clean in ra_col_names:\n",
86
+ " ra_col = col\n",
87
+ " if col_clean in dec_col_names:\n",
88
+ " dec_col = col\n",
89
+ "\n",
90
+ " if not ra_col or not dec_col:\n",
91
+ " if verbose:\n",
92
+ " print(f\" ⚠️ RA/Dec columns not found. Skipping.\")\n",
93
+ " continue\n",
94
+ "\n",
95
+ " df[ra_col] = pd.to_numeric(df[ra_col], errors='coerce')\n",
96
+ " df[dec_col] = pd.to_numeric(df[dec_col], errors='coerce')\n",
97
+ " df = df.dropna(subset=[ra_col, dec_col])\n",
98
+ "\n",
99
+ " if df.empty:\n",
100
+ " if verbose:\n",
101
+ " print(f\" ⚠️ No valid numeric RA/Dec rows. Skipping.\")\n",
102
+ " continue\n",
103
+ "\n",
104
+ " dra = (df[ra_col] - target_ra) * np.cos(np.radians(target_dec))\n",
105
+ " ddec = df[dec_col] - target_dec\n",
106
+ " dist_deg = np.sqrt(dra**2 + ddec**2)\n",
107
+ " dist_arcsec = dist_deg * 3600.0\n",
108
+ "\n",
109
+ " mask = dist_arcsec <= search_radius_arcsec\n",
110
+ " matched_rows = df[mask].copy()\n",
111
+ " matched_rows['match_distance_arcsec'] = dist_arcsec[mask].values\n",
112
+ "\n",
113
+ " if not matched_rows.empty:\n",
114
+ " all_matches.append({\n",
115
+ " 'file': filename,\n",
116
+ " 'matches': matched_rows\n",
117
+ " })\n",
118
+ " else:\n",
119
+ " if verbose:\n",
120
+ " print(f\" ❌ No match within {search_radius_arcsec} arcsec\")\n",
121
+ "\n",
122
+ " if verbose:\n",
123
+ " print(\"\\n\" + \"=\"*60)\n",
124
+ " if all_matches:\n",
125
+ " print(f\"✅ Total matched files: {len(all_matches)}\")\n",
126
+ " else:\n",
127
+ " print(\"❌ No matches found in any file.\")\n",
128
+ "\n",
129
+ " return all_matches\n",
130
+ "\n",
131
+ "\n",
132
+ "# ======================\n",
133
+ "# 加载语义描述\n",
134
+ "# ======================\n",
135
+ "\n",
136
+ "def load_semantic_info(filename: str):\n",
137
+ " basename = filename.lower()\n",
138
+ " for key in cot_info:\n",
139
+ " if key in basename:\n",
140
+ " try:\n",
141
+ " with open(cot_info[key], 'r', encoding='utf-8') as f:\n",
142
+ " return json.load(f)\n",
143
+ " except Exception as e:\n",
144
+ " print(f\"⚠️ Failed to load semantic info for {key}: {e}\")\n",
145
+ " return {}\n",
146
+ " return {}\n",
147
+ "\n",
148
+ "\n",
149
+ "# ======================\n",
150
+ "# 格式化用于 LLM 的输入\n",
151
+ "# ======================\n",
152
+ "\n",
153
+ "def format_matches_for_llm(matches):\n",
154
+ " if not matches:\n",
155
+ " return \"No observational parameters found within search radius.\"\n",
156
+ "\n",
157
+ " sections = []\n",
158
+ " for item in matches:\n",
159
+ " filename = item['file']\n",
160
+ " df = item['matches']\n",
161
+ " row = df.iloc[0] # 取第一个匹配源\n",
162
+ "\n",
163
+ " semantic = load_semantic_info(filename)\n",
164
+ " lines = [f\"[Source: {filename}]\"]\n",
165
+ "\n",
166
+ " for col, val in row.items():\n",
167
+ " if col == 'match_distance_arcsec':\n",
168
+ " continue\n",
169
+ " if pd.isna(val) or (isinstance(val, float) and np.isnan(val)):\n",
170
+ " continue\n",
171
+ "\n",
172
+ " if isinstance(val, float):\n",
173
+ " if abs(val) < 1e-4 or abs(val) > 1e5:\n",
174
+ " val_str = f\"{val:.3e}\"\n",
175
+ " else:\n",
176
+ " val_str = f\"{val:.4f}\"\n",
177
+ " else:\n",
178
+ " val_str = str(val)\n",
179
+ "\n",
180
+ " desc = semantic.get(col, {}).get('description', '') if isinstance(semantic, dict) else ''\n",
181
+ " if desc:\n",
182
+ " lines.append(f\" {col}: {val_str} # {desc}\")\n",
183
+ " else:\n",
184
+ " lines.append(f\" {col}: {val_str}\")\n",
185
+ "\n",
186
+ " sections.append(\"\\n\".join(lines))\n",
187
+ "\n",
188
+ " return \"\\n\\n\".join(sections).strip()\n",
189
+ "\n",
190
+ "\n",
191
+ "# ======================\n",
192
+ "# 调用 LLM 进行分类\n",
193
+ "# ======================\n",
194
+ "\n",
195
+ "def classify_galaxy_with_llm(ra, dec, param_text):\n",
196
+ " prompt = f\"\"\"\n",
197
+ "You are a professional astronomer. Analyze the following multi-wavelength observational parameters \n",
198
+ "for a source at RA={ra}, Dec={dec}. Use the provided metadata (including units and descriptions) \n",
199
+ "to infer the most likely galaxy type (e.g., spiral, elliptical, starburst, AGN, quasar, etc.).\n",
200
+ "\n",
201
+ "Observational data:\n",
202
+ "{param_text}\n",
203
+ "\n",
204
+ "Provide a concise classification with reasoning based on physical indicators (e.g., X-ray luminosity, UV excess, radio morphology, IR colors), no more than 200 words.\n",
205
+ "\"\"\"\n",
206
+ "\n",
207
+ " from openai import OpenAI\n",
208
+ "\n",
209
+ " OPENAI_API_KEY = \"sk-c38a5fddbcb44147b0efa9d7d1ff5aec\"\n",
210
+ " OPENAI_API_BASE = \"https://dashscope.aliyuncs.com/compatible-mode/v1\"\n",
211
+ "\n",
212
+ " client = OpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_API_BASE)\n",
213
+ "\n",
214
+ " try:\n",
215
+ " response = client.chat.completions.create(\n",
216
+ " model=\"qwen-plus\",\n",
217
+ " messages=[\n",
218
+ " {\"role\": \"system\", \"content\": \"You are a professional astronomer. Be precise, evidence-based, and concise.\"},\n",
219
+ " {\"role\": \"user\", \"content\": prompt.strip()}\n",
220
+ " ],\n",
221
+ " temperature=0.7,\n",
222
+ " max_tokens=512\n",
223
+ " )\n",
224
+ " return response.choices[0].message.content.strip()\n",
225
+ " except Exception as e:\n",
226
+ " return f\"❌ Error calling LLM: {e}\"\n",
227
+ "\n",
228
+ "\n",
229
+ "# ======================\n",
230
+ "# 下载并显示 DESI/Legacy Survey 图像\n",
231
+ "# ======================\n",
232
+ "\n",
233
+ "def fetch_and_show_desi_image(ra, dec, layer=\"ls-dr9\", pixscale=0.25, size=92, save_path=\"1.jpg\"):\n",
234
+ " \"\"\"\n",
235
+ " 从 Legacy Survey 下载 cutout 图像并显示。\n",
236
+ " \n",
237
+ " Parameters:\n",
238
+ " ra, dec: 天体坐标(度)\n",
239
+ " layer: 图像图层,如 'ls-dr9'\n",
240
+ " pixscale: 像素尺度(角秒/像素)\n",
241
+ " size: 图像尺寸(像素)\n",
242
+ " save_path: 可选,保存路径\n",
243
+ " \"\"\"\n",
244
+ " url = f\"https://www.legacysurvey.org/viewer/cutout.jpg?ra={ra}&dec={dec}&layer={layer}&pixscale={pixscale}&size={size}\"\n",
245
+ " \n",
246
+ " try:\n",
247
+ " response = requests.get(url)\n",
248
+ " response.raise_for_status()\n",
249
+ " img = Image.open(BytesIO(response.content))\n",
250
+ " \n",
251
+ " plt.figure(figsize=(6, 6))\n",
252
+ " plt.imshow(img)\n",
253
+ " plt.title(f\"DESI/Legacy Survey Cutout\\nRA={ra:.5f}, Dec={dec:.5f}\", fontsize=12)\n",
254
+ " plt.axis('off')\n",
255
+ "\n",
256
+ " plt.savefig(save_path, dpi=150, bbox_inches='tight')\n",
257
+ "\n",
258
+ " return img\n",
259
+ " except Exception as e:\n",
260
+ " print(f\"❌ Failed to fetch or display image: {e}\")\n",
261
+ " return None\n",
262
+ "\n",
263
+ "\n",
264
+ "# ======================\n",
265
+ "# 主流程函数\n",
266
+ "# ======================\n",
267
+ "\n",
268
+ "def analyze_galaxy(ra: float, dec: float, show_image: bool = True, **kwargs):\n",
269
+ " \"\"\"\n",
270
+ " 完整分析流程:交叉匹配 → 格式化 → LLM 分类 → 可视化图像\n",
271
+ " \n",
272
+ " Parameters:\n",
273
+ " ra, dec: 目标天体坐标(度)\n",
274
+ " show_image: 是否显示 DESI 图像\n",
275
+ " **kwargs: 传递给 cross_match_catalogs 的参数\n",
276
+ " \"\"\"\n",
277
+ " \n",
278
+ " # 1. 交叉匹配\n",
279
+ " matches = cross_match_catalogs(ra, dec, **kwargs)\n",
280
+ "\n",
281
+ " # 2. 格式化参数\n",
282
+ " param_text = format_matches_for_llm(matches)\n",
283
+ "\n",
284
+ " # 3. LLM 分类\n",
285
+ " result = classify_galaxy_with_llm(ra, dec, param_text)\n",
286
+ "\n",
287
+ " fetch_and_show_desi_image(ra, dec,save_path=f\"/home/dell461/ljm/DATA_other/AstroM3/ExampleCode/example2/image/{ra}_{dec}.jpg\")\n",
288
+ " \n",
289
+ " with open(f\"/home/dell461/ljm/DATA_other/AstroM3/ExampleCode/example2/llm_result/{ra}_{dec}.txt\", \"w\") as f:\n",
290
+ " f.write(result) \n",
291
+ "\n",
292
+ " return {\n",
293
+ " \"matches\": matches,\n",
294
+ " \"llm_result\": result,\n",
295
+ " \"formatted_params\": param_text\n",
296
+ " }\n",
297
+ "\n"
298
+ ]
299
+ },
300
+ {
301
+ "cell_type": "code",
302
+ "execution_count": 19,
303
+ "id": "d02a3ffd",
304
+ "metadata": {},
305
+ "outputs": [
306
+ {
307
+ "name": "stdout",
308
+ "output_type": "stream",
309
+ "text": [
310
+ "🔍 Searching within 2.0 arcsec of RA=239.5743316076613, Dec=32.91914641623415\n",
311
+ "\n",
312
+ "Processing: allwsie_classification_results.csv\n",
313
+ " ❌ No match within 2.0 arcsec\n",
314
+ "Processing: chandraimage_classification_results.csv\n",
315
+ " ❌ No match within 2.0 arcsec\n",
316
+ "Processing: desiimage_classification_results.csv\n",
317
+ " ❌ No match within 2.0 arcsec\n",
318
+ "Processing: galex_classification_results.csv\n",
319
+ " ❌ No match within 2.0 arcsec\n",
320
+ "Processing: vla_classification_result_g.csv\n",
321
+ "Processing: vla_classification_results.csv\n",
322
+ "\n",
323
+ "============================================================\n",
324
+ "✅ Total matched files: 2\n"
325
+ ]
326
+ },
327
+ {
328
+ "data": {
329
+ "image/png": "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X8k5i4iccsop8pa3vEVERN797nfLNddcI9dcc83qmvvrv/5reeELXyj3u9/95NJLL5V3vvOdcv3118uxxx4rN91009061saNG1e/qb/whS9cPdZrX/vaX9n5KL9hGOV/NBdeeKEREXPdddft8zXr1683hx9++Or/v+51rzMiQv+75z3vuea9b3jDG4zv+6v/fthhh5mXvOQl5nvf+95U/XjqU59qfvd3f3dN2+bNm80pp5yyz/5ec801RkTMO97xjjXtt99+u4miyLzqVa8yxhiztLRkgiAwz3zmM+n7jz/++H0eoygKk+e5eeELX2ge/OAHr7Z/9atfNSJiXvOa1+zzvcYYc/zxx5sHPehBa9pe+tKXmk6nY4bD4X7f+61vfcsceuihq2PabrfNqaeeai666CJTVdXq66666iojIuaqq65a8/6bb77ZiIi58MILV9ue//znGxExH/rQh+B4D3nIQ8wjHvGINW3vec97jIiY73//+8YYY2677Tbjuq75kz/5kzWvGw6HZsOGDeYP/uAPVtte97rXGd/3zc6dO1fbLrnkEiMi5uqrr97nee/YscOIiHnWs56178G5CyJiXve610H75s2bzfOf//zV///EJz5Bx2p5edlEUWSe9KQnrWm/7bbbTBAE5jnPec5q2/HHH0/XzPOf/3yzefPm1f/fvXv3Pvul/M9DvwkrB8Ts45vWl770JbnuuuvW/HfZZZetec1rX/taue222+RDH/qQvPjFL5ZWqyXve9/75KijjpKPfexj+z3ueDyWf/3Xf73bv4r+7Gc/K5ZlyWmnnbbmW/qGDRvkyCOPXP317LXXXitpmsof/MEfrHn/wx/+cCrnfOITn5BHPvKR0mq1xHVd8TxPLrjggjW/lvzCF74gIrLfb7MiP/82/N3vfle+8Y1viMjPf+1+8cUXy/Of/3xptVr7fe8xxxwjP/3pT+WKK66Qc845R4499lj58pe/LKeffro8+clP/qW+GbOxPvPMM+Wb3/ym/OQnP1ltu/DCC+WYY46R+9///iIi8q//+q9SFIWcfvrpa8Y8DEM5/vjj1/xK/KUvfamI/Fyw2su73vUuecADHiDHHXfcL9z3/wquueYaieMYfl18yCGHyGMe8xj58pe/XE/HlN8adBNW9st4PJbFxUX6K8IjjzxSjj766DX/7b0p35n169fLmWeeKe973/vk+uuvl6uvvlp835ezzz57v8f+3Oc+J3mer3nGNw07d+4UY4ysX79ePM9b89+1114re/bsEZH/98z6rsIZa7v00kvlD/7gD+Sggw6Sj3zkI3LNNdfIddddJy94wQskSZLV1+3evVscx5ENGzbst49PecpTZMuWLau/lv3whz8s4/H4gJv3XjzPk5NPPlne/OY3y7/+67/K7bffLieccIJ89rOfXf1B4O7SaDSk0+lA+3Of+1wJgmD1GekNN9wg1113nZx55pmrr9n7K/5jjjkGxvySSy5ZHXORn4/tM5/5TDn//POlLEu5/vrr5Wtf+5r88R//8X77Nz8/L41GQ26++eZf6Px+EfbnNWzatOkXesSiKHdG7Whlv3zuc5+Tsix/pX9Kcdxxx8njH/94ueyyy2TXrl2ybt06+rpPfepT8pjHPEZmZmbu1ufPz8+LZVnyta99jco7e9vm5uZERNY8I97Ljh071nwb/shHPiKHHXaYXHLJJWJZ1mp7mqZr3rewsCBlWcqOHTv2KU+J/Fyg+qM/+iM555xz5B3veIe85z3vkZNOOknuc5/73K1z3cvc3Jy84hWvkK985Svygx/8QJ70pCdJGIa0j3feEO/Mnc/rzszMzMhTnvIUueiii+RNb3qTXHjhhRKGoTz72c9efc1eS/6Tn/ykbN68+YD9Pfvss+Xiiy+Wyy+/XK644grp9Xry3Oc+d7/vcRxHTjrpJPnCF74gW7dulYMPPviAxwmCAM5fRKbePPeuke3bt8O/bdu2bc1fB4RhKCsrK/C6fY23oojoN2FlP9x2223y53/+59LtduXFL37x3X7/zp076Z/MlGUpN910kzQaDen1evS9SZLI5z//+bv9q2gRkVNPPVWMMXLHHXfAN/Wjjz5aHvCAB4iIyMMe9jAJgkAuueSSNe+/9tpr5dZbb13TZlmW+L6/ZqPasWMH2NFPfOITRUTkve997wH7edZZZ4nv+/Lc5z5XfvKTnxzwm6CISJ7n+9xA9v5afO9vLfb+EHHnUBQRWbW07w5nnnmmbNu2TT7/+c/LRz7yEXna0562Zu5OPvlkcV1X/vM//5OO+Z3//E3k53/e9ohHPELe9ra3yT/90z/JGWecIc1m84D9ePWrXy3GGHnRi14kWZbBv+d5Lp/5zGdW/3/Lli1w/ldeeaWMRqM1bXt/MIvjeE37scceK1EUyUc+8pE17Vu3bpUrr7xSTjrppDXHuvHGG9ds+ouLi/LNb35zqmMp/zPRb8KKiIj84Ac/WH2Ot2vXLvna174mF154oTiOI5/+9KdX/6zizvzf//t/aVjHEUccIZ1ORy6++GI5//zz5TnPeY4cc8wx0u12ZevWrfLBD35QfvjDH8q5554rvu/T/lxxxRUymUzkqU99Kv33HTt2yCc/+Ulo37JlizzykY+UP/zDP5QzzzxTvv3tb8txxx0nzWZTtm/fLl//+tflAQ94gLz0pS+V2dlZ+bM/+zP567/+a5mZmZGnPe1psnXrVjnvvPNk48aNa/7c59RTT5VLL71UXvayl8nTn/50uf322+WNb3yjbNy4cY0h++hHP1qe97znyZve9CbZuXOnnHrqqRIEgXznO9+RRqMhf/Inf7L62l6vJ6effrq8973vlc2bN8vv/u7v7nN+9rKysiJbtmyRZzzjGfLYxz5WDjnkEBmNRvKVr3xF3vnOd8rhhx8uv/d7vyciIhs2bJDHPvaxq+e3efNm+fKXvyyXXnrpAY9zVx7/+MfLwQcfLC972ctkx44da34VvXfc3/CGN8hrXvMa+dnPfiZPeMITZGZmRnbu3Cnf+ta3pNlsrgZU7OXss8+WZz7zmWJZlrzsZS+bqh/HHnusvPe975WXvexlctRRR8lLX/pSud/97id5nst3vvMdef/73y/3v//9V8fyec97nrz2ta+Vc889V44//ni54YYb5F3vehes272PUd7//vdLu92WMAzlsMMOk7m5OXnta18r55xzjpx++uny7Gc/WxYXF+W8886TMAzlda973epnPO95z5Pzzz9fTjvtNHnRi14ki4uL8va3vx1+xd9ut2Xz5s1y+eWXy0knnSSzs7MyPz//Xx4SovyaUqsWptTOXit573++75t169aZ448/3rzlLW8xu3btgvfsz44WEfNv//ZvxhhjbrjhBvPKV77SHH300WZhYcG4rmtmZmbM8ccfby6++GLaj7129GmnnbZPO3nz5s37PPadjdcPfehD5mEPe5hpNpsmiiJzz3ve05x++unm29/+9uprqqoyb3rTm8zBBx9sfN83D3zgA81nP/tZc+SRR5qnPe1pa4771re+1WzZssUEQWAOP/xw84EPfGB1LO5MWZbm7/7u78z9739/4/u+6Xa75thjjzWf+cxn4Fy+8pWvGBExb33rW/c9SXciTVPzt3/7t+aJT3yiOfTQQ00QBCYMQ3P44YebV73qVWZxcXHN67dv326e/vSnm9nZWdPtds1pp51mvv3tb1M7utls7vfY55xzjhERc8ghh5iyLOlrLrvsMnPiiSeaTqdjgiAwmzdvNk9/+tPNl770JXouQRCYJzzhCVOd+5357ne/a57//OebQw891Pi+b5rNpnnwgx9szj333DVrNk1T86pXvcoccsghJooic/zxx5vvfve7YEcbY8zf//3fm8MOO8w4jgPj88EPftA88IEPXJ3PpzzlKeaHP/wh9Osf//EfzeGHH27CMDRHHHGEueSSS8CONsaYL33pS+bBD36wCYIA1q3yPwvLmF/RHxkqyq+ILMtk3bp18sY3vnHNN8f/Lm6++Wa5733vK6973evknHPO+S891itf+Up573vfK7fffvvq88f/KXzmM5+RJz/5yfK5z31OnvSkJ9XdHUWpBd2Elf/RfO9735OPfexj8ohHPEI6nY785Cc/kbe//e0yGAzkBz/4ATWnfxVce+21cuONN8qLX/xiefGLXyx///d//19ynF9HbrjhBrn11lvl7LPPlmazKf/xH/+xTylMUX7b0U1Y+R/NT3/6U3nJS14i3/ve96Tf70u325UTTjhB3vzmN//CpvI0WJYljUZDnvSkJ8mFF154wL8N/m3ihBNOkG984xvykIc8RP7xH/9R7nvf+9bdJUWpDd2EFUVRFKUm9E+UFEVRFKUmdBP+DebDH/7wahUWy7LEdV3ZuHGjPOtZz9pvsPz/+T//RyzLoulWvww33nij/Pmf/7kcddRR0uv1ZHZ2Vh75yEfSPyX60pe+JI973ONk06ZNEgSBrFu3Th7zmMfI5z//eXhtlmVy7rnnymGHHSa+78vmzZvl1a9+9dR/Z7lly5Y147T3v5e85CVrXnfGGWfQ1+3979prr6Wfb4yR4447TizLgr/1HY/H8qxnPUvuc5/7SLvdlmazKfe73/3kTW96k4zH4194TKZlbyWlvf/5vi8LCwvyyEc+Ul7zmtfA30P/unB3xu3SSy+VZz/72XKve91LoiiSLVu2yHOf+9y7VVzhn/7pn+TBD36whGEo8/Pz8pznPEduv/12eN1FF1202i/btvf7Z0Xf+ta35OSTT5Z2uy2tVktOPPHE1ZjSO/P1r39dzjrrLDnqqKMkCAKxLGu12Mdd2dfafOtb3zr1uSq/XujfCf8WcOGFF8p973tfSZJEvvGNb8ib3/xmueqqq+THP/4xTZv60Ic+JCIiP/zhD+Xf//3f5WEPe9ivpB9f/OIX5XOf+5w873nPk2OOOUaKopBLLrlEnvGMZ8h5550n55577uprFxcX5X73u5+cddZZsmHDBllaWpL3ve99csopp8jFF18sp5122uprn/3sZ8vnP/95Offcc+WYY46Ra665Rt70pjfJD3/4w6mDJx75yEfK3/7t365pu6t09drXvhY2ZhGR3/3d35UgCOSYY46hn/3ud79bfvrTn9J/y/NcjDHyZ3/2Z3LYYYeJbdvy1a9+Vd7whjfIV77yFfnSl770C43J3eUtb3mLnHjiiVKWpSwuLsq///u/y4c+9CH5u7/7O/nABz5wwLSq/27uzri97W1vkw0bNshrXvMaucc97iG33367vOUtb5GHPOQhcu211+63NKSIyD/8wz/Iy1/+cjnrrLPkrW99q2zdulVe+9rXyqMf/Wj5zne+s+Yauvjii2XHjh3y0Ic+VKqqWlPG8c5cd911ctxxx8lDH/pQufjii8UYI29/+9vlpJNOkquuumq1wpiIyJe//GX50pe+JA9+8IOl0+lA6cm78vSnP11e+cpXrmk79NBD9/se5deYev4ySvlVsK/KQ+edd94+K+Jcd911RkTMKaecYkTEvOhFL/qV9Wf37t1rqvjs5ZRTTjGNRsMkSbLf92dZZg466CDz6Ec/erVtXxWR3vKWtxgRMV/84hcP2K8DVV3aH3v/jvev/uqv6L/ffPPNptVqmUsvvdSIiPmjP/qjqT73Va96lRER85//+Z/7fR0bk7vD3kpKn/jEJ+DfFhcXzYMf/GDjuq65/vrrf6HP/++GjdudqzHt5Y477jCe55kXvvCF+/28JElMt9uFSl3f/OY3jYiYc845Z037nf8++pRTToG//93LySefbNavX2/G4/Fq22AwMPPz81CR6s6f+Td/8zdGRMzNN99MP/furDHlNwP9dfRvIXsjAlkm8gUXXCAiIm9961vlEY94hHz84x+nxeV/EfZmNt+Vhz70oTKZTGRpaWm/7/c8T3q9nrju//sFzd5f393170hPPfVUEfl5vvR/JRdccIFYliUveMEL6L//4R/+oTzucY+Tpz3taXfrc/cmkN35XBlsTH5VzM7Oyvnnny9FUcjf/d3frfm3m266SZ7znOfIunXrJAgCOfzww6EGsMjP6wq/8pWvlHvc4x6rv0J/0pOeJD/+8Y9/5f0V4ePGssc3bdokBx98MP2V8p35wQ9+ICsrK7C+jj32WJmdnYX1decUtf3xjW98Q0444QRpNBqrbe12W4477jj55je/uSaLetrPVH470dn/LWRvlZl73/vea9rjOJaPfexjqyXoXvCCF8hwOJRPfOIT8BllWa4pSbev/1g29F256qqrZGFhgd4sq6qSoihk27Zt8rrXvU5uvPHGNb9q25sPfNdCDHv//665wPviq1/9qrTbbfE8T4444gh5xzveIWVZ7vc9Kysr8slPflJOOukkOeyww+DfP/jBD8q3vvUtede73nXA4xtjpCgKGQwGcsUVV8g73vEOefazn01/jXigMflVcswxx8jGjRvlq1/96mrbDTfcIMccc4z84Ac/kHe84x3y2c9+Vk455RR5+ctfviZ6cjgcyqMe9Sg5//zz5cwzz5TPfOYz8r73vU/ufe97r9lkfpm1dHfG7c787Gc/k1tvvfWAv4re1/ra23bTTTetqZI1LVmW7bd4yPe///27/Zl7+ehHPypRFEkQBHLUUUfJhRde+At/lvJrQN1fxZVfnL2/jr722mtNnudmOByaK664wmzYsMEcd9xxJs/zNa+/6KKLjIiY973vfcaYnxdcb7Va9Fed+4uGvPN/BypM/oEPfMCIiHnnO99J//3kk09e/axOp2MuvfTSNf9+2WWXGRGBmMsLLrjAiIi5973vfaBhMi972cvMhz70IXP11Vebyy67zDz3uc81ImJOO+20/b7vve99rxER87GPfQz+bevWrabb7Zrzzz9/tU3286vCj33sY2vG7cwzz4T52cuBxuTusL9fR+/lYQ97mImiaM3xDz74YLOysrLmdX/8x39swjA0S0tLxhhj3vCGN6yJKd0Xv8xaujvjtpc8z80JJ5xgOp2Oue222/b72sXFRWPbNvza+qc//enqMbdt20bfu79fRz/oQQ8y9773vdf8qjnPc3OPe9zDiIj56Ec/St93oF9HP+c5zzH/9E//ZL761a+aT37yk+aJT3zifh+XKL/+6Cb8G8xdc5/3/nf44Yeb5eVleP3xxx9voigy/X5/te3MM880ImJuvPHGNa+9/vrrzXXXXXfA/+64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",
330
+ "text/plain": [
331
+ "<Figure size 600x600 with 1 Axes>"
332
+ ]
333
+ },
334
+ "metadata": {},
335
+ "output_type": "display_data"
336
+ }
337
+ ],
338
+ "source": [
339
+ "ra, dec = 239.5743316076613, 32.91914641623415\n",
340
+ "result = analyze_galaxy(ra, dec, search_radius_arcsec=2.0, verbose=True)\n"
341
+ ]
342
+ },
343
+ {
344
+ "cell_type": "code",
345
+ "execution_count": null,
346
+ "id": "064a599b",
347
+ "metadata": {},
348
+ "outputs": [],
349
+ "source": []
350
+ }
351
+ ],
352
+ "metadata": {
353
+ "kernelspec": {
354
+ "display_name": "base",
355
+ "language": "python",
356
+ "name": "python3"
357
+ },
358
+ "language_info": {
359
+ "codemirror_mode": {
360
+ "name": "ipython",
361
+ "version": 3
362
+ },
363
+ "file_extension": ".py",
364
+ "mimetype": "text/x-python",
365
+ "name": "python",
366
+ "nbconvert_exporter": "python",
367
+ "pygments_lexer": "ipython3",
368
+ "version": "3.10.9"
369
+ }
370
+ },
371
+ "nbformat": 4,
372
+ "nbformat_minor": 5
373
+ }
ExampleCode/example2/image/239.5743316076613_32.91914641623415.jpg ADDED
ExampleCode/example2/llm_result/239.5743316076613_32.91914641623415.txt ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ This source is a **low-luminosity radio galaxy of FR I type**, hosted by an **elliptical galaxy** (likely massive, gas-poor), with no evidence of strong star formation or quasar-like activity.
2
+
3
+ Key evidence:
4
+ - Radio morphology is classified as *FR I (Complex)* in both files, confirmed by high-resolution VLA imaging showing edge-darkened, collimated jets that fade toward the lobes—characteristic of sub-relativistic, turbulent jets decelerating in a dense ambient medium.
5
+ - The *Peak Inside* and *Zero Peak Offset* (Peak_Offset_Arcsec = 0) indicate the radio core coincides precisely with the optical/near-IR host position—ruling out significant jet misalignment or double-lobe displacement typical of FR II or restarted sources.
6
+ - DC_Maj = 12.5″ (deconvolved major axis) at BMAJ = 2.9″ beam implies a physical size ~30–50 kpc at typical FR I redshifts (z ≈ 0.05–0.1), consistent with nearby ellipticals.
7
+ - Low Flux_Ratio (0.0833 in second file) reflects minimal lobe-to-core flux—another FR I hallmark, distinguishing it from FR II (high lobe/core ratio) or starbursts (diffuse, unstructured emission).
8
+ - SNR = 7.1 is sufficient for robust morphological classification but too low for a bright quasar or blazar; absence of UV/X-ray/IR multiwavelength data here does not contradict this, as FR I nuclei are typically radiatively inefficient (ADIOS or ADAF accretion), lacking strong thermal disk emission or dust-obscured starburst signatures.
9
+
10
+ No indication of spiral structure, starburst IR colors, or broad emission lines—thus, **elliptical-hosted FR I radio galaxy** is the most physically consistent classification.