GOOGLE ADS

Dienstag, 3. Mai 2022

Empfangen der Meldung „Error in .intersectExtent(x, y, validate = TRUE): Objects do not intersect“ beim Versuch, Raster neu abzutasten

Ich führe R amd aus und habe drei RasterLayers, mit denen ich drei Rasterebenen auf die Auflösung eines Courser-Scale-Rasters (es gibt insgesamt vier Raster) zur Verwendung in MaxEnt neu abtasten möchte, erhalte jedoch die folgende Fehlermeldung:

Error in.intersectExtent(x, y, validate = TRUE): Objects do not intersect

Zwei der Raster überschneiden sich bereits und sind perfekt ausgerichtet, aber die anderen beiden überschneiden sich mit keiner der anderen Rasterebenen.

Ich denke, dies ist ein Problem mit dem Datum, aber ich habe Probleme, das Datum der beiden "Aus" -Raster so zu ändern, dass sie alle übereinstimmen. In ArcGIS Pro werden alle vier Raster übereinander projiziert und sind gut ausgerichtet, aber ihre Datumsangaben und zugrunde liegenden GCSs sind unterschiedlich (mit Ausnahme der beiden zuvor erwähnten).

Kann mir jemand beim Codieren der folgenden Schichten im D NAD 1983 2011 GCS helfen?

Dies ist die Ausgabe, die ich erhalten habe:

dem <- raster("dem.asc")
sas <- raster("sas.asc")
sasb <- resample(sas, dem)
#Error in.intersectExtent(x, y, validate = TRUE):
# Objects do not intersect

sas
#class: RasterLayer
#dimensions: 3185, 2615, 8328775 (nrow, ncol, ncell)
#resolution: 30, 30 (x, y)
# extent: 712518, 790968, 130036.7, 225586.7 (xmin, xmax, ymin, ymax)
#crs: +proj=aea +lat_0=24 +lon_0=-84 +lat_1=24 +lat_2=31.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs
#source: sas.asc
#names: sas
#values: -2147483648, 2147483647 (min, max)
dem
class: RasterLayer
dimensions: 7125, 8208, 58482000 (nrow, ncol, ncell)
resolution: 30, 30 (x, y)
extent: 7e+05, 946240, 385000, 598750 (xmin, xmax, ymin, ymax)
crs: +proj=aea +lat_0=24 +lon_0=-84 +lat_1=24 +lat_2=31.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs
source: dem.asc
names: dem


Solution of the problem

Das:

sasb <- resample(sas, dem)
#Error in.intersectExtent(x, y, validate = TRUE):
# Objects do not intersect

sagt das sasund demschneidet sich nicht. In diesem Fall können Sie kein Resampling durchführen. Manchmal liegt das daran, dass sie ein unterschiedliches Koordinatenbezugssystem (crs) haben, aber aus show(sas)und demes ist klar, dass sie das gleiche Koordinatenbezugssystem haben, sich aber tatsächlich nicht überlappen, wie Sie hier sehen können:

library(raster)
es <- extent(712518, 790968, 130036.7, 225586.7)
ed <- extent(7e+05, 946240, 385000, 598750)
u = union(es, ed)
plot(u, col="white")
lines(es, lwd=3, col="blue")
lines(ed, lwd=3, col="red")

Geben Sie hier die Bildbeschreibung ein

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...