1717
1818from sqlalchemy import text
1919
20+
21+ def _as_text (v ):
22+ return "" if v is None else str (v )
23+
24+
2025# NSMAP = dict(xsi="http://www.w3.org/2001/XMLSchema-instance", xsd="http://www.w3.org/2001/XMLSchema")
2126
2227
@@ -32,12 +37,19 @@ def make_xml_response(db, sql, point_id, func):
3237
3338
3439def make_lithology_response (point_id , db ):
35- sql = 'select * from "NMA_view_NGWMN_Lithology" where "PointID"=:point_id'
40+ sql = (
41+ 'select "PointID", "StratTop", "StratBottom", "TERM" '
42+ 'from "NMA_view_NGWMN_Lithology" where "PointID"=:point_id'
43+ )
3644 return make_xml_response (db , sql , point_id , lithology_xml )
3745
3846
3947def make_well_construction_response (point_id , db ):
40- sql = 'select * from "NMA_view_NGWMN_WellConstruction" where "PointID"=:point_id'
48+ sql = (
49+ 'select "PointID", "CasingTop", "CasingBottom", "CasingDepthUnits", '
50+ '"ScreenTop", "ScreenBottom", "ScreenBottomUnit", "ScreenDescription", "CasingDescription" '
51+ 'from "NMA_view_NGWMN_WellConstruction" where "PointID"=:point_id'
52+ )
4153 return make_xml_response (db , sql , point_id , well_construction_xml )
4254
4355
@@ -184,7 +196,7 @@ def make_continuous_water_level(root, r):
184196 ("WaterLevelAccuracy" , "0.02 ft" ),
185197 ):
186198 e = etree .SubElement (elem , attr )
187- e .text = str (val )
199+ e .text = _as_text (val )
188200
189201
190202def make_water_level (root , r ):
@@ -206,59 +218,60 @@ def make_water_level(root, r):
206218 ("WaterLevelAccuracy" , r [5 ]),
207219 ):
208220 e = etree .SubElement (elem , attr )
209- e .text = str (val )
221+ e .text = _as_text (val )
210222
211223
212224def make_well_construction (root , r ):
213225 """
214- 0 1 2 3 4 5 6, 7, 8
215- pointid, castop, casbottom, cadepthunits, screentop, screenbotom, units, screen description, casing description
226+ 0 1 2 3 4 5 6 7 8
227+ pointid, castop, casbottom, cadepthunits, screentop, screenbottom, screenbottomunit, screen description, casing description
216228 :param root:
217229 :param r:
218230 :return:
219231 """
220232 elem = etree .SubElement (root , "Casing" )
221- make_point_id (elem , r )
233+ make_point_id (elem , r , idx = 0 )
222234
223235 e = etree .SubElement (elem , "CasingTop" )
224- e .text = str (r [1 ])
236+ e .text = _as_text (r [1 ])
225237
226238 e = etree .SubElement (elem , "CasingBottom" )
227- e .text = str (r [2 ])
239+ e .text = _as_text (r [2 ])
228240
229241 e = etree .SubElement (elem , "CasingDepthUnits" )
230- e .text = str (r [3 ])
242+ e .text = _as_text (r [3 ])
231243
232244 e = etree .SubElement (elem , "ScreenTop" )
233- e .text = str (r [4 ])
245+ e .text = _as_text (r [4 ])
234246
235247 e = etree .SubElement (elem , "ScreenBottom" )
236- e .text = str (r [5 ])
248+ e .text = _as_text (r [5 ])
237249
238250 e = etree .SubElement (elem , "ScreenDescription" )
239- e .text = str (r [7 ])
251+ e .text = _as_text (r [7 ])
240252
241253 e = etree .SubElement (elem , "ScreenMaterial" )
242254 e .text = "steel"
243255
244256
245257def make_lithology (root , r ):
246258 elem = etree .SubElement (root , "Lithology" )
247- make_point_id (elem , r )
259+ make_point_id (elem , r , idx = 0 )
248260
249261 e = etree .SubElement (elem , "TopDepth" )
250- e .text = str (r [1 ])
262+ e .text = _as_text (r [1 ])
251263
252264 e = etree .SubElement (elem , "BottomDepth" )
253- e .text = str (r [2 ])
265+ e .text = _as_text (r [2 ])
254266
255267 e = etree .SubElement (elem , "Units" )
256268 e .text = "feet"
257269
258270 e = etree .SubElement (elem , "Description" )
259- e .text = str (r [3 ])
271+ e .text = _as_text (r [3 ])
260272
261273
262274def make_point_id (elem , r , idx = 0 ):
263275 e = etree .SubElement (elem , "PointID" )
264- e .text = r [idx ]
276+ v = r [idx ]
277+ e .text = _as_text (v )
0 commit comments