Coverage for C: \ Users \ peaco \ OneDrive \ Documents \ GitHub \ mt_metadata \ mt_metadata \ transfer_functions \ io \ zonge \ metadata \ rx.py: 100%

23 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-10 00:11 -0800

1# ===================================================== 

2# Imports 

3# ===================================================== 

4from enum import Enum 

5from typing import Annotated 

6 

7from pydantic import Field 

8 

9from mt_metadata.base import MetadataBase 

10 

11 

12# ===================================================== 

13class CmpEnum(str, Enum): 

14 zxx = "zxx" 

15 zyy = "zyy" 

16 zyx = "zyx" 

17 zxy = "zxy" 

18 txy = "txy" 

19 tyx = "tyx" 

20 null = "" 

21 

22 

23class Rx(MetadataBase): 

24 gdp_stn: Annotated[ 

25 str, 

26 Field( 

27 default="", 

28 description="Station name", 

29 alias=None, 

30 json_schema_extra={ 

31 "units": None, 

32 "required": True, 

33 "examples": ["24"], 

34 }, 

35 ), 

36 ] 

37 

38 length: Annotated[ 

39 float, 

40 Field( 

41 default=0.0, 

42 description="Generic dipole length", 

43 alias=None, 

44 json_schema_extra={ 

45 "units": None, 

46 "required": True, 

47 "examples": ["100"], 

48 }, 

49 ), 

50 ] 

51 

52 h_p_r: Annotated[ 

53 list[float], 

54 Field( 

55 default=[], 

56 description="Horizontal, pitch, roll of array", 

57 alias=None, 

58 json_schema_extra={ 

59 "units": None, 

60 "required": True, 

61 "examples": ["0, 0, 180"], 

62 }, 

63 ), 

64 ] 

65 

66 cmp: Annotated[ 

67 CmpEnum, 

68 Field( 

69 default="", 

70 description="processed component of impedance or tipper", 

71 alias=None, 

72 json_schema_extra={ 

73 "units": None, 

74 "required": False, 

75 "examples": ["zxx"], 

76 }, 

77 ), 

78 ] 

79 

80 center: Annotated[ 

81 str | None, 

82 Field( 

83 default=None, 

84 description="center of the sounding location", 

85 alias=None, 

86 json_schema_extra={ 

87 "units": None, 

88 "required": False, 

89 "examples": ["335754.685:4263553.435:1650.2 m"], 

90 }, 

91 ), 

92 ] 

93 

94 x_y_z1: Annotated[ 

95 str | None, 

96 Field( 

97 default=None, 

98 description="xyz of local station", 

99 alias=None, 

100 json_schema_extra={ 

101 "units": None, 

102 "required": False, 

103 "examples": ["335754.685:4263553.435:1650.2"], 

104 }, 

105 ), 

106 ] 

107 

108 x_y_z2: Annotated[ 

109 str | None, 

110 Field( 

111 default=None, 

112 description="xyz of remote station", 

113 alias=None, 

114 json_schema_extra={ 

115 "units": None, 

116 "required": False, 

117 "examples": ["335754.685:4263553.435:1650.2"], 

118 }, 

119 ), 

120 ] 

121 

122 u_t_m1: Annotated[ 

123 str | None, 

124 Field( 

125 default=None, 

126 description="UTM location of local station", 

127 alias=None, 

128 json_schema_extra={ 

129 "units": None, 

130 "required": False, 

131 "examples": ["335754.685:4263553.435:1650.2"], 

132 }, 

133 ), 

134 ] 

135 

136 a_space: Annotated[ 

137 str | None, 

138 Field( 

139 default=None, 

140 description="spacing of lines", 

141 alias=None, 

142 json_schema_extra={ 

143 "units": None, 

144 "required": False, 

145 "examples": ["100 m"], 

146 }, 

147 ), 

148 ] 

149 

150 s_space: Annotated[ 

151 str | None, 

152 Field( 

153 default=None, 

154 description="spacing of stations along the line", 

155 alias=None, 

156 json_schema_extra={ 

157 "units": None, 

158 "required": False, 

159 "examples": ["100"], 

160 }, 

161 ), 

162 ]