/
psrs.go
436 lines (428 loc) · 10.2 KB
/
psrs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
package data
import (
"encoding/json"
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"os"
)
type Pulsar struct {
ID int64
PSRJ NullString
PSRJ_REF NullString
RAJ NullString
RAJ_ERR NullFloat
RAJ_REF NullString
DECJ NullString
DECJ_ERR NullFloat
DECJ_REF NullString
POSEPOCH NullFloat
POSEPOCH_REF NullString
F0 NullFloat
F0_ERR NullFloat
F0_REF NullString
F1 NullFloat
F1_ERR NullFloat
F1_REF NullString
PEPOCH NullFloat
PEPOCH_REF NullString
DM NullFloat
DM_ERR NullFloat
DM_REF NullString
S1400 NullFloat
S1400_REF NullString
DIST_DM NullFloat
DIST_DM_REF NullString
DIST_DM1 NullFloat
DIST_DM1_REF NullString
TYPE NullString
ASSOC NullString
SURVEY NullString
JNAME NullString
NAME NullString
JNAME_REF NullString
NAME_REF NullString
RAJD NullFloat
DECJD NullFloat
RAJD_ERR NullFloat
DECJD_ERR NullFloat
DATE NullFloat
P0 NullFloat
P0_ERR NullFloat
P0_REF NullString
P1 NullFloat
P1_ERR NullFloat
P1_REF NullString
DMEPOCH NullFloat
DMEPOCH_REF NullString
RM NullFloat
RM_ERR NullFloat
RM_REF NullString
S400 NullFloat
S400_REF NullString
S150 NullFloat
S150_ERR NullFloat
S150_REF NullString
SPINDX NullFloat
SPINDX_ERR NullFloat
SPINDX_REF NullString
W50 NullFloat
W50_REF NullString
W10 NullFloat
W10_REF NullString
F2 NullFloat
F2_ERR NullFloat
F2_REF NullString
F3 NullFloat
F3_ERR NullFloat
F3_REF NullString
NGLT NullFloat
DIST_AMN NullFloat
DIST_AMN_REF NullString
DIST_AMX NullFloat
DIST_AMX_REF NullString
S300 NullFloat
S300_REF NullString
PSRB NullString
PSRB_REF NullString
PMRA NullFloat
PMRA_ERR NullFloat
PMRA_REF NullString
PMDEC NullFloat
PMDEC_ERR NullFloat
PMDEC_REF NullString
S400_ERR NullFloat
S50 NullFloat
S50_ERR NullFloat
S50_REF NullString
S600 NullFloat
S600_ERR NullFloat
S600_REF NullString
S1400_ERR NullFloat
TAU_SC NullFloat
TAU_SC_ERR NullFloat
TAU_SC_REF NullString
BNAME NullString
BNAME_REF NullString
ELONG NullFloat
ELONG_ERR NullFloat
ELONG_REF NullString
ELAT NullFloat
ELAT_ERR NullFloat
ELAT_REF NullString
PMELONG NullFloat
PMELONG_ERR NullFloat
PMELONG_REF NullString
PMELAT NullFloat
PMELAT_ERR NullFloat
PMELAT_REF NullString
PX NullFloat
PX_ERR NullFloat
PX_REF NullString
UNITS NullString
UNITS_REF NullString
BINCOMP NullString
BINARY NullString
BINARY_REF NullString
TASC NullFloat
TASC_ERR NullFloat
TASC_REF NullString
FB0 NullFloat
FB0_ERR NullFloat
FB0_REF NullString
FB1 NullFloat
FB1_ERR NullFloat
FB1_REF NullString
FB2 NullFloat
FB2_ERR NullFloat
FB2_REF NullString
A1 NullFloat
A1_ERR NullFloat
A1_REF NullString
EPS1 NullFloat
EPS1_ERR NullFloat
EPS1_REF NullString
EPS2 NullFloat
EPS2_ERR NullFloat
EPS2_REF NullString
CLK NullString
CLK_REF NullString
EPHEM NullString
EPHEM_REF NullString
PB NullFloat
PB_REF NullString
DIST_A NullFloat
DIST_A_ERR NullFloat
DIST_A_REF NullString
S3000 NullFloat
S3000_ERR NullFloat
S3000_REF NullString
S4000 NullFloat
S4000_ERR NullFloat
S4000_REF NullString
S800 NullFloat
S800_ERR NullFloat
S800_REF NullString
S2000 NullFloat
S2000_ERR NullFloat
S2000_REF NullString
S900 NullFloat
S900_ERR NullFloat
S900_REF NullString
S1600 NullFloat
S1600_ERR NullFloat
S1600_REF NullString
T0 NullFloat
T0_ERR NullFloat
T0_REF NullString
PB_ERR NullFloat
PBDOT NullFloat
PBDOT_ERR NullFloat
PBDOT_REF NullString
ECC NullFloat
ECC_ERR NullFloat
ECC_REF NullString
OM NullFloat
OM_ERR NullFloat
OM_REF NullString
OMDOT NullFloat
OMDOT_ERR NullFloat
OMDOT_REF NullString
M2 NullFloat
M2_ERR NullFloat
M2_REF NullString
S350 NullFloat
S350_ERR NullFloat
S350_REF NullString
W50_ERR NullFloat
W10_ERR NullFloat
S300_ERR NullFloat
S100 NullFloat
S100_REF NullString
S200 NullFloat
S200_ERR NullFloat
S200_REF NullString
S80 NullFloat
S80_ERR NullFloat
S80_REF NullString
A1DOT NullFloat
A1DOT_ERR NullFloat
A1DOT_REF NullString
S60 NullFloat
S60_ERR NullFloat
S60_REF NullString
S5000 NullFloat
S5000_ERR NullFloat
S5000_REF NullString
DM1 NullFloat
DM1_ERR NullFloat
DM1_REF NullString
S100_ERR NullFloat
S40 NullFloat
S40_ERR NullFloat
S40_REF NullString
TASC_2 NullFloat
TASC_2_ERR NullFloat
TASC_2_REF NullString
PB_2 NullFloat
PB_2_ERR NullFloat
PB_2_REF NullString
A1_2 NullFloat
A1_2_ERR NullFloat
A1_2_REF NullString
EPS1_2 NullFloat
EPS1_2_ERR NullFloat
EPS1_2_REF NullString
EPS2_2 NullFloat
EPS2_2_ERR NullFloat
EPS2_2_REF NullString
SINI NullFloat
SINI_ERR NullFloat
SINI_REF NullString
M2_2 NullFloat
M2_2_ERR NullFloat
M2_2_REF NullString
MASS_Q NullFloat
MASS_Q_ERR NullFloat
MASS_Q_REF NullString
S700 NullFloat
S700_ERR NullFloat
S700_REF NullString
KOM NullFloat
KOM_ERR NullFloat
KOM_REF NullString
KIN NullFloat
KIN_ERR NullFloat
KIN_REF NullString
H3 NullFloat
H3_ERR NullFloat
H3_REF NullString
STIG NullFloat
STIG_ERR NullFloat
STIG_REF NullString
H4 NullFloat
H4_ERR NullFloat
H4_REF NullString
GAMMA NullFloat
GAMMA_ERR NullFloat
GAMMA_REF NullString
DM2 NullFloat
DM2_ERR NullFloat
DM2_REF NullString
S100G NullFloat
S100G_ERR NullFloat
S100G_REF NullString
S150G NullFloat
S150G_ERR NullFloat
S150G_REF NullString
OM_ASC NullFloat
OM_ASC_ERR NullFloat
OM_ASC_REF NullString
DM3 NullFloat
DM3_ERR NullFloat
DM3_REF NullString
T0_2 NullFloat
T0_2_ERR NullFloat
T0_2_REF NullString
T0_3 NullFloat
T0_3_ERR NullFloat
T0_3_REF NullString
PB_3 NullFloat
PB_3_ERR NullFloat
PB_3_REF NullString
A1_3 NullFloat
A1_3_ERR NullFloat
A1_3_REF NullString
ECC_2 NullFloat
ECC_2_ERR NullFloat
ECC_2_REF NullString
ECC_3 NullFloat
ECC_3_ERR NullFloat
ECC_3_REF NullString
OM_2 NullFloat
OM_2_ERR NullFloat
OM_2_REF NullString
OM_3 NullFloat
OM_3_ERR NullFloat
OM_3_REF NullString
SINI_2 NullFloat
SINI_2_ERR NullFloat
SINI_2_REF NullString
SINI_3 NullFloat
SINI_3_ERR NullFloat
SINI_3_REF NullString
M2_3 NullFloat
M2_3_ERR NullFloat
M2_3_REF NullString
A12DOT NullFloat
A12DOT_ERR NullFloat
A12DOT_REF NullString
OM2DOT NullFloat
OM2DOT_ERR NullFloat
OM2DOT_REF NullString
S6000 NullFloat
S6000_ERR NullFloat
S6000_REF NullString
XDOT NullFloat
XDOT_ERR NullFloat
XDOT_REF NullString
F4 NullFloat
F4_ERR NullFloat
F4_REF NullString
F5 NullFloat
F5_ERR NullFloat
F5_REF NullString
BINCOMP_REF NullString
S8000 NullFloat
S8000_ERR NullFloat
S8000_REF NullString
S9000 NullFloat
S9000_REF NullString
S9000_ERR NullFloat
ECCDOT NullFloat
ECCDOT_ERR NullFloat
ECCDOT_REF NullString
DTHETA NullFloat
DTHETA_ERR NullFloat
DTHETA_REF NullString
S1500 NullFloat
S1500_REF NullString
DIST NullFloat
DIST1 NullFloat
GL NullFloat
GB NullFloat
XX NullFloat
YY NullFloat
ZZ NullFloat
DMSINB NullFloat
PMB NullFloat
PML NullFloat
AGE NullFloat
BSURF NullFloat
B_LC NullFloat
EDOT NullFloat
EDOTD2 NullFloat
PMTOT NullFloat
PMTOT_ERR NullFloat
VTRANS NullFloat
P1_I NullFloat
AGE_I NullFloat
BSURF_I NullFloat
EDOT_I NullFloat
SI414 NullFloat
R_LUM NullFloat
R_LUM14 NullFloat
MASSFN NullFloat
MINMASS NullFloat
MEDMASS NullFloat
UPRMASS NullFloat
MASSFN_ERR NullFloat
MINOMDOT NullFloat
H0_SD NullFloat
ASSOC_ORIG NullString
ASSOC_REF NullString
TYPE_ORIG NullString
TYPE_REF NullString
BINCOMP_ORIG NullString
}
type PulsarAPI struct {
PSRJ NullString
DM NullFloat
P0 NullFloat
P1 NullFloat
GL NullFloat
GB NullFloat
}
func GetPulsars(Name string) []Pulsar {
db, _ := gorm.Open(
sqlite.Open("./data/pulsars.db"),
&gorm.Config{
PrepareStmt: true,
SkipDefaultTransaction: true,
Logger: logger.Default.LogMode(logger.Silent),
})
Pulsars := make([]Pulsar, 0)
db.Model(&Pulsar{}).Where("PSRJ LIKE ?", fmt.Sprintf("%%%s%%", Name)).Find(&Pulsars)
return Pulsars
}
func SavePulsars(Pulsars []Pulsar) {
file, _ := os.Create("pulsars.json")
defer file.Close()
bytes, _ := json.Marshal(Pulsars)
str := string(bytes)
file.WriteString(str)
file.Sync()
}
func SearchPulsars(Name string) []PulsarAPI {
db, _ := gorm.Open(
sqlite.Open("./data/pulsars.db"),
&gorm.Config{
PrepareStmt: true,
SkipDefaultTransaction: true,
Logger: logger.Default.LogMode(logger.Silent),
})
Pulsars := make([]PulsarAPI, 0)
db.Model(&Pulsar{}).Where("PSRJ LIKE ?", fmt.Sprintf("%%%s%%", Name)).Find(&Pulsars)
return Pulsars
}