Seite 2 von 4

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 9:26 am
von bigben
Cool, das ursprüngliche Problem, dass Datumsangaben mal mit Querstrichen und mal mit Einfachpunkten codiert sind verschwindet einfach, wenn man Excel als Zwischenschritt weglässt. In den Beispieldaten ist alles einheitlich mit Querstrichen und amerikanischer Reihenfolge codiert.

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 9:51 am
von Athomas
Cool, das ursprüngliche Problem ... verschwindet einfach, wenn man Excel als Zwischenschritt weglässt.
So ist es wohl! Unter anderem deswegen dränge ich immer darauf, dass Fragesteller ihr Netto-Problem darstellen - und nicht den Zustand bei Abbruch des Bearbeitungsversuches :lol: !

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 10:55 am
von bigben
...und die konkreten Daten. Datumsangaben im "Format (YYYY / MM / DD)" kamen in den Musterdaten beispielsweise überhaupt nicht vor und ggf. dafür geschriebener Code könnte nicht funktionieren. Immerhin sind die Daten dann jetzt im PosixCT-Format, das, wenn ich das richtig überflogen habe, auch von dem angepeiltern Skript genutzt wird. Wir müssen jetzt noch hoffen, dass die 4 Zeilen Beispieldaten auch wirklich die Daten repräsentieren. Hoffentlich hat Excel nicht einige Zellen verändert, weil es inkonsistente Spalten in den Originaldaten gibt.

@Arthemisia: Ist denn die Verarbeitung ohne Excel für Dich jetzt ok oder hast Du noch andere Anpassungen in Excel vorgenommen, die jetzt auch in R realisiert werden müssen?

GLG,
Bernhard

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 2:23 pm
von Arthemisia
Hallo,
der Tipp mit dem Data Table hat funktioniert. Im Data Frame ist jetzt der Zeitstempel als "chr" markiert und im richtigen Datumsformat für die Weiterverarbeitung. Nächstes Problem: In der Spalte "site" gibt es einmal "Dümmer" und einmal "Großes Meer" für die beiden Populationen. R kann mit "ü" und "ß" nichts anfangen, es gibt dann in der Ausgabe "D\xfcmmer", und beim Versuch, über subset die Datensätze zu teilen, hielt R das "\" für ein Steuerungssymbol.
Das bedeutet, ich muss dann doch für die Spalte "site" die Excel Tabelle verwenden. Ist wohl doch nicht so einfach, Excel komplett außen vorzulassen.

@Bernhard: sorry, aber deinen letzten Kommentar fand ich ein wenig fehl am Platz.

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 3:37 pm
von bigben
Arthemisia hat geschrieben: Mi Sep 07, 2022 2:23 pm@Bernhard: sorry, aber deinen letzten Kommentar fand ich ein wenig fehl am Platz.
Vielleicht hast Du mich damit auch falsch verstanden? Das war kein Kommentar, sondern eine ehrliche Frage. Ich wollte wissen, ob es noch andere Anpassungen gibt von denen Du glaubst, dass Du sie besser in Excel machen solltest und tatsächlich, hast Du noch irgendwelche Umlaute zu verarbeiten und glaubst, dass Du das besser in Excel machen solltest. Ich habe also mit meinem letzten Kommentar ehrlich nach genau dem gefragt, was Du jetzt als Problem hast.

Umlaute und `ß` sind eine Frage der Codierung / des Encodings der CSV-Datei. R geht normalerweise von utf8 aus, aber auch das noch nicht so richtig lange.
Der schnellste und einfachste Weg ist vielleicht, wenn Du die CSV-Datei in RStudio in einem Texteditor öffnest, dort mit Suchen&Ersetzen (Strg+Shift+J) die fraglichen Buchstaben durch etwas ersetzt, was Encoding-unkritisch ist, beispielsweise ß durch ss oder sz und ü durch ue und dann aus dem Texteditor wieder als CSV abspeicherst. Dann hast Du kein Risiko wegen Excel und musst Dich auch nicht lange mit Encodings beschäftigen und verwendest ein Werkzeug, das Du bestimmt schon auf dem Rechner hast.
Natürlich könnte man das auch mir R Code machen, wenn es öfter vorkäme. Wenn das nur einmal anfällt, würde ich es über den Texteditor machen.

LG,
Bernhard

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 3:43 pm
von Arthemisia
ja, das hat funktioniert, danke

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 4:04 pm
von bigben
Gerne. Eine elegantere Alternative wäre gewesen: Finde heraus, welches Encoding die einzulesende Datei benutzt und gibt das dann beim Einlesen der Daten an: https://druedin.com/2017/01/28/set-enco ... r-windows/
und https://abctool.gitlab.io/encoding-dete ... html?_lang

LG,
Bernhard

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 5:33 pm
von Athomas
R kann mit "ü" und "ß" nichts anfangen, es gibt dann in der Ausgabe "D\xfcmmer", ...
Das kann man so nicht sagen - außerdem steckt das Problem mit den falsch codierten "Spezialzeichen" schon in Deinen Beispielsdaten: da gibt es sowohl "Dümmer" wie auch "rigned as adult female in family catch at Lake Dümmer" - sind da mehrere Dateien gemischt worden?

Re: Net Squared Displacement

Verfasst: Mi Sep 07, 2022 5:53 pm
von Arthemisia
Ja, genau das ist ja das Problem.
Es wurden unterschiedliche GPS Geräte verwendet, die z.T. ihre Daten in unterschiedlichen Formaten abgespeichert hatten. Außerdem wurden nachträglich Daten verändert und zusammengeführt.
Da jetzt aber nur die Spalten für "trackId", "site", "timestamp", "location.long" und "location.lat" für das NSD Skript von Interesse sind, sind (mir persönlich im Moment) die anderen Spalten egal. Generell ist das aber echt ein Problem bei der Verarbeitung solcher Datensätze.
Ich bin echt froh, dass ihr mir hier helfen konntet. Danke dafür.

Re: Net Squared Displacement

Verfasst: Do Sep 08, 2022 10:11 am
von Arthemisia
So, ich habe jetzt den Anfang zum Laufen bekommen:

Code: Alles auswählen

library(trip)
library(stringr)
library(adehabitatHR)
library(lattice)
library(gmodels)
library(spatstat)
library(maptools)
library(data.table)

read.csv ("raw_data3.csv")
dataNSD <- read.csv ("raw_data3.csv", haeder = TRUE, sep = ",")

DT <- fread("raw_data3.csv")
DT[  , ":="(Timestamp = as.POSIXct(timestamp, format="%m/%d/%Y %H:%M:%S"))]
dataNSD <- DT[  , c("trackId", "site", "timestamp", "location.long", "location.lat")]
setnames(dataNSD, c("location.long", "location.lat"), c("coords_x1", "coords_x2"))

List_D <-read.table("list_IDduemmer.txt", sep="\t", header=TRUE)
head(List_D) 
trackIdDuemmer <- c(List_D)
str (trackIdDuemmer)

List_GM <-read.table("list_IDgrossesMeer.txt", sep="\t", header=TRUE)
head(List_GM) 
trackIdGrossesMeer <- c(List_GM)
str (trackIdGrossesMeer)

data.Duemmer <- subset (dataNSD, site == "Duemmer")
duemmer <- data.frame (data.Duemmer$trackId, data.Duemmer$timestamp, data.Duemmer$coords_x1, data.Duemmer$coords_x2 )
str (duemmer)

data.GrossesMeer <- subset (dataNSD, site == "Grosses Meer")
GrossesMeer <- data.frame (data.GrossesMeer$trackId, data.GrossesMeer$timestamp, data.GrossesMeer$coords_x1, data.GrossesMeer$coords_x2 )
str (GrossesMeer)

coords.Duemmer <-data.frame(x = duemmer$data.Duemmer.coords_x1, y = duemmer$data.Duemmer.coords_x2)
crsD <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
head(coords.Duemmer)
plot(coords.Duemmer, main = "Coordinates GPS Data Duemmer See", xlab = "Longitude Degrees East", ylab = "Latitude Degrees North")

coords.GrossesMeer <- data.frame(x = GrossesMeer$data.GrossesMeer.coords_x1, y = GrossesMeer$data.GrossesMeer.coords_x2)
crsGM <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
head(coords.GrossesMeer)
plot(coords.GrossesMeer)

NSDduemmer.spdf <- SpatialPointsDataFrame(coords = coords.Duemmer, data = duemmer, proj4string = CRS(crsD))

head(NSDduemmer.spdf)
class(NSDduemmer.spdf)
proj4string(NSDduemmer.spdf)
plot(NSDduemmer.spdf)


NSDgrossesMeer.spdf <- SpatialPointsDataFrame(coords = coords.GrossesMeer, data = GrossesMeer, proj4string = CRS(crsGM))

head(NSDgrossesMeer.spdf)
class(NSDgrossesMeer.spdf)
proj4string(NSDgrossesMeer.spdf)
plot(NSDgrossesMeer.spdf)
###################

Bis hierhin funktioniert es jetzt, danke für eure Tipps.
Jetzt habe ich den nächsten Teil rüber laufen lassen, es läuft bis zum Ende durch, aber dann das hier:

Code: Alles auswählen

Fehler: unerwartetes Symbol in: 
"str (nsdtest)
nsdplot <- xyplot (nsdall ~ zerostart/3600, data = datansd1, col = "grey", type = 'b', ylab = expression paste"
> plot (nsdplot)
Fehler in h(simpleError(msg, call)) : 
  Fehler bei der Auswertung des Argumentes 'x' bei der Methodenauswahl für Funktion 'plot': Objekt 'nsdplot' nicht gefunden
> dev.off()
null device 
          1 
> }
Fehler: Unerwartete(s) '}' in "}"

Und das bekomme ich als Aufstellung der Results:
 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_1       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_1     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_1    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_1    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_2       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_2     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_2    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_2    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_3       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_3     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_3    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_3    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_4       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_4     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_4    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_5    0    0    0    0    0    0    0    0    0     0     0     0
ID           0    0    0    0    0    0    0    0    0     0     0     0
AICC_5       0    0    0    0    0    0    0    0    0     0     0     0
d_AICC_5     0    0    0    0    0    0    0    0    0     0     0     0
LL_AICC_5    0    0    0    0    0    0    0    0    0     0     0     0
wi_AICC_5    0    0    0    0    0    0    0    0    0     0     0     0
          [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22]
ID            0     0     0     0     0     0     0     0     0     0
AICC_1        0     0     0     0     0     0     0     0     0     0
d_AICC_1      0     0     0     0     0     0     0     0     0     0
LL_AICC_1     0     0     0     0     0     0     0     0     0     0
wi_AICC_1     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_2        0     0     0     0     0     0     0     0     0     0
d_AICC_2      0     0     0     0     0     0     0     0     0     0
LL_AICC_2     0     0     0     0     0     0     0     0     0     0
wi_AICC_2     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_3        0     0     0     0     0     0     0     0     0     0
d_AICC_3      0     0     0     0     0     0     0     0     0     0
LL_AICC_3     0     0     0     0     0     0     0     0     0     0
wi_AICC_3     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_4        0     0     0     0     0     0     0     0     0     0
d_AICC_4      0     0     0     0     0     0     0     0     0     0
LL_AICC_4     0     0     0     0     0     0     0     0     0     0
wi_AICC_5     0     0     0     0     0     0     0     0     0     0
ID            0     0     0     0     0     0     0     0     0     0
AICC_5        0     0     0     0     0     0     0     0     0     0
d_AICC_5      0     0     0     0     0     0     0     0     0     0
LL_AICC_5     0     0     0     0     0     0     0     0     0     0
wi_AICC_5     0     0     0     0     0     0     0     0     0     0
Irgendwo sitzt immer noch ein Fehler.