Ejemplo n.º 1
0
 def from_node(cls, node, xml_ns, ns_key=None, kwargs=None):
     lut_key = cls._child_xml_ns_key.get('RemapLUT', ns_key)
     lut_node = _find_first_child(node, 'RemapLUT', xml_ns, lut_key)
     if lut_node is not None:
         dim1 = int_func(lut_node.attrib['size'])
         dim2 = 3
         arr = numpy.zeros((dim1, dim2), dtype=numpy.uint16)
         entries = _get_node_value(lut_node).split()
         i = 0
         for entry in entries:
             if len(entry) == 0:
                 continue
             sentry = entry.split(',')
             if len(sentry) != 3:
                 logging.error(
                     'Parsing RemapLUT is likely compromised. Got entry {}, '
                     'which we are skipping.'.format(entry))
                 continue
             arr[i, :] = [int(el) for el in entry]
             i += 1
         if numpy.max(arr) < 256:
             arr = numpy.cast[numpy.uint8](arr)
         return cls(RemapLUT=arr)
     return cls()
Ejemplo n.º 2
0
 def _deserialize_multipolygon(cls, node, xml_ns, tag='MultiPolygon'):
     mp_node = _find_first_child(node, tag, xml_ns, 'sfa')
     if mp_node is None:
         return None
     p_nodes = _find_children(mp_node, 'Element', xml_ns, 'sfa')
     return [cls._extract_polygon(p_node, xml_ns, tag='Ring') for p_node in p_nodes]
Ejemplo n.º 3
0
 def _deserialize_multilinestring(cls, node, xml_ns, tag='MultiLineString'):
     mls_node = _find_first_child(node, tag, xml_ns, 'sfa')
     if mls_node is None:
         return None
     ls_nodes = _find_children(mls_node, 'Element', xml_ns, 'sfa')
     return [cls._extract_line(ls_node, xml_ns, tag='Vertex') for ls_node in ls_nodes]
Ejemplo n.º 4
0
 def _deserialize_polygon(cls, node, xml_ns, tag='Polygon'):
     poly_node = _find_first_child(node, tag, xml_ns, 'sfa')
     if poly_node is None:
         return None
     return cls._extract_polygon(poly_node, xml_ns, tag='Ring')
Ejemplo n.º 5
0
 def _deserialize_line(cls, node, xml_ns, tag='Line'):
     line_node = _find_first_child(node, tag, xml_ns, 'sfa')
     if line_node is None:
         return None
     return cls._extract_line(line_node, xml_ns, tag='Vertex')
Ejemplo n.º 6
0
 def _deserialize_point(cls, node, xml_ns, tag='Point'):
     point_node = _find_first_child(node, tag, xml_ns, 'sfa')
     if point_node is None:
         return None
     return cls._extract_point(point_node, xml_ns)
Ejemplo n.º 7
0
 def _get_value(node, tag, xml_ns, ns_key):
     t_node = _find_first_child(node, tag, xml_ns, ns_key)
     if t_node is None:
         return None
     else:
         return float(_get_node_value(t_node))