Pingul commited on
Commit
ed08817
·
verified ·
1 Parent(s): 29b9a0d

Update models/responses.py

Browse files
Files changed (1) hide show
  1. models/responses.py +148 -11
models/responses.py CHANGED
@@ -1,11 +1,148 @@
1
- from typing import Dict, List, Optional
2
- from pydantic import BaseModel
3
-
4
- class PredictResponse(BaseModel):
5
- label: str
6
- probabilities: Optional[Dict[str, float]] = None
7
- recognized: List[str]
8
- unknown: List[str]
9
- missing: List[str]
10
- feature_order: List[str]
11
- engineered: Dict[str, Optional[float]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Dict, List, Optional
2
+ from pydantic import BaseModel
3
+
4
+ class PredictResponse(BaseModel):
5
+ label: str
6
+ probabilities: Optional[Dict[str, float]] = None
7
+ recognized: List[str]
8
+ unknown: List[str]
9
+ missing: List[str]
10
+ feature_order: List[str]
11
+ engineered: Dict[str, Optional[float]]
12
+
13
+
14
+ # Modelos para los datasets de NASA
15
+ class ExoplanetCumulative(BaseModel):
16
+ """Modelo para exoplanetas del dataset Cumulative (Kepler)"""
17
+ kepid: Optional[int] = None
18
+ kepoi_name: Optional[str] = None
19
+ kepler_name: Optional[str] = None
20
+ koi_disposition: Optional[str] = None
21
+ koi_pdisposition: Optional[str] = None
22
+ koi_score: Optional[float] = None # Score de confianza (0-1)
23
+
24
+ # 11 características esenciales
25
+ koi_period: Optional[float] = None # Periodo orbital (días)
26
+ koi_duration: Optional[float] = None # Duración del tránsito (horas)
27
+ koi_depth: Optional[float] = None # Profundidad del tránsito (ppm)
28
+ koi_impact: Optional[float] = None # Parámetro de impacto
29
+ koi_prad: Optional[float] = None # Radio del planeta (radios terrestres)
30
+ koi_slogg: Optional[float] = None # Gravedad superficial estelar (log10(cm/s²))
31
+ koi_sma: Optional[float] = None # Semi-eje mayor (AU)
32
+ koi_smet: Optional[float] = None # Metalicidad estelar [Fe/H]
33
+ koi_srad: Optional[float] = None # Radio estelar (radios solares)
34
+ koi_steff: Optional[float] = None # Temperatura efectiva estelar (K)
35
+ koi_snr: Optional[float] = None # Relación señal-ruido
36
+
37
+ # Características orbitales adicionales
38
+ koi_eccen: Optional[float] = None # Excentricidad orbital
39
+ koi_incl: Optional[float] = None # Inclinación orbital (grados)
40
+ koi_dor: Optional[float] = None # Distancia planeta-estrella / radio estelar
41
+ koi_ror: Optional[float] = None # Radio planeta / radio estrella
42
+
43
+ # Características estelares adicionales
44
+ koi_smass: Optional[float] = None # Masa estelar (masas solares)
45
+ koi_kepmag: Optional[float] = None # Magnitud en banda Kepler
46
+
47
+ # Flujo y temperatura
48
+ koi_insol: Optional[float] = None # Flujo de insolación (flujo terrestre)
49
+ koi_teq: Optional[float] = None # Temperatura de equilibrio (K)
50
+
51
+ # Coordenadas
52
+ ra: Optional[float] = None # Ascensión recta
53
+ dec: Optional[float] = None # Declinación
54
+
55
+
56
+ class ExoplanetK2(BaseModel):
57
+ """Modelo para exoplanetas del dataset K2"""
58
+ pl_name: Optional[str] = None
59
+ hostname: Optional[str] = None
60
+ k2_name: Optional[str] = None
61
+ epic_hostname: Optional[str] = None
62
+ disposition: Optional[str] = None
63
+ discoverymethod: Optional[str] = None
64
+ disc_year: Optional[int] = None
65
+
66
+ # IDs y nombres alternativos
67
+ hd_name: Optional[str] = None # ID del catálogo Henry Draper
68
+ hip_name: Optional[str] = None # ID del catálogo Hipparcos
69
+ tic_id: Optional[str] = None # TESS Input Catalog ID
70
+ gaia_id: Optional[str] = None # Gaia DR2/DR3 ID
71
+
72
+ # Datos del planeta para visualización
73
+ pl_orbper: Optional[float] = None # Periodo orbital (días)
74
+ pl_orbsmax: Optional[float] = None # Semi-eje mayor (AU)
75
+ pl_rade: Optional[float] = None # Radio del planeta (radios terrestres)
76
+ pl_bmasse: Optional[float] = None # Masa del planeta (masas terrestres)
77
+ pl_bmassj: Optional[float] = None # Masa del planeta (masas jovianas)
78
+ pl_dens: Optional[float] = None # Densidad del planeta (g/cm³)
79
+ pl_orbeccen: Optional[float] = None # Excentricidad orbital
80
+ pl_eqt: Optional[float] = None # Temperatura de equilibrio (K)
81
+ pl_insol: Optional[float] = None # Flujo de insolación (flujo terrestre)
82
+ pl_orbincl: Optional[float] = None # Inclinación orbital (grados)
83
+
84
+ # Datos estelares
85
+ st_teff: Optional[float] = None # Temperatura efectiva estelar (K)
86
+ st_rad: Optional[float] = None # Radio estelar (radios solares)
87
+ st_mass: Optional[float] = None # Masa estelar (masas solares)
88
+ st_met: Optional[float] = None # Metalicidad estelar [Fe/H]
89
+ st_logg: Optional[float] = None # Gravedad superficial estelar
90
+ st_dens: Optional[float] = None # Densidad estelar (g/cm³)
91
+ st_lum: Optional[float] = None # Luminosidad estelar (luminosidades solares)
92
+ st_age: Optional[float] = None # Edad estelar (Gyr)
93
+
94
+ # Datos del sistema
95
+ sy_dist: Optional[float] = None # Distancia al sistema (parsecs)
96
+ sy_vmag: Optional[float] = None # Magnitud V
97
+ sy_kmag: Optional[float] = None # Magnitud K
98
+ sy_gaiamag: Optional[float] = None # Magnitud Gaia
99
+
100
+ # Coordenadas
101
+ ra: Optional[float] = None
102
+ dec: Optional[float] = None
103
+
104
+
105
+ class ExoplanetTOI(BaseModel):
106
+ """Modelo para exoplanetas del dataset TESS Objects of Interest (TOI)"""
107
+ toi: Optional[float] = None
108
+ tid: Optional[int] = None # TESS Input Catalog ID
109
+ ctoi_alias: Optional[str] = None
110
+ tfopwg_disp: Optional[str] = None # Disposición del grupo de trabajo
111
+ pl_pnum: Optional[int] = None # Número de planetas en el sistema
112
+
113
+ # Datos del planeta para visualización
114
+ pl_orbper: Optional[float] = None # Periodo orbital (días)
115
+ pl_rade: Optional[float] = None # Radio del planeta (radios terrestres)
116
+ pl_eqt: Optional[float] = None # Temperatura de equilibrio (K)
117
+ pl_insol: Optional[float] = None # Flujo de insolación (flujo terrestre)
118
+ pl_trandep: Optional[float] = None # Profundidad del tránsito (ppm)
119
+ pl_trandur: Optional[float] = None # Duración del tránsito (horas) - DEPRECATED
120
+ pl_trandurh: Optional[float] = None # Duración del tránsito (horas)
121
+ pl_imppar: Optional[float] = None # Parámetro de impacto
122
+ pl_orbsmax: Optional[float] = None # Semi-eje mayor (AU)
123
+
124
+ # Datos estelares
125
+ st_teff: Optional[float] = None # Temperatura efectiva estelar (K)
126
+ st_rad: Optional[float] = None # Radio estelar (radios solares)
127
+ st_mass: Optional[float] = None # Masa estelar (masas solares)
128
+ st_met: Optional[float] = None # Metalicidad estelar [Fe/H]
129
+ st_logg: Optional[float] = None # Gravedad superficial estelar
130
+ st_dist: Optional[float] = None # Distancia (parsecs)
131
+ st_tmag: Optional[float] = None # Magnitud TESS
132
+
133
+ # Movimiento propio
134
+ st_pmra: Optional[float] = None # Movimiento propio en ascensión recta (mas/yr)
135
+ st_pmdec: Optional[float] = None # Movimiento propio en declinación (mas/yr)
136
+
137
+ # Coordenadas
138
+ ra: Optional[float] = None
139
+ dec: Optional[float] = None
140
+ rastr: Optional[str] = None # Ascensión recta (string)
141
+ decstr: Optional[str] = None # Declinación (string)
142
+
143
+
144
+ class DatasetListResponse(BaseModel):
145
+ """Respuesta para listado de exoplanetas"""
146
+ total: int
147
+ count: int
148
+ data: List[Dict]