Көбірек

Python-да растрлық калькулятор өрнегін қолдану

Python-да растрлық калькулятор өрнегін қолдану


Мен бұған дейін осы мәселе туралы жазған болатынмын, бірақ менде бірнеше жаңа сұрақтар бар.

Мәселен, мәселе осында. Менде батиметрия туралы мәліметтер бар екі растр бар: бірінде теңіз түбінің батиметриясы бар, біз оны растр деп атаймыз1, ал екіншісінде сол аймақтың екі сканерлеуінің айырмашылығы бар, біз оны растр деп атаймыз2. Мен растр2 сұранысын сұрауым керек, егер мәні растр1 мәнінің> 10% болатын кез-келген аймақ ерекшеленетін болса. Мен мұны ArcGIS-те растрлық калькуляторда жасай аламын:

Абс («растер2»)> 0,1 * «растер1»

Енді растерлік калькулятор тәсілі өте жақсы жұмыс істейді, бірақ мен осы қадамды осы код жолдарымен үлкен сценарийге енгізуге тырыстым:

arcpy.CheckOutExtension («Spatial») outFinal = Abs (outDiffMinus)> (0,1 * outIntShallow) # arcpy.RasterToASCII_conversion сценарийінің қосымшаларына байланысты шығыс ASCII файлы ретінде сақталуы керек (outFinal, каталог)

Мәселе мынада, сценарийлік тәсіл өлшемдерге сәйкес келмейтін аймақтарды ғана көрсетеді (яғни, растрлық калькулятор тәсіліндегі «0» аймақтары).

Растрлық калькулятордың шығысы:

Міне, сол сценарийдің нәтижесі:

Менің сценарийімде не болуы мүмкін деген ойларыңыз бар ма?


Мәселен, мен «outFinal» -ті ASCII-ге ауыстырған кезде бәрі бірдей мәнге ие болды, бірақ мен оны BIL ретінде сақтаған кезде есептеу осында көрсетілгендей жұмыс істеді:

Егер сіз растр болсаңыз, бірінші рет дұрыс санатталмайды. Оны BIL немесе басқа формат ретінде сақтап көріңіз.