Berechnungen

Hallo Forum,
ich habe zahlreiche Datenwerte, die über ein Land verteilt sind. Diese sollen nun Durchschnittswerte für einzelne Regionen erhalten. Mit Excel ließe sich das nur recht aufwendig und umständlich berechnen, darum hoffe ich, das es in ArcView andere Möglichkeiten gibt. Also mein Datensatz sieht in etwa so aus:
Jahr Wert A Wert B Wert C Region
1990 5,6 7,8 8,9 X
1991 5,4 7,5 8,6 X
1990 6,1 7,3 8,5 Y

Bräuchte nun für jede Region die Werte A, B und C. Da die Regionen unterschiedlich groß sind, geht auch eine Formel für alle nicht.

Hoffe, ich konnte mich verständlich ausdrücken;-)
'Feldstatistik' ('Summarize') heißt das in AV3.x:

- Aktiviere das Regionsfeld
- Klicke im Menü 'Feld' auf 'Feldstatistik'
- Der Feldstatistik-Dialog öffnet sich
- Wähle links Wert A -- Mittelwert aus
- Drücke 'Hinzufügen'
- Selbiges mit Wert B und V
- Drücke OK

Die Summarize-Tabelle enthält für jede Region einen Datensatz mit den zugehörigen Mittelwerten.

P.S: Wenn du die Werte anhand der Fläche gewichten willst, kannst du diese Werte einfach durch die jeweiligen Flächen der Regionen teilen
Das klingt schon mal gut. Allerdings sollen die Daten aber auch in den einzelnen Jahren berechnet werden, also für die Region für 1990, 1991, ... Kann ich das dort auch einstellen?
Steht das nicht in deiner Ausgangstabelle (sieht in deinem Beispiel so aus)?
Also pro Koordinatenpunkt habe ich 10 Werte und wenn ich nun pro Region den Mittelwert berechnen lasse, erhalte ich ja den Wert der 10 Jahre zusammen, bräuchte das aber in die einzelnen Jahre differenziert. Der Datenaufbau nochmal: senkrecht die unterschiedlichen Jahre, waagerecht die dazugehörigen Werte (Daten pro Monat). Herauskommen soll: Datendurchschnitt für jede Region für jeden Monat für jedes Jahr.
Sorry, schriftlich lässt sich das irgendwie nicht ansatzweise vernünftig ausdrücken;-)
Äh...
Hast du mehrere Werte pro Monat (da du ja einen Monatsmittelwert berechnen willst)? Wo stehen denn die Monate? Sieht deine Tabelle wirklich so aus, wie oben skizziert, oder kannst du das nochmal genauer auflisten?
Tabelle sieht schon so aus wie oben, Wert A, B, C, ... soll für Januar, Februar, usw. stehen. In einer Region habe ich dann davon bspw. 10 Datenpunkte für 1990-2000 und den jeweiligen Monaten. Für die Region brauche ich nun den Durchschnittswert der Datenpunkte für die Monate und Jahre. Hätte ich also nicht noch die verschiedenen Jahre, wäre die von dir vorgeschlagene Rechnung im Prinzip genau das richtige. Um diese Problematik zu umgehen, fiele mir jetzt nur ein, dass ich verschiedene Shapes sortiert nach Jahren, also einmal alle Werte für 1990, dann für 1991, ect. mache. Das erscheint mir aber etwas unelegant und wenn irgendwann noch mehr Jahre dazu kommen, auch als relativ arbeitsintensiv.
Ah, jetzt hab ich's wohl - vielleicht - kapiert.

Also dann könntest du erst mal den Mittelwert der Monate berechnen. Das geht über: 'Statistik für Reihen' aus den Memo Tools 6.4 (Menü 'MemoNum'). Wenn du hier alle A, B, C-Felder selektierst, schreibt es dir hinten u.A. den Mittelwert 'rein.

Und danach müsste es ja eigentlich so weitergehen, wie oben beschrieben.
Jetzt weiß ich nicht genau, ob ich dich richtig verstanden habe. Die Monatswerte selbst sollen bestehen bleiben, also da muss an sich kein Mittelwert mehr berechnet werden, der Mittelwert soll sich nur auf die gewünschte Region beziehen.
Oh man, vielleicht hab ich echt nen Brett vorm Kopf: Sagtest du nicht, du brauchst den Datendurchschnitt für jede Region für jeden Monat für jedes Jahr? Vielleicht noch mal ganz deutlich: Wie soll deine Ergebnistabelle ungefähr aussehen ;)
ok, ich probiere es noch mal:-)
Ausgangsdatei
Jahr Jan Feb ... Dez Region
1990 5 6 7 X
1991 4 5 7 X
.
.
.
2000 7 8 8 X
1990 6 8 9 Y
usw.

Ergebnistabelle:
Region Jahr Jan Febr Dez
X 1990 5 6 7
Y 1990 6 8 9
X 1991 4 5 7

so ungefähr.
Entschuldige die lange Leitung, aber ist das nicht einfach umsortiert?
ich versuche hier auch zu verstehen, was Du machen möchtest, was mir aber bislang nicht gelungen ist - ich habe auch ein lange Leitung.

mir ist folgendes nicht klar:
- Du hast Punkte, die zwar ein Attribut mit der Region haben, in welche sie gehören, aber wie willst Du hier eine Flächengewichtung machen?

- oder meinst Du mit dem Satz "Da die Regionen unterschiedlich groß sind, geht auch eine Formel für alle nicht." schlicht und ergreifend nur, dass Du unterschiedliche Anzahlen an Stationen pro Region hast


verstehe ich das richtig:
- Du hast für jeden Station 10 (eigentlich 11, oder? von 1990 -2000) Punkte mit der selben X,Y-Koordinate aber unterschiedlicher Jahreszahl?

- Du hast unterschiedlich viele Stationen in den einzelnen Regionen?

- Jetzt möchtest Du für jedes Jahr und Region Monatsmittelwerte gemittelt über alle Stationen der jeweiligen Regionen haben

-> klingt für mich ein bisschen nach Pivot-Tabelle

Wenn ich das dann recht verstehe und mir die gewünschte Ergebnistabelle ansehe, sieht es doch nach Feldstatistik über mehrere Felder aus.
Da ich nicht weiß, ob und wo das im AV3.x geht, würde ich folgendes tun
1. neues Text-Attribut erstellen: Region verkettet mit Jahr
2. Auf dieses neue Attribut die von Maxilla beschriebene Feldstatistik anwenden, d.h. Mittelwerte berechnen für alle 12 Monate

Ist es das, was Du brauchst?
Grüße,
Ralph
Ich bin mir nicht ganz sicher, ob ich ein ähnliches Problem habe, aber es geht auch um Berechnungen;-)
In meinem shapefile gibt es unterschiedliche Regionen und diesen Regionen sind noch mal verschiedene Arten zugeteilt, die zusammengerechnet werden sollen. Würde da ja eigentlich mit Summarize vorgehen, aber die Regionen kommen leider öfter vor, so dass, wenn ich sie danach zusammenfüge, die Arten unter den Tisch fallen. Hm, ich fürchte, ich drücke mich ähnlich unklar aus wie nele -sorry;-)
Meine Tabelle sieht also so aus:
Region Art Anzahl
A X 3
A X 7
A Y 2
B X 8

Ich benötige nun eine Auflistung, in der nach der Region sortiert die Arten aufgelistet sind, die wiederum nach jeder Art zusammengerechnet sind.
Hier wäre das dann wohl:
A X 10
A Y 2
B X 8

Bin für jeden Tipp dankbar!
Hört sich an, als wäre es sinnvoll, Regions- und Art-Feld (temporär) in einem Feld zusammenzufassen - [RegArt] = [Region]++[Art] - und auf dieses neue Feld den Summarize auszuführen.
Ja, stimmt, das klappt:-) Bekomme ich das zusammengefasste Feld in der entstandenen Tabelle auch wieder auseinander? Es sind leider unterschiedlich lange Kürzel, sonst hätte man ja einfach z.B. die ersten zwei von rechts herauslesen können, oder?
Aber vielen Dank schon mal!
Der Schritt [Region]++[Art] hat ein Leerzeichen zwischen Region und Art erzeugt. Wenn ansonsten keine Leerzeichen vorhanden sind, kannst du zum Splitten beispielsweise

[Region] =
[RegArt].AsTokens(" ").Get(0)

und

[Art] =
[RegArt].AsTokens(" ").Get(1)

benutzen...
Hm, für das erste bekomme ich den Syntax-Error und beimt zweiten Fehlermeldung: AVArray: Index 1 not in range 0..-1. Habe ich vielleicht bei der Feld-Definition gepfuscht oder so?
Der Syntax-Error sagt (falls du alles richtig geschrieben hast) vermutlich, dass dein Zielfeld falsch definiert ist (muss ein Zeichenfeld sein), der AVArray-Fehler sagt: Da gibt's kein Leerzeichen im Quellfeld oder es steht nix dahinter.
...nur so eine Idee, falls es daran scheitert, dass die Einträge im Feld [RegArt] nicht trennbar sind:
Mache einen Join Deiner Ausgangstabelle an die zusammengefasste Tabelle über das Feld [RegArt], damit bekommst Du ja auch die Ausgangswerte für Region und Art.

Schade, dass Nele sich hier nicht mehr gemeldet, hätte mich interessiert, wie sie das Problem gelöst hat.
Viele Grüße,
Ralph
Bezüglich des Array-Feldes: das stimmt wohl, denn in einigen Regionen kamen keine Arten vor und darum steht da nichts. Kann ich das irgendwie umgehen oder muss ich da jetzt per Hand durch? Hoffe, das ist auch zu lösen, sonst muss ich mich nämlich durch 5000 Datensätze quälen;-)
Aber Danke für die Hilfe!
Selektiere vor Ausführung der 2. Berechnung die Datensätze ohne 'Arten' z.B. über:
[RegArt].AsTokens(" ").Count < 2

Ralphs Vorschlag ist gut, wenn du so nicht weiter kommst.
Habe ein ähnliches Problem:
Ich muss ebenfalls den Monatsmittelwert der folgenden Daten berechnen.
Die Tabelle sieht so aus:
Station_ID Jahr Monat Tag Werte1 Werte2 Werte3 WerteN
2234 1965 1 1 3 45 6 43
2234 1965 1 2 6 56 7 54
. . . . . . . .
. . . . . . . .
2234 1965 2 1 5 67 8 98
2234 1965 2 1 6 87 5 72
. . . . . . . .
2435 1965 1 1 4 54 4 71
. . . . . . . .
usw.

Es sind Tageswerte für mehr als 200 Stationen und in drei verschiedenen Jahren. Ich bräuchte den jeweiligen Monatswert der einzelnen Werten (Werte1, Werte2 usw.). Ich weiss leider auch nicht wie man in Excel macht aber es wäre trotzdem besser direkt in GIS machen zu können. Ich verwende allerdings ArcGIS 8.3 bzw. 9.2
Wie kann ich vorgehen ?
mfg

SLeonzi
- Führe Station_ID, Jahr und Monat in einem einzigen (Zeichen-)Feld zusammen
- im Calculator geht das z.B. über: [Station_ID] & " " & [Jahr] & " " & [Monat]
- Jetzt sind die Monate eindeutig pro Station und Jahr definiert
- Mache nun ein Summarize auf dieses Feld
- Für die Wertefelder jeweils 'Average' im Summarize-Dialog anklicken