Implement BUFRSounding.valid_by_timestamp()
This commit is contained in:
		
							parent
							
								
									17df1e1dba
								
							
						
					
					
						commit
						ff65688774
					
				
					 1 changed files with 21 additions and 0 deletions
				
			
		| 
						 | 
					@ -155,3 +155,24 @@ class BUFRSounding(Sounding):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return BUFRSounding.request_sounding(request,
 | 
					        return BUFRSounding.request_sounding(request,
 | 
				
			||||||
                                             datatimes[-1].validPeriod)
 | 
					                                             datatimes[-1].validPeriod)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @staticmethod
 | 
				
			||||||
 | 
					    def valid_by_timestamp(station: str, timestamp: datetime.datetime) -> Self:
 | 
				
			||||||
 | 
					        epoch     = timestamp.timestamp()
 | 
				
			||||||
 | 
					        request   = BUFRSounding.create_request(station)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        datatimes = DataAccessLayer.getAvailableTimes(request)
 | 
				
			||||||
 | 
					        by_delta  = dict()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for datatime in datatimes:
 | 
				
			||||||
 | 
					            ts    = datatime.getRefTime().time / 1000.0
 | 
				
			||||||
 | 
					            delta = epoch - ts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            by_delta[delta] = datatime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for delta in sorted(by_delta.keys()):
 | 
				
			||||||
 | 
					            if delta < 0:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return BUFRSounding.request_sounding(request,
 | 
				
			||||||
 | 
					                                                 by_delta[delta].validPeriod)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue