Страница 1 из 1

нужна помощь по скрипту Python

Добавлено: 16 дек 2016, 15:23
nadiopt
друзья, помогите пожалуйста
я сделала в ArcGis Model Builder простую цепочку обработки растра (Mod17, продуктивность экосистем). Сами Модисы я пакетно вытянула из hdf снапом, все бы хорошо, но там значение nodata выставлено 32677, и вся квадратная сцена заполняется этим условным нулем.
Цепочка рекласс (превращаем все кроме 32677 в ноль) - экстракт ноль - субстракт маской 0.
модел билдер мне нарисовал вот такой скрипт

Код: Выделить всё

# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# modis.py
# Created on: 2016-12-16 14:24:05.00000
#   (generated by ArcGIS/ModelBuilder)
# Description: 
# ---------------------------------------------------------------------------

# Import arcpy module
import arcpy

# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")


# Local variables:
MOD17A3H_A2014001_h06v03_006_2015295055312_tif = "New Group Layer\\MOD17A3H.A2014001.h06v03.006.2015295055312.tif"
MOD17A3H_A2014001_h06v03_006_2015295055312_tif__2_ = "New Group Layer\\MOD17A3H.A2014001.h06v03.006.2015295055312.tif"
rMOD17A3H_A2014001_h06v03_006_2015295055312_tif = "D:\\work\\prod\\out_new\\2014\\2014_out\\rMOD17A3H.A2014001.h06v03.006.2015295055312.tif"
eMOD17A3H_A2014001_h06v03_006_2015295055312_tif = "D:\\work\\prod\\out_new\\2014\\2014_out\\eMOD17A3H.A2014001.h06v03.006.2015295055312.tif"
v_MOD17A3H_A2014001_h06v03_006_2015295055312_tif = "D:\\work\\prod\\out_new\\2014\\2014_out\\_MOD17A3H.A2014001.h06v03.006.2015295055312.tif"

# Process: Reclassify
arcpy.gp.Reclassify_sa(MOD17A3H_A2014001_h06v03_006_2015295055312_tif, "Value", "32767 1", rMOD17A3H_A2014001_h06v03_006_2015295055312_tif, "DATA")

# Process: Extract by Attributes
arcpy.gp.ExtractByAttributes_sa(rMOD17A3H_A2014001_h06v03_006_2015295055312_tif, "\"VALUE\" =0", eMOD17A3H_A2014001_h06v03_006_2015295055312_tif)

# Process: Extract by Mask
arcpy.gp.ExtractByMask_sa(MOD17A3H_A2014001_h06v03_006_2015295055312_tif__2_, eMOD17A3H_A2014001_h06v03_006_2015295055312_tif, v_MOD17A3H_A2014001_h06v03_006_2015295055312_tif)
ну должен же быть какой-то очень простой алгоритм проделать все то же самое над всеми сценами в папке? типа название файла на * поменять? я в питоне совсем валенок

Re: нужна помощь по скрипту Python

Добавлено: 16 дек 2016, 15:41
Ariki
Я Model Builder'ом пользовался один раз в жизни, но в Python нужен просто цикл по каталогу с файлами. Схема примерно такая:

Код: Выделить всё


import os
input_dir = r'D:\data\input'
output_dir = r'D:\data\output'
for filename in os.listdir(input_dir):
input_file = os.path.join(input_dir, filename)
output_file = os.path.join(output_dir, filename)
# Здесь делаем что-нибудь с input_file и output_file

Re: нужна помощь по скрипту Python

Добавлено: 16 дек 2016, 15:50
Andrey Zhukov
Да можно в том же модельбилдере итератор воткнуть, чтоб кактус с питоном прямо сейчас не есть :)

Re: нужна помощь по скрипту Python

Добавлено: 16 дек 2016, 16:02
nadiopt
да вот никак не могу взять в толк, как это правильно сделать. проще лапой в консоли написать имхо