Использование инструмента из ArcObjects .Net C#

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
perplexed
Новоприбывший
Сообщения: 6
Зарегистрирован: 19 ноя 2012, 19:40
Репутация: 0

Использование инструмента из ArcObjects .Net C#

Сообщение perplexed » 24 апр 2013, 06:41

Делаю Add-in для ArcMap 10.1
Нужно чтобы add-in производил классификацию снимка инструментом IsoCluster.

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

 Geoprocessor GP = new Geoprocessor();
// Set workspace environment
GP.SetEnvironmentValue("workspace", @"C:\Users\user\Documents\ArcGIS\Default.gdb");
// Initialize the Tool
IsoCluster clusterTool = new IsoCluster();

clusterTool.number_classes = 5;
 
clusterTool.in_raster_bands = [b]???[/b]


// Execute
GP.Execute(clusterTool, null);
В Documentation API сказано это просто object
В Snippets я не нашел ни одного примера с этим свойством
Есть ли по ArcObjects на русском? я нашел только одну.
Помогите с данным примером - Что туда подставить имея локальный адрес файла?

perplexed
Новоприбывший
Сообщения: 6
Зарегистрирован: 19 ноя 2012, 19:40
Репутация: 0

Re: Использование инструмента из ArcObjects .Net C#

Сообщение perplexed » 24 апр 2013, 08:18

Получилося :)

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

Geoprocessor GP = new Geoprocessor();
            // Set workspace environment
            GP.SetEnvironmentValue("workspace", @"C:\Users\user\Documents\ArcGIS\Default.gdb");
            // Initialize the Tool
            IsoClusterUnsupervisedClassification clusterTool = new IsoClusterUnsupervisedClassification();
            
            IRasterWorkspace ws = OpenRasterWorkspace(@"C:\Users\user\Desktop\Europe_2_05.2012095.aqua.721.250m");
            IRasterDataset rasterDataset = ws.OpenRasterDataset("Europe_2_05.2012095.aqua.721.250m.jpg");
            clusterTool.Input_raster_bands = rasterDataset;
            clusterTool.Number_of_classes = 3;// Convert.ToInt16(textBox3.Text);
            
            // Execute the buffer
            GP.Execute(clusterTool, null);

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

        IRasterWorkspace OpenRasterWorkspace(string filePath)
        {
            IWorkspaceFactory wsFactory = new RasterWorkspaceFactory();
            IRasterWorkspace ws = (IRasterWorkspace)wsFactory.OpenFromFile(filePath, 0);
            return ws;
        }

dwarwood
Завсегдатай
Сообщения: 316
Зарегистрирован: 09 июн 2005, 10:38
Репутация: 2
Откуда: Yaroslavl, Russia
Контактная информация:

Re: Использование инструмента из ArcObjects .Net C#

Сообщение dwarwood » 24 апр 2013, 10:12

раз получилось - иконку в первом посте сделайте == Done

novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Использование инструмента из ArcObjects .Net C#

Сообщение novice » 24 апр 2013, 11:31

perplexed, можете, пожалуйста, поделиться опытом использования геопроцессора.
Собственно интересует разница в быстродействии между ArcObjects и geaprocessor. Например, на задаче формирования карты из данных, разница составляет более порядка(пару дней и 3 часа). Правда, сравнение может быть не совсем корректным, т.к. для ArcObjects данные распределялись между множеством процессов.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя