[Gfoss] conversione da coordinate sessagesimali a coordinate sessadecimali

Salve,
dovrei eseguire una conversione batch di coordinate da formato sessagesimale a formato sessadecimale, qualcuno ha qualche tool da propormi?

Grazie mille,
marco


dott. Marco Zanieri
e-mail: marcozanieri@gmail.com

cartografia tematica
banche dati territoriali
sistemi informativi geografici
applicazioni GIS e webGIS

Il 22 giugno 2011 11:07, marco zanieri <marcozanieri@gmail.com> ha scritto:

Salve,
dovrei eseguire una conversione batch di coordinate da formato sessagesimale
a formato sessadecimale, qualcuno ha qualche tool da propormi?

ciao Marco,
non è quel che cerchi per una operazione in batch
ma passo comunque un piccolo programmino in C (un timido tentativo di
programmazione
fatto tempo fa) per convertire da dms a dd da riga di comando. Trovi
sorgente e compilato nell'allegato.
Nel mio lavoro torna utile spesso.

ciao
flavio

dms2dd.zip (2.73 KB)

Ciao,

se l'input è file di testo e LON/LAT è nel formato

dd°mm'ss"

si può usare la seguente regexp con parentesi per catturare i diversi
elementi:

/([0-9]+)°[[:space:]]*([0-9]+)'[[:space:]]*([0-9]+)"/

diversi linguaggi e ambienti danno diversi modi per farlo, ad esempio le
funzioni preg_match_all (PHP) o match (AWK) scrivono in un array le
sottoespressioni trovate, ovvero

match[0] = intera stringa in input
match[1] = gradi
match[2] = primi
match[3] = secondi

che possono essere usate per applicare la formula fornita da flavio. in
PHP:

$degrees = '15° 30\' 30"';
if
(preg_match_all('/([0-9]+)°[[:space:]]*([0-9]+)\'[[:space:]]*([0-9]+)"/',$degrees, $matches)) {
    $decimal_degrees = $matches[1][0] + ($matches[2][0] / 60) +
($matches[3][0] / 3600);
    print $decimal_degrees . "\n";
}

Sig

Il giorno mer, 22/06/2011 alle 11.52 +0200, flavio rigolon ha scritto:

Il 22 giugno 2011 11:07, marco zanieri <marcozanieri@gmail.com> ha scritto:
> Salve,
> dovrei eseguire una conversione batch di coordinate da formato sessagesimale
> a formato sessadecimale, qualcuno ha qualche tool da propormi?
>

ciao Marco,
non è quel che cerchi per una operazione in batch
ma passo comunque un piccolo programmino in C (un timido tentativo di
programmazione
fatto tempo fa) per convertire da dms a dd da riga di comando. Trovi
sorgente e compilato nell'allegato.
Nel mio lavoro torna utile spesso.

ciao
flavio
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
518 iscritti al 3.6.2011

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

se l’input è così:
9d14’45"

puoi usare anche cs2cs (in ubuntu / debian pacchettizzato con proj-bin) :

echo “9d48’15.168" 52d19’14.45"” | cs2cs +init=epsg:4326 +to +init=epsg:4326 -f “%.10f”
9.8042133333 52.3206805556 0.0000000000

funziona anche al contrario:
echo “9.8042132531 52.3206806231” | cs2cs +init=epsg:4326 +to +init=epsg:4326
9d48’15.168"E 52d19’14.45"N 0.000

con cs2cs puoi anche trasformare le coordinate in un’altra proiezione e fare un sacco di altre cose.
man cs2cs

ciao Tommaso

On Wed, 2011-06-22 at 11:07 +0200, marco zanieri wrote:

Salve,
dovrei eseguire una conversione batch di coordinate da formato sessagesimale a formato sessadecimale, qualcuno ha qualche tool da propormi?

Grazie mille,
marco


dott. Marco Zanieri
e-mail: marcozanieri@gmail.com

cartografia tematica
banche dati territoriali
sistemi informativi geografici
applicazioni GIS e webGIS

_______________________________________________
Iscriviti all'associazione GFOSS.it: [http://www.gfoss.it/drupal/iscrizione](http://www.gfoss.it/drupal/iscrizione)
[Gfoss@lists.gfoss.it](mailto:Gfoss@lists.gfoss.it)
[http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss](http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss)
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
518 iscritti al 3.6.2011