Více

Zakázková implementace funkce ArcGIS

Zakázková implementace funkce ArcGIS


Chtěl bych zjistit, co je potřeba k vytvoření vlastní implementace funkce ArcGIS. Zejména bych chtěl implementovat GeoAnalyst.ISurfaceOp2.Visibility (), aby byl spuštěn rychleji. Právě teď to trvá ~ 3 sekundy na volání Visibility (). Z mého omezeného chápání je překážkou psaní dočasných rastrů do systému souborů. Pokud by to bylo možné provést v paměti, mám podezření, že by se doba zpracování výrazně snížila. Dělám to v projektu .NET, ale řešení v jakémkoli jazyce jsou vítána.


Tato odpověď připomíná a rozšiřuje některé diskuse v komentářích. Disk RAM emuluje externí diskovou jednotku pomocí některé z RAM ve výpočetním systému. Může číst a zapisovat rychlostí srovnatelnou s ukládáním do mezipaměti v paměti, mínus malá režie pro překladové protokoly pro převod příkazů orientovaných na disk na příkazy orientované na paměť. Disk RAM je vytvořen spuštěním speciálního softwaru na úrovni operačního systému, „ovladače zařízení“. Open source a volné RAM disky jsou k dispozici pro mnoho operačních systémů, včetně Windows.

Proto, jedním ze způsobů, jak urychlit úzké místo kvůli mezilehlému disku I / O je nastavit disk RAM (v případě potřeby dokoupit další RAM) a umístit tam stírací složku. (Toto je obvykle softwarové nastavení.)

Jinou možnost je nainstalovat špičkové zařízení DRAM (SSD), což je v podstatě blok paměti RAM v samostatném balení s elektronickým rozhraním, které funguje jako disková jednotka. Instaluje se do výpočetního systému místo diskové jednotky a bude se chovat přesně jako jiná disková jednotka bez dalšího softwaru, ale bude číst a zapisovat téměř stejně rychle, jako přistupuje paměť. Jedná se o relativně drahé, ale pravděpodobně je potřeba jen malá, a to i pro velmi velké mezilehlé rastrové úložiště.

Před provedením některého z těchto kroků je důležité proces profilovat, abyste zjistili, kde je úzké místo ve skutečnosti. (Windows byl v posledních letech dodáván se stále výkonnějšími profilovacími a monitorovacími aplikacemi, které jsou ve Win 7 k dispozici jako pár Správce úloh / Monitorování zdrojů a samozřejmě mnoho podobných aplikací je k dispozici i pro jiné operační systémy.) Mnoho systémů je konfigurováno automaticky, nebo lze nakonfigurovat tak, aby na krátkou dobu ukládal do mezipaměti čtení a zápis do paměti RAM. Ukládání do mezipaměti funguje téměř stejně jako disk RAM, ale je pravděpodobně ještě rychlejší: software si myslí, že zapisuje mezilehlé soubory na disk, ale operační systém je nejprve zapíše dočasně do paměti RAM, aniž by na disk přistupoval, v naději, že brzy budou stejná data budou přečteny a odstraněny, v takovém případě nebude fyzický zápis nikdy nutný. Profilování operací s fyzickým diskem, když je spuštěný zapadlý software, indikuje, zda je nebo není překážkou I / O disku.

Vzhledem k množství výpočtů potřebných pro jakýkoli výpočet úplné viditelnosti (v naivním algoritmu musí být každá buňka jednou zkontrolována na viditelnost pro každé hledisko), je třeba alespoň podezření, že problémem může být výpočetní rychlost, ne disk I / O tady. V takovém případě budou disky RAM nebo SSD ztrátou času a peněz. Místo toho je třeba zaměřit úsilí analyzovat a vylepšovat základní algoritmus.

Nějaká diskuse o tom, zda výkon RAM disku pomáhá ArcGIS, se objevila v jiném vlákně.


Bohužel nemůžete nastavit IRasterAnalysisEnvironment na práci s pracovním prostorem v paměti.

Toto vlákno řeší problém.


Podívejte se na video: Wago 221 + adapter montażowy