Pulls bin/profile height info out and calcs a z.

        TODO: currently extremely naive

        Returns a 2-tuple: point, remaining obs_recs

def _build_obs_point(self, sensor_info, obs_recs):
        """
        Pulls bin/profile height info out and calcs a z.

        TODO: currently extremely naive

        Returns a 2-tuple: point, remaining obs_recs
        """
        cur_point = sensor_info["location"]["point"]

        keys = [m["name"] for m in obs_recs]
        if "binIndex" in keys:
            zidx = keys.index("binIndex")
            bin_index = int(obs_recs[zidx]["value"])
            z = sensor_info["profile_heights"]["values"][bin_index]

            point = sPoint(cur_point.x, cur_point.y, cur_point.z + z)

        elif "profileIndex" in keys:
            zidx = keys.index("profileIndex")
            bin_index = int(obs_recs[zidx]["value"])

            # @TODO take into account orientation, may change x/y/z
            # @TODO bin edges?
            z = sensor_info["profile_bins"]["bin_center"]["values"][bin_index]

            point = sPoint(cur_point.x, cur_point.y, cur_point.z + z)

        else:
            raise ValueError("no binIndex or profileIndex in Member: %s", keys)

        # remove z related Member
        obs_recs = obs_recs[:]
        obs_recs.pop(zidx)

        return point, obs_recs