■ はじめに
https://blogs.yahoo.co.jp/dk521123/38092205.htmlhttps://blogs.yahoo.co.jp/dk521123/38100268.html
の続き。 今回は、gdalwarpコマンドを実行することを考える C#に関しては、ほとんど情報がない...
実装案
【1】 Process.Start() で実行 ★ 今回はこっちを取り扱う ★ 【2】GDAL パッケージを利用して実装 ←こっちは、以下の関連記事を参照.NET で GDAL・gdalwarpを実行するには... [2]
https://blogs.yahoo.co.jp/dk521123/38100111.html
■ サンプル
https://stackoverflow.com/questions/27131981/gdal-warping-in-c-sharpが参考になる
Form1.cs
using System; using System.Diagnostics; using System.IO; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { private const string GdalPath = @"C:\Program Files\GDAL"; public Form1() { InitializeComponent(); string projLibraryPath = Path.Combine(GdalPath, "projlib"); Environment.SetEnvironmentVariable("PROJ_LIB", projLibraryPath); } private void button1_Click(object sender, EventArgs e) { var stopwatch = new Stopwatch(); stopwatch.Start(); try { using (Process process = new Process()) { ProcessStartInfo startInfo = new ProcessStartInfo { WindowStyle = ProcessWindowStyle.Hidden, FileName = Path.Combine(GdalPath, "gdalwarp.exe"), //出力とエラーをストリームに書き込むようにする UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, }; startInfo.Arguments = "-of GTiff -overwrite \"C:/Temp/IMG-HH-ALOS2014410740-140829-UBSL1.5GUA\" \"C:/Temp/Output.tiff\""; process.StartInfo = startInfo; process.Start(); // 出力を読み取る string standardOutput = process.StandardOutput.ReadToEnd(); string standardError = process.StandardError.ReadToEnd(); process.WaitForExit(); int exitCode = process.ExitCode; stopwatch.Stop(); TimeSpan timeSpan = stopwatch.Elapsed; if (exitCode == 0) { this.Text = "Done! " + timeSpan.Minutes + ":" + timeSpan.Seconds + " " + standardOutput; } else { this.Text = "Error Code = " + exitCode + " " + standardError + " " + timeSpan.Minutes + ":" + timeSpan.Seconds; } } } catch (Exception ex) { stopwatch.Stop(); TimeSpan errorTimeSpan = stopwatch.Elapsed; this.Text = ex.Message + " " + errorTimeSpan.Minutes + ":" + errorTimeSpan.Seconds; return; } } } }
関連記事
C#
.NET で GDAL を使うには... ~ 環境設定編 ~https://blogs.yahoo.co.jp/dk521123/38092205.html
.NET で GDAL を使うには... ~ Hello World編 ~
https://blogs.yahoo.co.jp/dk521123/38100268.html
.NET で GDAL・gdalwarpを実行するには... [2]
https://blogs.yahoo.co.jp/dk521123/38100111.html
GISツール
GISツール ~ GDAL / OGR ~https://blogs.yahoo.co.jp/dk521123/38092840.html
GISツール ~ GDALコマンド ~
https://blogs.yahoo.co.jp/dk521123/38093845.html