আর্দ / কিউজিআইএস-এ লোড করার সময় জিডিএল-এ তৈরি জিওটিআইএফগুলির ন্যূনতম / সর্বাধিক সীমা থাকে না


11

আমি জিওটিএফএফ ড্রাইভারের সাথে জিডিএল-তে কিছু ভাসমান পয়েন্ট রাস্টার তৈরি করছি। আমি যখন ফলাফলগুলি চিত্রগুলি কিউজিআইএস বা আর্কে লোড করি তখন ডিফল্ট প্রতীকগুলি নূন্যতম -3.40282e38 এবং সর্বোচ্চকে 3.40282e38 এ রাখে, তাই রাস্টারটি একেবারে ধূসর দেখায়। জিওটিআইএফএফ-তে সরাসরি আসল পরিসরটি লিখতে পারি এমন কোনও উপায় কি যখন এটি কোনও জিআইএস প্রোগ্রামে লোড করা হয় তা স্বয়ংক্রিয়ভাবে হিস্টগ্রামকে সুন্দরভাবে স্কেল করে? আমি এটির মতো একটি ডিফল্ট হিস্টোগ্রাম তৈরি করার চেষ্টা করেছি:

rasterMin, rasterMax = raster.GetRasterBand(1).ComputeRasterMinMax()
raster.GetRasterBand(1).SetDefaultHistogram(rasterMin, rasterMax, 255)

তবে আমি একটি ত্রুটি পেয়েছি যা একটি বাধ্যতামূলক সমস্যার মতো দেখাচ্ছে:

  File "/usr/lib/python2.6/dist-packages/osgeo/gdal.py", line 846, in SetDefaultHistogram
    return _gdal.Band_SetDefaultHistogram(self, *args)
TypeError: not a sequence

আমি কী করতে পারি তার কোনও পরামর্শ, বা যদি আমি কোনও ভুল করে থাকি?

উত্তর:


8

যদি আপনি ডেটা তৈরি করে থাকেন তবে আপনি ফ্লাইতে সর্বনিম্ন এবং সর্বাধিক ট্র্যাক রাখতে পারেন। যদি সোর্স ডেটাতে আপনার সরাসরি নিয়ন্ত্রণ না থাকে, আপনি বিদ্যমান ডেটা সংমিশ্রিত করছেন ComputeRasterMinMax(0)কিনা তা বলুন, তবে ব্যবহার করা ভাল।

যে কোনও উপায়ে, আপনি আপনার ন্যূনতম এবং সর্বাধিক মানগুলি পাওয়ার পরে, আপনার SetStatistics()ব্যান্ডটি কল করা উচিত , এবং নিশ্চিত Noneহয়ে নিন যে আপনি সমস্ত কিছু ডিস্কে লিখিত হয়ে গেছে তা নিশ্চিত করার পরে আপনার ডেটাसेट সেট করে দিয়েছেন ।

এছাড়াও, আমার মনের পেছনের কিছু আমাকে বলছে যে dataset.GetRasterBand(1).<some band function>জিডিএল পাইথন ব্যান্ড রেফারেন্সগুলি পরিচালনা করে সে কারণে সঠিকভাবে কাজ করবে না। আমি বিশদটি মনে করতে পারি না, তবে কিছুকাল আগে জিডিএলডিভ মেলিং তালিকায় কিছু ছিল। সুতরাং স্পষ্টভাবে একটি ব্যান্ড ভেরিয়েবল তৈরি করা ভাল:, band = dataset.GetRasterBand(1)তারপরে কল করুন band.SetStatistics(min, max, mean, stddev)


ধন্যবাদ, এটি কৌশলটি করেছে, এবং প্রসঙ্গে ধন্যবাদ context উপায় দ্বারা, আমি কোনও সমস্যা ছাড়াই অস্থায়ী পরিবর্তনশীল ছাড়াই ব্যান্ডের রেফারেন্সটি বাসাতে সক্ষম হয়েছি।
ধনী

নোটগুলিও band.ComputeStatistics(0)পরিসংখ্যান সঞ্চয় করে। এটি একটি সহজ 1-লাইন।
মাইক টি

1

জিডিএল ব্যবহার করে এটি করার কোনও উপায় সম্পর্কে আমি অবগত নই, তবে আপনি আर्कের 'গণনা পরিসংখ্যান' সরঞ্জামটি কল করতে পাইথন ব্যবহার করতে পারেন।


2
হাই সাইরাস, GIS.se তে স্বাগতম :) আপনার সঠিক উত্তরটি দুটি কারণে ভোট আকর্ষণ করার সম্ভাবনা কম। আরকিপি গণনা পরিসংখ্যান সরঞ্জাম স্ট্যাটাসকে একটি বাহ্যিক .অক্স ফাইলগুলিতে রাখে এবং পোস্টারটি "সরাসরি জিওটিফের মধ্যে" চেয়েছিল। দ্বিতীয়ত, আর্কগিস শিরোনামে উল্লেখ করা হলেও, প্রশ্নটির মূল অংশ এবং এটির ট্যাগগুলি ইঙ্গিত দেয় যে পোস্টারটি gdal / qgis সমাধানে সত্যই বেশি আগ্রহী। যাই হোক না কেন, অবদানের জন্য ধন্যবাদ এবং দয়া করে এটি অবিরত রাখুন। শুরু করার জন্য এটি কিছুটা শেখার বক্ররেখা তবে আমি মনে করি যে সময়কালে চেষ্টাটি নিজেই পরিশোধ করে নেবে you'll
ম্যাট উইলকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.