geologyidea.com
Viac

GDAL createCopy je skutočne pomalý

GDAL createCopy je skutočne pomalý


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.


Mám program C ++, ktorý spúšťa určité spracovanie OpenCV na obrázkoch JPEG2000 s rozmermi 4096 x 4096, ktoré majú geografické metadáta. Nechcem upravovať originál, výsledky mojich manipulácií s obrázkami sú uložené do nového súboru s obrázkom. Pretože môjmu výslednému obrázku chýbajú údaje, implementoval som do svojho programu metódu kopírovania pomocouCreateCopy ()skopírujte údaje zdrojového obrázku do nového obrázku. Kopírovanie záberu s veľkosťou 216 kB trvá 97 sekúnd!

skúsil somGDALSetCacheMax (200)a zdá sa, že je to ešte horšie.

Nerozumiem, prečo taký malý kúsok metadát trvá dlhšie ako dokonca moje algoritmy na spracovanie obrazu OpenCV! Prosím pomôžte!

Tu je ukážkový výstup GDALINFO pre správny obraz. Ak nepoužívam CreateCopy, môjmu novému obrázku chýba súradnicový systém a súradnice rohu sú iba rozmery pixelov.

Ovládač: Ovládač JP2OpenJPEG/JPEG-2000 založený na knižnici OpenJPEG Súbory: .jp2 Veľkosť je 4096, 4096 Súradnicový systém je: GEOGCS ["WGS 84", DATUM ["WGS_1984", SPHEROID ["WGS 84", 6378137,298.257223563, AUTHORITY ["EPSG", "7030"]], AUTHORITY [" EPSG "," 6326 "]], PRIMEM [" Greenwich ", 0], UNIT [" stupeň ", 0,0174532925199433], AUTHORITY [" EPSG "," 4326 "]] Pôvod = (-97,025756835937500,32,398681640625000) Veľkosť pixelu = ( 0,000001341104507, -0,000001341104507) Metadáta štruktúry obrázku: INTERLEAVE = PIXEL Rohové súradnice: vľavo hore (-97,0257568, 32,3986816) (97d 1'32,72 "W, 32d23'55,25" N) dolná ľavá (-97,0257568, 32,3931885) (97d "W, 32d23'35,48" N) Vpravo hore (-97,0202637, 32,3986816) (97d 1'12,95 "W, 32d23'55,25" N) Vpravo dole (-97,0202637, 32,3931885) (97d 1'12,95 "W, 32d23'35,48 "N) Center (-97.0230103, 32.3959351) (97d 1'22,84" W, 32d23'45,37 "N) Band 1 Block = 1024x1024 Type = Byte, ColorInterp = Red Prehľady: 2048x2048, 1024x1024, 512x512, 256x256 Prehľady: ľubovoľné pásmo 2 Blok = 1024x1024 Typ = Bajt, ColorInterp = Zelená Prehľady: 2048x2048, 1024x1024, 512x512, 256x256 zobrazenia: ľubovoľný blok 3 bloku = 1024x1024 Typ = bajt, ColorInterp = modrá Prehľady: 2048x2048, 1024x1024, 512x512, 256x256 Prehľady: ľubovoľné

GDAL kód:

// Údaje GDAL const char *pszFormat = "JPEG2000"; GDALDriver *poDriver; GDALDataset *srcDataset; GDALDataset *dstDataset; GDALAllRegister (); poDriver = GetGDALDriverManager ()-> GetDriverByName (pszFormat); // Získať metadáta zdroja srcDataset = (GDALDataset *) GDALOpen (imagePath, GA_ReadOnly); // Vytvorte nové imidžové údaje obrazu (maskPath, dst); // Zapísanie metadát do nového obrázku dstDataset = poDriver-> CreateCopy (maskPath, srcDataset, false, NULL, NULL, NULL); if (dstDataset! = NULL) {GDALClose ((GDALDatasetH) dstDataset); }

Tento problém bol vyriešený napodobňovaním správania gdalcopyproj.py; vyžadovalo to však aktualizáciu sady kódov „zatiaľ nie stabilný“ GDAL2.0.


Neskoro na večierok, ale:
prečo jednoducho nekopírujete neotvorený súbor, a to buď pomocou nástrojov poskytnutých vašim operačným systémom, napr.

kopírovať  

alebo pomocou knižnice súborového systému C ++

std :: filesystem :: copy_file (, )

a potom ho otvoriť a upraviť pomocou GDAL/OpenCV?

Táto operácia kopírovania v skutočnosti neotvorí a dekóduje súbor, takže by sa to malo vykonať maximálne za niekoľko sekúnd.


C#: конструктор копирования или конструктор-десериализатор из JSON

Čo je to JSON:

  1. Есть класс, в нём много свойств. Čo je to?

С сервера приходит сериализованный в JSON объект идентичной структуры (то есть, с теми же свойствам) При этом на клиенте я могу переписать класс как угодно, главное, чтобы тот же набор свойств мон

Не было бы очень удобно этот JSON передавать в конструктор, чтобы писать что-то вроде ContragentPayment cp = new ContragentPay a

Подключил пакет System.Text.Json, десериализую JSON так:

Но я не могу понять, как поместить эту строку кода в конструктор, ведь this ду ту

Odošlite odozvu.

Я смотрю пример, и вижу, что в примере конструктора копирования используется перебор всех свойств вручную, мне же не хотелось бы этого делать, так как их достаточно много. То есть мне нужно либо что-то вроде AutoMapper, либо придётся «наступить на свою гордость» и написать блок кода, который сделает это через Reflection: переберёт свойства, но сделает это автоматически.

Однако, AutoMapper - это лишняя внешняя зависимость, да и вообще - стрельба из пушки по воробьям, а перебор через Reflection мне кажется вычурным и не соответствующим простоте задачи.

Возможно, я упускаю какую то очень простую вещь, на уровне базового синтаксиса языка, которая поз Е посоветуете ли, в какую сторону копать?


Chyba pri kompilácii pomocou narcisu v programe Visual Studio 2013

Mám problém pri kompilácii projektu vc ++ 6.0 v programe Visual Studio 2013 pomocou programu daffodil po zmene projektu na môj nový počítač.

predtým, ako presuniem počítač, je dobré skompilovať a vybudovať môj projekt, ale po presunutí počítača mám problém,

Som si istý, že všetky požiadavky na narcisy sú správne nainštalované, ako napríklad:

toto je môj problém, na mojom novom počítači

a skompilovať a postaviť výsledok na svojom starom počítači

a toto sú moje nové vlastnosti projektu

toto sú vlastnosti môjho projektu na starom počítači

Mám rovnaký projekt bez zmeny kódu a rovnaké špecifikácie a konfiguráciu počítača.


Pozri si video: Export layers from QGIS to Geoserver