Ich habe ein Raster mit Lücken. Ich möchte diese mit ArcGIS 10.2 for Desktop mit Durchschnittswerten der umgebenden Zellen ausfüllen.
Ich habe "Focal Statistics" ausprobiert, aber es werden JEDE Zelle und nicht nur die Lücken gemittelt.
Ich habe versucht, [Mosaic] .IsNull.Con ([Average], [Mosaic]) hier zu finden. Patching , weiß aber nicht, wie ich es implementieren soll
Ich habe Map ALgebra ausprobiert, aber ich denke, sie haben Versionen vor 10.2 verwendet.
Was ich möchte. Erstellen Sie ein gefälschtes Raster mit ausgefüllten Lücken. Verwenden Sie das gefälschte Raster, um die Lücken des echten Rasters auszufüllen, ohne die Punkte durch tatsächliche Daten zu ersetzen.
arcgis-desktop
arcgis-10.2
spatial-analyst
Steven Crisp
quelle
quelle
Antworten:
Das funktioniert:
Wobei "w" und "h" der Suchradius sind.
Dies führt nur Fokusstatistiken in den NoData-Bereichen durch. Ich habe dies überprüft, indem ich Daten aus einem DEM gelöscht und dann den Unterschied festgestellt habe. Sie müssen nur sicherstellen, dass der Suchradius ausreichend ist.
quelle
arcpy.sa.NbrCircle(radius, units)
wo sich die Einheiten befinden können'MAP'
oder'CELL'
.Verwenden Sie die von Ihnen beschriebene Fokusstatistikfunktion, um alle Zellen für das Raster zu mitteln. Verwenden Sie dann die Funktionen Con und IsNull im Rasterrechner, um nur die Zellen zu ersetzen, die null sind.
Ein möglicher Nachteil dieser Lösung besteht darin, dass Sie möglicherweise einige unerwünschte zusätzliche gemittelte Zellenwerte um den Umfang Ihres Ausgabe-Rasters sehen
quelle
Sie sollten den Raster-Rechner verwenden. Auf der ESRI-Support-Seite finden Sie eine nützliche und relevante Codezeile. Vorgehensweise: Entfernen und ersetzen Sie keine Datenwerte innerhalb eines Rasters mithilfe statistischer Informationen aus den umgebenden Datenwerten . Aus Ihrer Frage geht hervor, dass dies genau das tun würde, was Sie versuchen, aber lassen Sie mich wissen, wenn ich falsch liege. Hier ist mein Screenshot von Raster Calculator, der eine bedingte Anweisung verwendet, um einen Durchschnittswert für Zellen ohne Daten aus umgebenden Zellen zu berechnen:
Wenn Sie Hunderte davon zu erledigen haben, empfehle ich die Verwendung des Raster-Iterators im Model Builder, der alle Ihre Raster wie folgt in das Raster-Rechner-Tool einspeist:
quelle
Ich habe die von LeonB verwendete Raster-Rechner-Methode ausprobiert, bin jedoch auf einen Speichermangel gestoßen, was angesichts meiner Systemspezifikationen überraschend ist. Schrieb ein kleines eigenständiges Python-Skript - von hier aus modifiziert - in IDLE, das für mich funktionierte ...
quelle