ডেম রাস্টারটিতে <= 0 থেকে "নোডাটা" মান সহ সমস্ত পিক্সেল কীভাবে সেট করবেন?


28

আমার কাছে প্রায় 3000 এবং -0.0003 এর মধ্যে পিক্সেল মানগুলির সাথে একটি ডেম রাস্টার রয়েছে। আমাকে 0 এবং স্মারারের (<= 0) মানের সাথে "নোডাটা" (পরে রাস্টার গণনার জন্য এবং ফাইলসাইজ হ্রাস করার জন্য) সহ সমস্ত পিক্সেল সেট করতে হবে ।

আমার কাছে মনে হচ্ছে এটি রাস্টার ক্যালকুলেটরের জন্য কাজ (পিক্সেলের সেট মান = <0 থেকে "নোডাটা") বা পুনঃব্যবস্থাপনা (পিক্সেলের সেট মান <= 0 থেকে "নোডাটা" এবং অন্যান্য সমস্ত মান রাখে) তবে আমি তা করি না কিভাবে জানি।


আমাকে <0 থেকে "নোডাটা" এর মান সহ সমস্ত পিক্সেলও সেট করতে হবে। সুতরাং ভাস্কোবুনিউনস থেকে পোস্টটি আমাকে সাহায্য করছে না।
ম্যাপ

দুঃখিত, তবে এটি আমাকে কীভাবে রাস্টার প্রদর্শিত হবে তা পরিবর্তন করতে সহায়তা করছে না। আমাকে আমার রাস্টারফাইলে সম্পাদনা করতে হবে।
ম্যাপ

মন্তব্যগুলি এবং বন্ধ করার পরামর্শগুলি থেকে দেখে মনে হচ্ছে আপনার নিজের প্রশ্নটি সম্পাদনা করা উচিত আপনার কী চান এবং আপনি ইতিমধ্যে কী চেষ্টা করেছেন তা সুনির্দিষ্ট করে জানাতে।
পলিজিও

উত্তর:


29

আমি একটি-সরঞ্জাম সমাধান পাইনি তবে আপনি প্রথমে নির্দিষ্ট প্রান্তিকের নীচে সমস্ত মানকে শূন্যে পরিণত করতে এবং তারপর 0a কে নোডাটিতে রূপান্তর করতে gdal_translate ব্যবহার করতে পারেন you

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


17

নূলে একটি সীমা নির্ধারণ করতে এখানে গ্রাস ম্যাপক্যালাক এক্সপ্রেশন রয়েছে:

r.mapcalc "dem_corrected = if(dem<=0, null(), dem)"

দুর্দান্ত, আমার জন্য কাজ করে!
ilFonta

16

এটি রাস্টার ক্যালকুলেটরে কিউজিআইএস-এর এক ধাপে করা যেতে পারে।

কিউজিআইএস 3-তে, "x" নামে একটি রাস্টার স্তরের জন্য, নিম্নলিখিত এক্সপ্রেশনটি ব্যবহার করুন:

(("x">0)*"x") / (("x">0)*1 + ("x"<=0)*0)

এই কৌশলটি রাস্টার মানগুলি x> 0 অনুপাত x / 1 = x এবং রাস্টার মান x <= 0 অনুপাত 0-0 = NaN তে ম্যাপ করে। যদি রাস্টার 4-বাইট ভাসমান থাকে তবে এই NAN কে FLOAT_MIN (ওরফে -3.402832 ... ই + 38) হিসাবে রেন্ডার করা হয়।

আশ্চর্যজনকভাবে এই প্রশ্নটি বেশিরভাগ সময় হয়ে গেছে বলে মনে হচ্ছে (আমার দ্রুত গুগল অনুসন্ধান আজ পর্যন্ত দেখায়) বেশিরভাগ উত্তরদাতারা বলছেন যে এটি একটি পদক্ষেপেই সম্পন্ন করা যায় না। এটি অবশ্যই এইভাবে হ্যাক করার প্রয়োজন হবে না। কিউজিআইএস ডকুমেন্টেশনটি আরও ভাল হতে পারে।


10

অনেক ধন্যবাদ ডোমিনিককে। আমার প্রথম উত্তর QGIS 2.8.3 (প্রকাশের জন্য সঠিক নয় "myraster@1" > 0আয় 0 বা অ 1 nodata ইনপুট, জন্য nodata ইনপুট এটা ফেরৎ nodata )।

নিম্নলিখিত কিউজিআইএস রাস্টার ক্যালকুলেটর এক্সপ্রেশন পর্যাপ্ত হওয়া উচিত ("মাইরাস্টার" নামক রাস্টার স্তর), যেহেতু কিউজিআইএস রাস্টার ক্যালকুলেটর সমস্ত পিক্সেল সেট করে যা শর্তটি নোডাটে পূরণ করে না :

("মাইরাস্টার @ 1"> 0) * "মাইরাস্টার @ 1"

নিম্নলিখিত সমাধানটি https://docs.qgis.org/2.8/en/docs/training_manual/processing/no_data.html এর উপর ভিত্তি করে এবং SGA 2.1.2 এর সাথে QGIS 2.8.3 এর জন্য কাজ করে।

QGIS প্রসেসিং, Saga ব্যবহার রাস্টার ক্যালকুলেটর এবং নিম্নোক্ত লিখুন ফর্মুলা :

ifelse(g1=0, 0/0, ifelse(g1<0, 0/0, g1))

অথবা

ifelse(a=0, 0/0, ifelse(a<0, 0/0, a))

এটি সমস্ত মান 0 এর চেয়ে কম বা সমানকে নোডাটা (0/0) এ পরিণত করবে।


এটি কাজ করে না কারণ পিক্সেলগুলি যে শর্তটি পূরণ করে না তা 0, নোডাটা নয়
ডোমিনিক

সুপার. রাস্টার মান ফিল্টারটির জন্য এটি ব্যবহার করতে পারেন: উদাহরণস্বরূপ ফিল্টার (0.5%; 23]: ইফেলস (জি 1 <0.5, 0/0, ইফেলস (জি 1> 23, 0/0, জি 1))
ললিপপ

10

আপনি স্তরটিও সংরক্ষণ করতে পারেন (ডান ক্লিক করুন, হিসাবে সংরক্ষণ করুন ...) এবং নোডাটা ব্যাপ্তি নির্দিষ্ট করতে পারেন। এটি আসল নোডাটা রাখে এবং নির্দিষ্ট মানের মানগুলির জন্য নতুন নোডাটা তৈরি করে।


এটি সেরা সমাধান
আলেকজান্ডার

5

আমার অনুরূপ সমস্যা ছিল তবে আমার দুটি মান ছিল না আমি রাস্টারগুলিতে নো-ডেটা এবং বিদ্যমান নো-ডেটা মানগুলিতে রূপান্তর করতে চেয়েছিলাম ।

ফলাফলগুলি সনাক্ত করুন

আমি এই পৃষ্ঠায় সাহায্যের জন্য এসেছি, তবে আমি মনে করি যে এখানে পদ্ধতির জন্য একটি সতর্কতা রয়েছে। @Unddark এবং @ মিচা এর পদ্ধতিগুলি কেবল সেখানে কাজ করে মনে হয় যেখানে রাস্টারগুলিতে কোনও বিদ্যমান ডেটা-মান নেই।

এটির লক্ষ্যে পৌঁছানোর জন্য আপনাকে নো-ডেটা মান এবং যে মানগুলি নো-ডেটাতে রূপান্তর করতে চান তা একটি সামঞ্জস্য সংখ্যায় রূপান্তর করতে হবে। তবে @unddark এর দ্বিতীয় ধাপটি ব্যবহার করা ঠিক আছে।

এটি করতে, একই সাথে মানগুলি এবং নো-ডেটা মানগুলিকে একটি সাধারণ সংখ্যায় (যেমন -৯৯৯) রূপান্তর করতে প্রসেসিং টুলবক্স> পুনরায় শ্রেণিবদ্ধ গ্রিড মানসমূহ (এসএজিএ) ব্যবহার করুন। বিশেষত, পদ্ধতি "ব্যাপ্তি" ব্যবহার করুন এবং ব্যাপ্তিটি নির্দিষ্ট করুন। তারপরে নন-ডেটা মানগুলি প্রতিস্থাপনের জন্য, এই একই মানটি নির্বাচন করুন (উদাঃ -৯৯৯)। আনটিক অন্য মানগুলি প্রতিস্থাপন করে। এটি একক মান পরিবর্তনের জন্য বা আরও জটিল পরিবর্তনের জন্যও কাজ করে।

তারপরে @ আন্ডারডার্কের পদ্ধতিটি অনুসরণ করুন এবং রাস্টার> রূপান্তর> অনুবাদ করে ব্যবহার করে রাস্টারটি সংরক্ষণ করুন এবং আপনার ব্যবহৃত মান প্রবেশ করে (যেমন -৯৯৯) প্রবেশ করে কোনও ডেটা টিক চিহ্ন দিন।


-3

রাস্টারটিতে ডান ক্লিক করুন, রাস্টার বৈশিষ্ট্যে যান, তৃতীয় বিকল্পটি "স্বচ্ছতা" নির্বাচন করুন, কোনও ডাটা মান ট্যাবে নেই, অতিরিক্ত মান 0 যুক্ত করুন এবং প্রয়োগ ক্লিক করুন ar এটি অর্কগিসে অনুরূপ বিকল্প "ডিসপ্লে ব্যাকগ্রাউন্ড ভ্যালু" is


4
একটি ভাল পদ্ধতি নয়। আপনি আসলে ডেটা পরিবর্তন করছেন না তাই আপনার যদি পরিসংখ্যান গণনা করতে বা বিশ্লেষণ করার দরকার হয় তবে ফলাফলগুলি ভুল হবে
খফেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.