Web-Daten importieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

oo-fritz
Beiträge: 6
Registriert: Sa, 04.10.2008 23:45

Web-Daten importieren

Beitrag von oo-fritz »

hallo,

ich möchte web-daten importieren. das besondere: es handelt sich um eine response des servers http://www.earthtools.org der z.b. auf die url: http://www.earthtools.org/height/52.4822/-1.8946 (die zahlen sind beispielkoordinaten) mit der xml antwortet:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<height xmlns:xsi="http://www.w3.o...ema-instance" xsi:noNamespaceSchemaLocation="http://www.earthtools.org/height.xsd">
<version>1.0</version>
<location>
<latitude>52.4822</latitude>
<longitude>-1.8946</longitude>
</location>
<meters>141</meters>
<feet>462.6</feet>
</height>

eigentlich interessiert mich nur die höhenangabe "141". wie komme ich an die ran? ich scheitere schon bei verknüpfung zu externen daten, weil calc offensichtlich nur eine "richtige" url (http://www.earthtools.org )akzeptiert, aber nicht die "erweiterte" (http://www.earthtools.org/height/52.4822/-1.8946)

kann mir da wer helfen?
danke
oo-fritz
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Web-Daten importieren

Beitrag von komma4 »

oo-fritz hat geschrieben:eigentlich interessiert mich nur die höhenangabe "141".
Willkommen im Forum, Fritz.

Leider schreibst Du nicht welches Betriebssytems Du nutzt.
Mir fällt da keine einfache Lösung für OOo ein...

...weil, Du willst das Ganze bestimmt mehr als einmal durchführen?? (die Höhe eines Geo-Punktes wird sich nicht täglich ändern, oder?)
...aber Du möchtest mehrere Punkte abfragen, so viele, dass Du nicht manuell die Werte auslesen möchtest?


Eine solche Aufgabe löse ich unter Linux mit zwei einfachen Kommandozeilen-Befehlen (für Windows: Cygwin-Tools und wget für Windows):

Code: Alles auswählen

wget http://www.earthtools.org/height/52.4822/-1.8946
grep "meters"  ./-1.8946 | cut -d \< -f 2 | cut -c 8-12
Die Längen- und Breitenangaben der wget-Abfrage lassen sich natürlich noch parametrisieren.
Leitest Du die Ausgabe des letzten Befehls in eine Datei (Name: parameter1#parameter2.csv) um, dann kannst Du diese mit Calc verknüpfen:

Code: Alles auswählen

=DDE("soffice";"/zentrale/data/hoehen/52.4822#-1.8946.csv";"Tabelle1.A1").
Wäre das ein Lösungsweg?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Web-Daten importieren

Beitrag von komma4 »

Deshalb die Links zu cygwin und wget für Windows.
Ob die unter Vista auch funktionieren...?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Web-Daten importieren

Beitrag von Karolus »

Hallo
Versuch mal:

Code: Alles auswählen

wget http://www.earthtools.org/height/53.4822/5.6 -O - |sed -n 's| *</*meters>||gp' >> orte.csv
Diese Befehlszeile führst du nacheinander angepasst auf deine konkreten Höhen- und Breitenangaben aus und öffnest danach die Datei orte.csv mit OOo-calc.

Um das ganze weiter zu automatisieren funktioniert unter Linux: (Windows ? -keine Ahnung)
Lege eine Datei an mit bspw.dem Namen "hoehen.sh" und dem [Beispiels)-Inhalt:

Code: Alles auswählen

/bin/sh

wget http://www.earthtools.org/height/53.4822/5.6 -O - |sed -n 's| *</*meters>||gp' >> orte.csv
wget http://www.earthtools.org/height/45.40/5.6 -O - |sed -n 's| *</*meters>||gp' >> orte.csv
wget http://www.earthtools.org/height/50/6 -O - |sed -n 's| *</*meters>||gp' >> orte.csv
wget http://www.earthtools.org/height/53.4822/4 -O - |sed -n 's| *</*meters>||gp' >> orte.csv
wget http://www.earthtools.org/height/53.4822/7 -O - |sed -n 's| *</*meters>||gp' >> orte.csv
und mach sie ausführbar mit dem Kommando: chmod a+x hoehen.sh
Edit: die Kopfzeile des Skripts wird leider verstümmelt sie sollte lauten: '#! /bin/sh'

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Web-Daten importieren

Beitrag von Karolus »

Hallo
Ich hab noch etwas optimiert:

Code: Alles auswählen

a="http://www.earthtools.org/height/" + enter
for i in  45/6 48/4 50/7 49/3 44/7 43/8 46/10; do "$(wget $a$i -O - |sed -n 's| *</*meters>||gp' >> orte1.csv)";done + enter
erstellt die Datei 'orte1.csv' mit allen Höhen für die Koordinaten die du in der Kommandozeile einträgst.

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
oo-fritz
Beiträge: 6
Registriert: Sa, 04.10.2008 23:45

Re: Web-Daten importieren

Beitrag von oo-fritz »

... wird ja immer komfortabler ...

nur: direkt aus calc heraus gibt es keine möglichkeit, oder? (siehe mein post weiter oben)

danke
gruß
oo-fritz
oo-fritz
Beiträge: 6
Registriert: Sa, 04.10.2008 23:45

Re: Web-Daten importieren

Beitrag von oo-fritz »

hallo oo-newbie,
OOo-Newbie hat geschrieben: was hälst Du davon die Höhendaten online zu holen und in eine Zelle von Calc zu schreiben.
Mit einer Schleife könnte man nacheinander mehrere Daten holen.

Wäre das eine akzeptable Möglichkeit für Dich?
das klingt genau nach dem was ich suche
OOo-Newbie hat geschrieben: Folgender Code holt die die "141" von der oben genannten URL und schreibt diese in Zelle A1 von Tabelle1.

Code: Alles auswählen

sub readXML_GeoData..........
und damit stehe ich schon im regen! wo den code eingeben? klingt nach makro, aber auch da kann man nur "aufnehmen"
OOo-Newbie hat geschrieben: Den Grundcode habe ich von dieser Seite und entsprechend umgebaut.
diese seiten - und die dort zitierten must-to-read ergänzen meine verwirrung auf satte 100%; sie könnten auch auf russisch geschrieben sein..
gibt es irgendwo kochrezepte dafür?

ihr seid alle sehr hilfsbereit in diesem forum! habt nachsicht mit einem anfänger ....

gruß
oo-fritz
oo-fritz
Beiträge: 6
Registriert: Sa, 04.10.2008 23:45

Re: Web-Daten importieren

Beitrag von oo-fritz »

hallo newbie,

alles klar, habe den code als makro gespeichert - genau nach anweisung http://www.ooowiki.de/MakrosInstallieren
beim ausführen meldet sich das makro aber mit "syntax fehler"

ich wundere mich, dass bei makros verwalten/Makro../das fenster mit dem header "OpenOffice.org Basic Makros" öffnet. Bezieht sich "Basic" darauf, dass hier nur Makros in der Sprache Basic verwaltet werden können? dein code ist doch nicht basic, oder?

im menü makros verwalten gäbe es noch neben makro.. auch python.., bean shell.., java scrip..???

nett, dass du mir so hilfst

gruß
oo-fritz
OOo-Newbie
Beiträge: 3
Registriert: Mi, 08.10.2008 16:23

Re: Web-Daten importieren

Beitrag von OOo-Newbie »

Hallo Fritz,
oo-fritz hat geschrieben:dein code ist doch nicht basic, oder?
Doch, das ist OOo-Basic.
oo-fritz hat geschrieben:beim ausführen meldet sich das makro aber mit "syntax fehler"
Was für eine Fehlerbeschreibung war denn da noch zu lesen?

Hast Du Java installiert? Sonst läuft das Makro nämlich nicht.
Kannst Du nachsehen unter:
Menue - Extras - Optionen - OO.org -Java
Musst einen Augenblick warten bis eventuell was angezeigt wird!
Wenn nicht dann musst Du Java nachinstallieren.

Hänge Dir mal die bei mir funktionierende Datei an.
XML-Lesen.ods
(12.78 KiB) 75-mal heruntergeladen
Wenn Du die Schaltfläche "Get Geodata" drückst musst Du online sein!! Ich hoffe Du hast DSL sonst könnte es unter Umständen lange dauern bis die Daten eingelesen sind.

Warte solange bis Meldung "Fertig" angezeigt wird.

Ich hoffe jetzt aber auf eine positive Rückmeldung. :wink:
Bis dann.

OOo-Newbie
oo-fritz
Beiträge: 6
Registriert: Sa, 04.10.2008 23:45

Re: Web-Daten importieren

Beitrag von oo-fritz »

hallo newbie

java war/ist installiert
fehlermeldung war nur: syntax fehler
OOo-Newbie hat geschrieben: Ich hoffe jetzt aber auf eine positive Rückmeldung. :wink:
es funkt! du bist der größte! :D :D :D
mußte nur die sicherheitseinstellung anpassen (dauer 1 h; dass man dazu calc neu starten muss, steht ja nirgends)


jetzt baue ich das mal in die routenplanung ein - dauert wahrscheinlich ein paar tage
bekommst es dann als "dankeschön"

grß
oo-fritz
OOo-Newbie
Beiträge: 3
Registriert: Mi, 08.10.2008 16:23

Re: Web-Daten importieren

Beitrag von OOo-Newbie »

Nabend Fritz,
oo-fritz hat geschrieben:es funkt!
Na, wenn das mal keine gute Nachricht ist.
oo-fritz hat geschrieben:mußte nur die sicherheitseinstellung anpassen
Sorry, daran hatte ich überhaupt nicht gedacht. :(
oo-fritz hat geschrieben:du bist der größte!
Danke, da schläft man gleich doppelt gut.
oo-fritz hat geschrieben:bekommst es dann als "dankeschön"
Da bin ich aber mal gespannt wie sowas aussieht.
Denke aber bitte auch an die Anderen, die auch eine Menge Zeit und
Gedankengut investiert haben. :wink:

Dann schaff mal schön.

Gut´s Nächtle.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Web-Daten importieren

Beitrag von Karolus »

Hallo OOoNewbie
So ganz neu scheinst du aber nicht zu sein, wenn du gleich ein nicht gerade triviales Makro ablieferst.
Es läuft auch hier, falls man es aber zum Abholen von vielen Daten (>50) losschickt ist es etwas langsam !

Ich häng mal ein Shellscript an, das das etwas schneller erledigt und die Ausgabe in eine csv-Datei schreibt.
! Das folgende ist kein Basic-Makro und ist für LInux-BS !
Wer es testen will, möge den Code bsplw. unter "/home/name/hoehe.sh' abspeichern, mit:
chmod a+x /home/name/hoehen.sh
ausfürbar machen und probieren.

Code: Alles auswählen

#! /bin/sh

# Muster Ausgabe.csv
#################################################################
#							
#	 lllllllllllllllllllllllllll				
#	bhhhhhhhhhhhhhhhhhhhhhhhhhhh	
#	bhhhhhhhhhhhhhhhhhhhhhhhhhhh	
#	bhhhhhhhhhhhhhhhhhhhhhhhhhhh	
#	.....							
#	l== Längengrade					
#	b== Breitengrade					
#	h== Höhe in m						
#################################################################
# in dieser Form 20 * 20 = 400 Einzeldaten in ca 200 sec !
a=http://www.earthtools.org/height/
c=tmpxyzfile
t=tmpxvzfile1

# Kopfzeile bilden aus \Tab | in Längengraden \Newlines durch \Tab und . durch , ersetzen;und \Newline >>nach ~ schreiben
echo -e "\t$(for l in {5,6}.{0,1,2,3,4,5,6,7,8,9};do echo -e $l |tr '.\n' ',\t' ;done)\n" >> ~/$t

for b in 4{5,6}.{0,1,2,3,4,5,6,7,8,9}  # nördl. Breite 45,0° bis 46,9°
do
	for l in {5,6}.{0,1,2,3,4,5,6,7,8,9} # öst.Länge 5,0° bis 6,9°
		do
		# wget holt die xml-datei|sed extrahiert die Höhenmeter|tr ersetzt newlines durch Tab und schreibt nach c
		wget  $a$b/$l -O - |sed -n 's| *</*meters>||gp' |tr '\n' '\t' >> ~/$c
	done
	#jeZeile Breitengrad und Tab voranstellen, Leerzeilen entfernen.nach t schreiben
	echo -e "$b\t$(cat ~/$c)\n" |sed -e '/^$/D' >> ~/$t 
	rm ~/$c #c löschen
done
cat  ~/$t >> ~/Höhenmeter.csv # kopfzeile zum Datenblock hinzufügen >> Ausgabe nach Höhenmeter.csv
rm ~/$t		# t löschen
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
oo-fritz
Beiträge: 6
Registriert: Sa, 04.10.2008 23:45

Re: Web-Daten importieren

Beitrag von oo-fritz »

OOo-Newbie hat geschrieben: Da bin ich aber mal gespannt wie sowas aussieht.
Denke aber bitte auch an die Anderen, die auch eine Menge Zeit und
Gedankengut investiert haben. :wink:
... habe eure hilfe nicht vergessen... komme z.zt. nur nicht dazu ... und nachdem die wandersaison vorbei ist, fehlt auch der druck
.. melde mich wieder, wenn ich es realisiert habe

gruß
oo-fritz
Antworten