Il calcolo di alba e tramonto con java

Faccio la ricerca di un modo per calcolare l’alba e per un determinato fuso orario aka posizione. Vorrei qualcosa di simile a Zend_Date.

L’idea è di avere un’applicazione in cui è possibile selezionare un luogo che si ottiene il tempo effettivo e anche alba, -impostare l’ora.

Saluti e grazie,
-lony

  • Qual è la domanda?
  • Il modo in cui si dovrebbe fare questo ‘Swing’ è esattamente nello stesso modo si farebbe in una applicazione da riga di comando, servlet, task ant o di test di unità. L’Utilizzo Di Java. Rimozione di ‘Swing’ tag.
  • La domanda è: come calcolare il tramonto e l’alba. E ‘ vero il suo nulla swing correlati, Nate già rimosso il tag.
InformationsquelleAutor lony | 2011-02-08

 

5 Replies
  1. 10

    Dare un’occhiata a sunrisesunsetlib-java che calcola l’alba/tramonto da coordinate GPS e una data.

    • Grazie, cuciture a essere quello che voglio.
    • Questa libreria utilizza un modello estremamente semplice per predire l’alba e il tramonto e darà risultati inaccurati. Che è bene per molte applicazioni, ma non saranno d’accordo con le altre fonti pubblicate. Se siete alla ricerca di un’accurata soluzione, mi raccomando, cerca altrove.
  2. 4

    Di calcolo di alba e tramonto, è in realtà un problema molto difficile da risolvere e la maggior parte delle librerie che pretendono di fare uso eccessivamente semplici modelli del sistema solare che in realtà non produrre risultati accurati.

    L’orbita della Terra intorno al Sole e la Luna intorno alla Terra sono irregolari, l’asse di rotazione della Terra oscilla in due modi diversi (precessione e nutazione), e le scale di tempo utilizzato dagli astronomi non sono d’accordo con il tempo universale coordinato (UTC). In cima a quello, la rifrazione atmosferica distorce la percezione della posizione dei corpi celesti (soprattutto vicino all’orizzonte); il sorgere e il tramontare del Sole e della Luna sono in genere definite dalla prima apparizione del disco sopra l’orizzonte, non il passare del centro del disco; e la dimensione percepita del disco varia nel tempo a seconda della sua distanza dall’osservatore.

    Ho bisogno di un accurato calcolo di questo per un progetto su cui stavo lavorando e ha scritto una libreria per fare si che coinvolge tutto il state-of-the-art di modelli.

    Offriamo anche una web API per questo e sia l’API Web e la Libreria Java può essere trovato a:

    http://askgeo.com/

    Che il sito offre anche un sacco di altre informazioni che dipende da latitudine e longitudine. Potete leggere i dettagli della raccolta qui:

    http://askgeo.com/database/Astronomy

    Biblioteca e web API sono commerciali, ma diamo libero accesso al Web API per la qualificazione del non-profit, dei ricercatori e dei progetti open source. Per gli utenti commerciali, le informazioni sul prezzo, è:

    http://askgeo.com/#pricing

    Biblioteca che dà l’alba e il tramonto (tra le altre cose) è il “Astronomia” della lista.

    • Sembra davvero promettente, ma deve essere open source. Non è importante che il tutto deve essere perfetto. È anche difficile per calcolare il sorgere del sole e il tramonto se 5-10 min deviazione è ok?
    • La maggior parte dei metodi che ho visto sono accurate per circa 10 minuti, quindi se questo è sufficiente per voi, allora non c’è bisogno di essere pignoli su la biblioteca. È se si desidera ottenere per il sub minuti del livello di precisione che avete bisogno di migliori modelli. Dal locale topologia (ad esempio, le colline/montagne) ha un enorme impatto su di alba e tramonto e non è incluso in tutti i modelli che ho visto, è facile presumere che la precisione non ha molta importanza. Ma se i risultati sono utente di fronte, è una questione di qualità percepita se il vostro non è d’accordo con un’autorità costituita.
    • Un buon punto. Grazie.
  3. 4

    Si potrebbe desiderare di utilizzare commons-suncalc, una dipendenza-free library for Java ⩾7:

    Date date = //date of calculation
    double lat, lng = //geolocation
    SunTimes times = SunTimes.compute()
                .on(date)       //set a date
                .at(lat, lng)   //set a location
                .execute();     //get the results
    System.out.println("Sunrise: " + times.getRise());
    System.out.println("Sunset: " + times.getSet());
  4. 4

    Solo ora, ho rilasciato la Time4J-v4.29 che supporta anche alba/tramonto-calcoli. Esempio:

     SolarTime hamburg = SolarTime.ofLocation(53.55, 10.0);
     Optional<Moment> result = PlainDate.nowInSystemTime().get(hamburg.sunrise());
     System.out.println(result.get().toZonalTimestamp(() -> "Europe/Berlin"));

    Java-8-compatibilità:

    I risultati di classe SolarTime (di tipo Moment o PlainTimestamp) possono essere facilmente convertiti in Java-8-tipi come Instant o LocalDateTime, di solito chiamando il metodo toTemporalAccessor().

    Sull’algoritmo:

    L’algoritmo principale è lo stesso utilizzato da NOAA (con la differenza che il delta-T-i calcoli sono presi in considerazione anche da Time4J). Il NOAA-algoritmo (che è praticamente la stessa come sviluppato da Jean Meeus) è più preciso di Williams-algoritmo utilizzato dalla biblioteca sunrisesunsetlib menzionato nella risposta di @dogbane, soprattutto in prossimità di o nelle regioni polari. Tuttavia, Time4J supporta anche la Williams-algoritmo specificando la calcolatrice nome. Questo semplice algoritmo è ancora utilizzabile in normale e posizioni geografiche dei rendimenti 1-2 minuti di precisione.

    Altre caratteristiche:

    Alcuni espedienti, come il blu, vari twilight definizioni, lunghezza di sole o di determinare la notte polare /sole di mezzanotte o l’impatto di osservatori altitudine sono anche supportate, vedere le API.

    Nota la precisione:

    Che cosa così mai, dobbiamo sempre tenere a mente che topologico fatti, come montagne o particolari condizioni atmosferiche hanno un forte impatto sui reali tempi di alba/tramonto e non può essere modellato in qualsiasi libreria di supporto alba/tramonto-i calcoli.

    Android:

    Per Android-piattaforma, si prega di utilizzare Time4A (la sorella di Time4J) con ottimizzata delle risorse di accesso.

    • Time4J libreria è grande per mezzo di funzioni di tempo. Ma, possiamo calcolare Nautico o Astronomico di Alba e Tramonto utilizzando Time4J ? Non riuscivo a trovare le fonti che parlano di questo.
    • Per il calcolo nautico o astronomico alba/tramonto, basta chiamare i metodi di overload sunrise(Twilight) resp. sunset(Twilight) utilizzando l’apposito Twilight-enum. Se le altre definizioni di angoli desiderato, quindi si potrebbe usare anche il basso livello di interfaccia API SolarTime.Calculator e una delle sue implementazioni in StdSolarCalculator (per esempio per la preghiera Ebraica volte).
  5. 0

    È possibile utilizzare questa connessione webservice per ottenere sunsrise e tramonto

    È molto facile da usare. Fa risposta in tempi GMT, quindi, è necessario fare le coordinate lat/lon fuso orario di conversione se avete bisogno di questo.

Lascia un commento