Пример #1
0
    def find_nearest_station(self, lon, lat, return_distance=False):
        """
        finds the nearest station available in downloaded data

        Parameters
        ----------
        lon : float
            Longitude of point
        lat : float
            Latitude of point
        return_distance : boolean, optional
            if True also distance is returned

        Returns
        -------
        station : ISMN_station
            ISMN_station object
        distance : float, optional
            distance to station in meters, measured in cartesian coordinates and not on
            a great circle. Should be OK for small distances
        """
        if self.kdTree is None:
            self.kdTree = NN.findGeoNN(
                self.metadata['longitude'], self.metadata['latitude'])

        d, index = self.kdTree.find_nearest_index(lon, lat)

        all_index = np.where(
            self.metadata['station'] == self.metadata['station'][index])

        if return_distance:
            return ISMN_station(self.metadata[all_index]), d
        else:
            return ISMN_station(self.metadata[all_index])
Пример #2
0
 def _setup_kdtree(self):
     """
     Setup kdTree
     """
     if self.kdTree is None:
         self.kdTree = NN.findGeoNN(self.activearrlon, self.activearrlat,
                                    self.geodatum)
         self.kdTree._build_kdtree()
Пример #3
0
 def _setup_kdtree(self):
     """
     Setup kdTree
     """
     if self.kdTree is None:
         self.kdTree = NN.findGeoNN(self.activearrlon, self.activearrlat,
                                    self.geodatum)
         self.kdTree._build_kdtree()