সাধারণ প্রশ্নাবলী
আমার একটি সমস্যা হয়েছে, আমার সাহায্য প্রয়োজন!
এই নির্দেশিকা অনুসরণ করে একটি প্রশ্ন পোস্ট করুন এবং যথাসম্ভব বেশি তথ্য দিন ( ভালো প্রশ্ন করার জন্য স্ট্যাক ওভারফ্লো নির্দেশিকাটি দেখুন)। এর মানে সাধারণত হলো:
কোড এডিটরে একটি স্ক্রিপ্টের লিঙ্ক পাঠানো (এটি পেতে 'গেট লিঙ্ক' বোতামে ক্লিক করুন)
স্ক্রিপ্টটি চালানোর জন্য প্রয়োজনীয় যেকোনো অ্যাসেট শেয়ার করা।
ব্যর্থ হওয়া ব্যাচ টাস্কগুলোর ক্ষেত্রে, ব্যর্থ টাস্কটির আইডি রিপোর্ট করুন। টাস্ক আইডিগুলো দেখতে এইরকম:
4C25GIJBMB52PXTEJTF4JLGL। এগুলো কোড এডিটরের টাস্ক ট্যাবে পাওয়া যাবে। আরও জানুন ।
আমি আর্থ ইঞ্জিন স্থাপত্য সম্পর্কে কোথায় পড়তে পারি?
এই গবেষণাপত্রটি দেখুন: গোরলিক প্রমুখ ২০১৭ ।
গুগল দ্বারা তৈরি নয় এমন কোনো সুপারিশকৃত আর্থ ইঞ্জিন টিউটোরিয়াল আছে কি?
শিক্ষা ও প্রশিক্ষণ সম্পদ পৃষ্ঠাগুলো দেখুন।
রিমোট সেন্সিং-এর জন্য কোনো সুপারিশকৃত টিউটোরিয়াল আছে কি?
উজ্জ্বল গান্ধীর এই বিনামূল্যের EE কোর্সটি দেখুন, যেটিতে রিমোট সেন্সিং-এর পরিচিতিমূলক একটি ভিডিও রয়েছে।
আর্থ ইঞ্জিন প্রোগ্রামিং
কোডিং-এর কিছু সাধারণ ভুল কী কী?
ডিবাগিং নির্দেশিকাটি দেখুন।
আমি কেন "... একটি ফাংশন নয়" ত্রুটিটি পাচ্ছি?
এই ত্রুটিটি ঘটে যখন আর্থ ইঞ্জিন কল করা মেথডটি খুঁজে পায় না। নিম্নলিখিত সাধারণ কারণগুলো যাচাই করুন:
Spelling or case sensitivity : Methods are case-sensitive. Verify spelling against the API Reference .
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
টাইপ কাস্টের অভাব : .get() এর মতো ফাংশন থেকে ফেরত আসা মানগুলি জেনেরিক ee.ComputedObject ইনস্ট্যান্স এবং সেগুলিকে অবশ্যই স্পষ্টভাবে কাস্ট করতে হবে। অজানা অবজেক্ট টাইপ কাস্টিং দেখুন।
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
Mixing client and server methods : Ensure you are not using standard JavaScript or Python methods (like .push() or .append() ) on Earth Engine objects. See Avoid mixing client and server functions .
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
অনুপলব্ধ মেথড : যদি অবজেক্টটি সঠিকভাবে টাইপ করা থাকে এবং মেথডটি ডকুমেন্টেশনে বিদ্যমান থাকে বা পূর্বে কাজ করলেও এখন ব্যর্থ হয়, তাহলে একটি বাগ রিপোর্ট করুন ।
আমি কেন ee.Image("image") * 2 এর মতো সাধারণ গণিত ব্যবহার করতে পারি না?
In EE you shouldn't mix server-side and client-side objects or operations. All operations on EE objects are performed server-side. Any client-side computations won't do what you intend them to do. See this page for more details .
আমি কীভাবে for লুপ অথবা if/else স্টেটমেন্ট ব্যবহার করতে পারি?
আর্থ ইঞ্জিন প্রোগ্রামিং একটি ফাংশনাল ল্যাঙ্গুয়েজ ব্যবহার করে করা হয়, তাই লুপ এবং শর্তাধীন অপারেশনগুলো map বা filter মতো সমতুল্য ধারণা ব্যবহার করে প্রকাশ করা উচিত। আরও বিস্তারিত জানতে এই পৃষ্ঠাটি দেখুন।
আমার ছবি বা ভিডিওতে টেক্সট লেবেল কীভাবে দেখাব?
টেক্সট লেবেলের জন্য কোনো অন্তর্নির্মিত সমর্থন নেই, কিন্তু আপনি যা করতে পারেন:
- একটি থার্ড-পার্টি JS প্যাকেজ ব্যবহার করুন। উদাহরণ দেখুন।
- geemap নামক একটি থার্ড-পার্টি পাইথন প্যাকেজ ব্যবহার করুন।
- EE QGIS প্লাগইন ব্যবহার করে QGIS-এর মাধ্যমে EE ইমেজ নিয়ে আসুন।
আমি কি কিছু স্ট্যান্ডার্ড কালার প্যালেট ব্যবহার করতে পারি?
ee-palettes নামক একটি থার্ড-পার্টি JS প্যাকেজ ব্যবহার করুন।
আমি কীভাবে আর্থ ইঞ্জিন ব্যবহার করে আমার নিজের ওয়েবসাইট তৈরি করব?
সাধারণ অ্যাপ্লিকেশনের জন্য আর্থ ইঞ্জিন অ্যাপস ব্যবহার করুন। আরও জটিল ক্ষেত্রে, আপনি EE-চালিত অ্যাপ ইঞ্জিন অ্যাপস তৈরি করতে পারেন ।
ম্যাপ আইডি কীভাবে কাজ করে?
Map IDs (called mapid throughout the API) are keys which allow clients to fetch map tiles. Each ID is a hash created by providing an image expression to the getMapId endpoint. The resulting IDs are keys which point to both the image expression and the user credentials that will be used to generate tiles in a later stage.
ম্যাপ টাইল অনুরোধ করার জন্য টাইলের অবস্থান ( x , y , zoom ) এবং mapid (যা ছবি ও ক্রেডেনশিয়ালের চাবি) উল্লেখ করতে হয়। একই আইডি একাধিক ম্যাপ টাইল লোড করার জন্য পুনরায় ব্যবহার করা যেতে পারে। mapid কী পুনরায় ব্যবহারের কোনো সীমা নেই, তবে কয়েক ঘণ্টা পর এগুলোর মেয়াদ শেষ হয়ে যায়। এগুলো কতক্ষণ স্থায়ী হয় সে সম্পর্কে আমরা নির্দিষ্ট কোনো সময়সীমা প্রকাশ করি না, কিন্তু আপনার লেখা যেকোনো কোড আইডির মেয়াদ শেষ হয়ে যাওয়ার বিষয়টি সামাল দেওয়ার মতো হওয়া উচিত।
এই আইডিগুলো তৈরি করতে অল্প পরিমাণ ডেটা সংরক্ষণ এবং ক্রেডেনশিয়াল যাচাই করার প্রয়োজন হয়, তাই এগুলো যত বেশি সম্ভব পুনরায় ব্যবহার করাই শ্রেয়। getMapId এন্ডপয়েন্টের সাথে বিশেষভাবে যুক্ত কোনো এপিআই কোটা নেই, কিন্তু যে কোনো ওয়ার্কফ্লো যেখানে টাইলস আনার হারের কাছাকাছি হারে mapid অবজেক্ট তৈরি করা হয়, সেখানে সম্ভবত কোনো ভুল হচ্ছে। আর্থ ইঞ্জিনে এই আইডিগুলো অপসারণ, তালিকাভুক্ত বা পরিচালনা করার জন্য কোনো এপিআই এন্ডপয়েন্ট নেই, কারণ এগুলো ক্ষণস্থায়ী রিসোর্স।
ee.Algorithms.If() কেন true এবং false উভয় ক্ষেত্রেই প্রিন্ট করে?
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
আর্থ ইঞ্জিনের অন্য সব অ্যালগরিদমের মতোই If() অ্যালগরিদমটি কাজ করে, কারণ অ্যালগরিদমটি নিজে চলার আগে এর সমস্ত আর্গুমেন্ট মূল্যায়ন করতে হয়। অ্যালগরিদমটি trueCase এবং falseCase উভয় ফলাফলই গ্রহণ করে এবং তারপর condition আর্গুমেন্টের উপর ভিত্তি করে একটি বেছে নিয়ে তা ফেরত দেয়, কিন্তু প্রথমত, অ্যালগরিদমে ওই মানগুলো পাঠানোর জন্য উভয় পথই কার্যকর করতে হয়েছিল।
আমি "অনুরোধ পেলোড আকার সীমা অতিক্রম করেছে" ত্রুটিটি পাচ্ছি।
আপনি আর্থ ইঞ্জিনে একটি খুব বড় রিকোয়েস্ট পাঠানোর চেষ্টা করছেন। এমনটা সাধারণত তখন হয় যখন কোডে প্রচুর ক্লায়েন্ট-সাইড 'for' লুপ ব্যবহার করা হয় অথবা অনেকগুলো জিওমেট্রি অবজেক্ট দিয়ে একটি FeatureCollection তৈরি করা হয়। পরের ক্ষেত্রে, আপনার স্ক্রিপ্টে এই ধরনের জিওমেট্রি তৈরি করার পরিবর্তে, সেগুলোকে নিয়ে একটি CSV ফাইল তৈরি করুন এবং সেটি একটি টেবিল অ্যাসেটে আপলোড করুন ।
ee.Image.clip() এবং ee.Filter.bounds() এর মধ্যে পার্থক্য কী?
এই GIS স্ট্যাক এক্সচেঞ্জ থ্রেডটি দেখুন। ee.Image.clip() ফাংশনটি সেইসব পিক্সেলকে মাস্ক করে দেয় যেগুলো কোনো নির্দিষ্ট ee.Geometry বা ee.Feature সাথে ছেদ করে না, ফলে ভিজ্যুয়ালাইজেশনে সেগুলো স্বচ্ছ হয়ে যায় এবং গণনার বাইরে থেকে যায়। আপনি এটিকে একটি ছবি থেকে পিক্সেল ছেঁটে ফেলার মতো করে ভাবতে পারেন।
ee.Filter.bounds() ফাংশনটি একটি ee.Geometry বা ee.Feature এর সাথে ছবির ছেদনের উপর ভিত্তি করে একটি ee.ImageCollection থেকে ee.Image অবজেক্টগুলোকে ফিল্টার করে। এটি কোনো বিশ্লেষণের পরিধিকে শুধুমাত্র সেই ছবিগুলোর মধ্যে সীমাবদ্ধ করতে ব্যবহৃত হয় যেগুলো একটি নির্দিষ্ট অঞ্চলকে ছেদ করে, যা এক্সপ্রেশন অপ্টিমাইজ করতে সাহায্য করে ।
কীভাবে ছবির পিক্সেলগুলোকে ফিচার কালেকশনে রূপান্তর করা যায়, যেখানে প্রতি পিক্সেলের জন্য একটি করে ফিচার থাকবে?
ee.Image.sample() ফাংশনটি ব্যবহার করুন। ফাংশনটির এপিআই রেফারেন্স পৃষ্ঠায় ব্যবহারের উদাহরণ দেখুন।
ee.ImageCollection.merge() এবং ee.ImageCollection.combine() এর মধ্যে পার্থক্য কী?
ee.ImageCollection.merge() ফাংশনটি দুটি কালেকশনের সমস্ত ছবিকে একটি কালেকশনে একত্রিত করে, তাদের নিজ নিজ ছবির ব্যান্ড, মেটাডেটা, CRS বা স্কেল মিলে যাক বা না যাক। এটি দুটি কালেকশনের ইউনিয়ন। combine() মেথডটি দুটি কালেকশনের মিলে যাওয়া ছবিগুলোর ব্যান্ডগুলোকে একটি একক কালেকশনে একত্রিত করে। মিলে যাওয়া ছবিগুলোর একই আইডি ( system:index প্রপার্টি) থাকে। এটি ছবির আইডির উপর ভিত্তি করে দুটি কালেকশনের একটি ইনার জয়েন, যেখানে মিলে যাওয়া ছবিগুলোর ব্যান্ড একত্রিত করা হয়। মিলে যাওয়া ছবিগুলোর ক্ষেত্রে, দ্বিতীয় ছবির ব্যান্ডগুলো প্রাথমিক ছবির সাথে যুক্ত করা হয় (ওভাররাইট করা ঐচ্ছিক)। যদি কোনো মিলে যাওয়া ছবি না থাকে, তবে একটি খালি কালেকশন ফেরত দেওয়া হয়।
একাধিক তারিখের ব্যবধানে ছবির সংগ্রহ কীভাবে ফিল্টার করবেন?
এই GIS Stack Exchange থ্রেডটি দেখুন। হয় একাধিক কালেকশনকে একসাথে merge() অথবা ee.Filter.or() ব্যবহার করুন।
প্রদত্ত কোনো বিন্দুর চারপাশে কীভাবে বাউন্ডিং বক্স তৈরি করা যায়?
// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);
// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
var box = feature.buffer(30000).bounds();
return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);
ডেটা ক্যাটালগ
আপনি কি ডেটাসেট X যোগ করতে পারবেন?
ডেটা সেট অনুরোধ নির্দেশিকা অনুসরণ করে একটি ডেটা সেট অনুরোধ সংক্রান্ত বাগ রিপোর্ট করুন।
You can also upload data into your Earth Engine home folder. See Importing Raster Data and Importing Table Data .
একটি বিদ্যমান ডেটাসেটের একটি নতুন সংস্করণ রয়েছে
ডেটা সেট অনুরোধ নির্দেশিকা অনুসরণ করে একটি ডেটা সেট বাগ রিপোর্ট করুন এবং উল্লেখ করুন যে আপনি একটি ডেটা সেট আপডেটের অনুরোধ করছেন।
একটি বিদ্যমান ডেটাসেট আপডেট করা হয়নি অথবা এতে অ্যাসেট অনুপস্থিত রয়েছে।
কোনো সমস্যা জানানোর আগে, সম্ভব হলে যাচাই করে নিন যে নির্বাচিত অ্যাসেটগুলো ডেটাসেট প্রদানকারীর সাইটে আসলেই আছে কি না। আরও বিস্তারিত জানতে অনুপস্থিত ছবি সংক্রান্ত নির্দেশিকাটি দেখুন।
আপনি যদি কোনো ImageCollection ফিল্টার করে অ্যাসেট খোঁজেন, তাহলে খেয়াল রাখবেন আপনার ফিল্টারগুলো যেন খুব বেশি সীমাবদ্ধ না হয়।
বিশেষ করে, লক্ষ্য করুন যে:
প্রাথমিক লেভেল ১ দৃশ্যগুলোর জন্য ESA কর্তৃক সেন্টিনেল-২ এসআর (লেভেল ২ ডেটা) তৈরি করা হয়নি।
২০০০ সালের আগে ল্যান্ডস্যাটের বিশ্বব্যাপী কভারেজ ছিল না।
বিদ্যমান ডেটাসেটে ভুল মান রয়েছে
Post on the developers forum . Include a script that zooms into the original resolution of the asset and makes it clear to see what values are wrong. Explain where exactly you observed the alternative value.
ডেটাসেট সম্পর্কে আর কোথায় জিজ্ঞাসা করতে পারি?
নাসা ডেটাসেট সম্পর্কিত প্রশ্নের জন্য, নাসা আর্থ ডেটা ফোরাম দেখুন।
কোপারনিকাস ডেটাসেটে ব্যবহৃত টুলবক্সগুলো সম্পর্কে কোনো প্রশ্ন থাকলে S1 , S2 , এবং S3 ফোরামগুলো দেখুন।
EE ক্যাটালগটি কত বড়?
২০২৩ সালের অক্টোবর পর্যন্ত, ক্যাটালগটিতে ১০০০-এর বেশি ডেটাসেট রয়েছে। ডিস্কে এর আকার ৯০ পেটাবাইটের বেশি (লসলেস কম্প্রেশন বিবেচনা করার পর)।
EE-তে ডেটা কত ঘন ঘন আপডেট করা হয়?
সাধারণত, সমস্ত চলমান ডেটাসেট অন্তত দৈনিক একবার আপডেট করা হয় (যদিও এই ধরনের সব ডেটাসেটে প্রতিদিন নতুন ডেটা থাকে না)। কিছু ডেটাসেট দিনে বেশ কয়েকবার আপডেট করা হয়। তবে, ক্যাটালগে সবচেয়ে সাম্প্রতিক অ্যাসেটগুলোর উপস্থিতি নিশ্চিত করার জন্য কোনো নীতি নেই।
প্রোগ্রামের মাধ্যমে আমি কীভাবে EE ক্যাটালগের বিষয়বস্তু দেখতে পারি?
ডেটা সেটের তালিকাটি STAC ফরম্যাটে gs://earthengine-stac গুগল ক্লাউড স্টোরেজ বাকেটে এক্সপোর্ট করা হয়। এন্ট্রি ফাইলটি হলো catalog.json ।
আমি কি বিশ্লেষণের জন্য গুগল ম্যাপসের ডেটা বা চিত্র ব্যবহার করতে পারি?
গুগল বিশ্লেষণের জন্য বেসম্যাপ ডেটার লাইসেন্স প্রদান করে না বা তা বিক্রি করে না।
কোনো অ্যাসেট ইনজেস্ট করার তারিখ আমি কীভাবে খুঁজে বের করতে পারি?
'system:version' অ্যাসেট প্রপার্টিটি হলো ইনজেশন টাইমস্ট্যাম্প, যা ইউনিক্স ইপক থেকে মাইক্রোসেকেন্ডে ফরম্যাট করা থাকে। এখানে একটি উদাহরণ দেওয়া হলো যা একটি ল্যান্ডস্যাট ইমেজের ইনজেশন টাইমস্ট্যাম্পকে মানুষের পাঠযোগ্য ফরম্যাটে রূপান্তর করে।
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
আর্থ ইঞ্জিন ক্যাটালগে কি JSON-LD মেটাডেটা আছে?
হ্যাঁ, ক্যাটালগের HTML পেজগুলোতে JSON-LD মেটাডেটা এমবেড করা থাকে। উদাহরণস্বরূপ, Sentinel-2 পেজটিতে নিম্নলিখিত ব্লকটি রয়েছে:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Earth Engine Data Catalog",
"item": "https://developers.google.com/earth-engine/datasets"
},{
"@type": "ListItem",
"position": 2,
"name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
}]
}
</script>
ল্যান্ডস্যাট
simpleComposite অ্যালগরিদমটি কীভাবে বাস্তবায়ন করা হয়?
সার্ভার-সাইড বাস্তবায়নটি এই জাভাস্ক্রিপ্ট কোডের সমতুল্য।
ল্যান্ডস্যাট ভূপৃষ্ঠের প্রতিফলন ডেটা থেকে কীভাবে মেঘমুক্ত কম্পোজিট তৈরি করা যায়?
ল্যান্ডস্যাট লেভেল ২ (সারফেস রিফ্লেক্টেন্স) ডেটার বেশ কয়েকটি কোয়ালিটি ব্যান্ড রয়েছে, যা মেঘ এবং ছবির অন্যান্য অবাঞ্ছিত আর্টিফ্যাক্ট দূর করতে ব্যবহার করা যায়। এই ব্যান্ডগুলো ব্যবহার করে কীভাবে ল্যান্ডস্যাট ৮ এসআর ইমেজ প্রসেস করা হয় এবং একটি মিডিয়ান ক্লাউড-ফ্রি কম্পোজিট তৈরি করা হয়, তার একটি উদাহরণ এই জিআইএস স্ট্যাক এক্সচেঞ্জ পোস্টে দেওয়া হয়েছে। ডেভেলপার'স গাইডে সুপারভাইজড ক্লাসিফিকেশন উদাহরণে ব্যবহারের জন্য একটি ক্লাউড-ফ্রি কম্পোজিট তৈরি করতেও একই পদ্ধতি ব্যবহার করা হয়।
বিভিন্ন সেন্সরের ল্যান্ডস্যাট ভূপৃষ্ঠের প্রতিফলনের সামঞ্জস্য বিধানের কি প্রয়োজন আছে?
Roy et al., 2016 included an analysis of reflectance differences between Landsat 7-8 TOA and surface reflectance. They published the OLS and RMA coefficients so readers could transform the reflectance values of one sensor's data to another. The final line of the paper states: "Although sensor differences are quite small they may have significant impact depending on the Landsat data application." However, this analysis was based on pre-collection data.
কালেকশন ১ এবং কালেকশন ২ পুনঃপ্রক্রিয়াকরণের সময় করা উন্নতিগুলো সেন্সরগুলোর মধ্যকার সম্পর্ককে প্রভাবিত করতে পারে, কিন্তু আমাদের জানামতে, কালেকশন ১ বা কালেকশন ২ ডেটার জন্য রয় এট আল. (২০১৬)-এর মতো কোনো বিশ্লেষণ করা হয়নি। কোনো আনুষ্ঠানিক বিশ্লেষণ না থাকা সত্ত্বেও, প্রভাবশালী ল্যান্ডস্যাট ব্যবহারকারীদের মধ্যে একটি সাধারণ ঐকমত্য রয়েছে বলে মনে হয় যে কালেকশন ২, লেভেল ২ (সারফেস রিফ্লেক্টেন্স) ডেটার জন্য কোনো সংশোধনের প্রয়োজন নেই। উদাহরণস্বরূপ, কালেকশন ২, লেভেল ২-এর সামঞ্জস্য বিধানের প্রয়োজনীয়তা সম্পর্কিত একটি প্রশ্নের উত্তরে, ল্যান্ডস্যাট সায়েন্স টিমের মাইক উল্ডার উল্লেখ করেছেন যে, কাঙ্ক্ষিত প্রয়োগের প্রকৃতির উপর নির্ভর করে (যার মধ্যে ভূমি আচ্ছাদন ম্যাপিং এবং পরিবর্তন শনাক্তকরণ অন্তর্ভুক্ত), কালেকশন ২-এর সারফেস রিফ্লেক্টেন্স প্রোডাক্টগুলো ক্রস-সেন্সর সমন্বয়ের প্রয়োজন ছাড়াই অত্যন্ত উপযুক্ত এবং নির্ভরযোগ্য।
MSS চিত্রে মেঘ এবং মেঘের ছায়া কীভাবে মাস্ক করা যায়?
জাভাস্ক্রিপ্ট কোড এডিটরের জন্য তৃতীয় পক্ষের msslib মডিউলটিতে MSScvm অ্যালগরিদমের একটি বাস্তবায়ন অন্তর্ভুক্ত রয়েছে, সেইসাথে MSS ডেটা অন্বেষণ ও প্রস্তুত করার জন্য অন্যান্য সহায়ক ফাংশনও রয়েছে।
ডেটা ব্যবস্থাপনা
আমি যে ডেটা আপলোড করি তার মালিক কে?
আর্থ ইঞ্জিন- এর পরিষেবার শর্তাবলী অনুসারে, গ্রাহকরা আর্থ ইঞ্জিন-এ যে ডেটা আপলোড করেন, তার মালিক তারাই হন।
আমি ডেটা আপলোড করতে পারছি না!
কোড এডিটরের উপরের ডানদিকের কোণায় থাকা টাস্ক প্যানে আপলোড টাস্কের স্ট্যাটাস দেখুন। আপনি নির্দিষ্ট টাস্ক পেজটিও দেখতে পারেন।
যদি কোনো টাস্ক না থাকে, তাহলে সম্ভবত আপনি কোড এডিটরের মাধ্যমে আপনার ফাইলটি আপলোড করার চেষ্টা করেছেন, কিন্তু নেটওয়ার্কিং সমস্যার কারণে ফাইলটির আপলোড শেষ হয়নি, ফলে টাস্কটি তৈরি হয়নি। অন্য কোনো ব্রাউজার বা অন্য কোনো কম্পিউটার ব্যবহার করে দেখুন।
যদি কোনো টাস্ক ব্যর্থ হয়, তবে প্রদর্শিত ত্রুটিটি পরীক্ষা করুন। যদি কোনো নির্দিষ্ট ত্রুটি বার্তা না থাকে, তবে প্রথমে রাস্টার ফাইলের জন্য gdalinfo অথবা ভেক্টর ফাইলের জন্য ogr2ogr চালিয়ে আপনার ফাইলটি ত্রুটিপূর্ণ নয় তা যাচাই করুন। এই কমান্ডগুলো উৎস ফাইলগুলো থেকে সমস্ত ডেটা পড়ার চেষ্টা করবে এবং ফাইলগুলো ত্রুটিপূর্ণ হলে ত্রুটি প্রদর্শন করবে।
gdalinfo কলের উদাহরণ:
gdalinfo -mm -stats -checksum file.tif
in.shp out.csv ফাইলে রূপান্তর করার জন্য ogr2ogr কলের একটি উদাহরণ:
ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp
ফাইলটি বৈধ মনে হলে, ব্যর্থ টাস্ক আইডিটি টেক্সট হিসেবে (স্ক্রিনশট হিসেবে নয়) ডেভেলপারদের মেইলিং লিস্টে পোস্ট করুন। টাস্ক আইডিগুলোর ফরম্যাট হলো: 4C25GIJBMB52PXTEJTF4JLGL । সম্ভব হলে আপনার সোর্স ফাইলটি পাবলিকলি রিডেবল করুন। যদি এটি একটি প্রাইভেট ফাইল হয় এবং আপনি চান যে আর্থ ইঞ্জিন টিম এটি পরীক্ষা করে দেখুক, তাহলে শুধু earthengine@google.com এ শেয়ার করুন। যদি সোর্স ফাইলটি শেয়ার করা সম্ভব না হয়, তাহলে অন্তত gdalinfo -mm -stats -checksum এর আউটপুট প্রদান করুন।
যদি আর্থ ইঞ্জিন কোনো নির্দিষ্ট প্রজেকশন সমর্থন না করে, তাহলে আপলোড করার আগে আপনাকে ডেটা রিপ্রজেক্ট করতে হবে, যেমন gdalwarp ব্যবহার করে।
আমি কীভাবে NetCDF বা অন্য কোনো অসমর্থিত রাস্টার ফরম্যাটের ফাইল আপলোড করব?
আর্থ ইঞ্জিনে শুধুমাত্র GeoTIFF ফাইল আপলোড করা যায়। gdal_translate ব্যবহার করে অন্যান্য GDAL-উপযোগী ফরম্যাটকে GeoTIFF-এ রূপান্তর করা যায়। উদাহরণ:
gdal_translate -co COMPRESS=DEFLATE file.nc file.tif
উল্লেখ্য যে, কিছু NetCDF বা HDF ফাইল একাধিক উপ-ডেটা সেট নিয়ে গঠিত, যা gdalinfo ব্যবহার করে খুঁজে বের করা যায়। এক্ষেত্রে gdal_translate কমান্ডটি দেখতে এইরকম হবে (ডাবল কোটেশনের ভেতরের পাথটি লক্ষ্য করুন):
gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif
কখনও কখনও NetCDF ফাইলগুলিতে এমন প্রজেকশন থাকে না যা GDAL চিনতে পারে। এই ক্ষেত্রে আপনাকে gdal_translate কমান্ড লাইনে প্রজেকশন এবং স্পেশিয়াল এক্সটেন্ট সেট করতে হবে। উদাহরণ:
gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid
আপলোড করা GeoTIFF ফাইলগুলোর জন্য আমি কোন কম্প্রেশন অ্যালগরিদম ব্যবহার করতে পারি?
আপলোড করার জন্য, GeoTIFF ফাইলগুলোকে DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP, বা ZSTD দিয়ে কম্প্রেস করা যায়। লাইভ COG রিডিংয়ের জন্য, আপনি DEFLATE, JPEG, LZW, বা ZSTD ব্যবহার করতে পারেন। ZSTD সার্বিকভাবে একটি ভালো পছন্দ, কারণ এটি দ্রুত ডিকম্প্রেস করা যায় এবং একই সাথে বেশিরভাগ ইমেজের ভালো কম্প্রেশনও প্রদান করে।
gdal_translate ব্যবহার করার সময় ZSTD কম্প্রেশন প্রয়োগ করতে, এই অপশনগুলো যোগ করুন। ডেটাতে ফ্লোটিং পয়েন্ট ভ্যালু থাকলে, PREDICTOR পরিবর্তন করে 3 করুন।
gdal_translate in.tif out.tif \
-co COPY_SRC_OVERVIEWS=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=22 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
আমার রাস্টার ইনজেশন বেশ কয়েকদিন ধরে চলছে কিন্তু এখনও শেষ হয়নি।
gdalinfo ব্যবহার করে পরীক্ষা করুন, আপনার ফাইলে INTERLEAVE=PIXEL এই GDAL অপশনটি সেট করা আছে কিনা। এই অপশন এবং অনেকগুলো ব্যান্ডযুক্ত ফাইলের ক্ষেত্রে ইনজেশন হয়তো কখনোই শেষ হবে না, কারণ এই ধরনের ফাইলের লেআউটের কারণে রিড প্রক্রিয়া খুব ধীর হয়ে যায়।
আপলোড করার আগে এই ধরনের ফাইলগুলোকে ব্যান্ড-ইন্টারলিভড লেআউটে রূপান্তর করার চেষ্টা করুন:
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
আমার আপলোড করা রাস্টারগুলো বেসম্যাপের সাথে মিলছে না।
যদি ডেটা বেসম্যাপ থেকে সামান্য সরে যায়, তাহলে সম্ভবত প্রজেকশনটিতে একটি ভুল ডেটাম (পৃথিবীর আকৃতি সম্পর্কে অনুমান) রয়েছে। এটি প্রায়শই সাইনুসয়েডাল প্রজেকশনের ক্ষেত্রে ঘটে, যা GDAL মেটাডেটাতে সম্পূর্ণরূপে এনকোড করা যায় না। যখন আপনি জানেন যে টার্গেট প্রজেকশনটি কী হওয়া উচিত (যেমন, MODIS সাইনুসয়েডাল প্রজেকশন ব্যবহার করা ফাইলগুলির জন্য SR-ORG:6974 ), তখন কমান্ড-লাইন আপলোডের সময় --crs ফ্ল্যাগটি অথবা আপলোড ম্যানিফেস্টের crs ফিল্ডটি সেট করুন।
যদি ডেটাগুলো মারাত্মকভাবে বিকৃত বা সম্পূর্ণ ভুল জায়গায় থাকে, তাহলে সম্ভবত প্রজেকশন বা অ্যাফাইন ট্রান্সফর্মটি ভুল।
আমার রাস্টারটি শুধুমাত্র পূর্ব গোলার্ধে দেখা যায়।
সম্ভবত আপনি এমন একটি গ্লোবাল রাস্টার আপলোড করেছেন যা [0, 360] দ্রাঘিমাংশ পরিসীমা জুড়ে বিস্তৃত। কিন্তু, আর্থ ইঞ্জিনের জন্য রাস্টারগুলোকে [-180, 180] পরিসীমার মধ্যে থাকতে হয়। ডেটা অন্তর্ভুক্ত করার আগে রাস্টারটির বাম এবং ডান অংশ অদলবদল করুন। জিআইএস স্ট্যাক এক্সচেঞ্জের এই পরামর্শগুলো দেখুন ।
আমার ইনজেক্ট করা ক্লাসিফিকেশন ইমেজটি কেন ছোপ ছোপ দেখাচ্ছে?
সম্ভবত আপনি ডিফল্ট MEAN পিরামিডিং পলিসি ব্যবহার করেছেন। ক্লাসিফিকেশন ইমেজের জন্য MODE পিরামিডিং পলিসি ব্যবহার করা উচিত। QA/বিটমাস্ক ইমেজের জন্য SAMPLE পিরামিডিং পলিসি ব্যবহার করা উচিত।
আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি: Short<0, 255> টাইপের ব্যান্ড #0-তে কোনো ডেটা মান -128.0 প্রয়োগ করা যাবে না।
GDAL একক-বাইট ব্যান্ডগুলিকে স্বাক্ষরিত পূর্ণসংখ্যা হিসাবে বিবেচনা করতে পারে না, তাই এটি এই ধরনের ব্যান্ডগুলিকে অ-স্বাক্ষরিত পূর্ণসংখ্যা হিসাবে পড়ে। এটি ঋণাত্মক 'কোনো ডেটা নেই' মানের সাথে সাংঘর্ষিক হবে।
If your values are actually signed integers, use manifest upload and add this to the tileset section containing your file: data_type: "INT8"
আপনার মানগুলো যদি আনসাইনড ইন্টিজার হয়, তাহলে আপনার ফাইলে একটি ত্রুটিপূর্ণ নো-ডেটা মান রয়েছে। আপলোড করার সময় আপনি সঠিক ডেটা মান (অথবা এমন কোনো মান যা কখনও ব্যবহৃত হয় না, যদি থাকে) দিয়ে এটিকে ওভাররাইড করতে পারেন। এছাড়া, আপনি নো-ডেটা মানটি পরিবর্তন করতে gdal_translate -a_nodata অথবা এটি মুছে ফেলতে gdal_edit.py -unsetnodata ব্যবহার করতে পারেন।
আমি কীভাবে GeoJSON বা অন্য কোনো অসমর্থিত ভেক্টর ফরম্যাটে একটি ফাইল আপলোড করব?
OGR-উপযোগী ফরম্যাটগুলোকে CSV বা SHP-তে রূপান্তর করতে ogr2ogr ব্যবহার করুন। উদাহরণ:
or2ogr -f "ESRI Shapefile" file.shp file.kml
উল্লেখ্য যে, CSV আপলোডের ক্ষেত্রে জিওমেট্রি কলামে GeoJSON থাকতে পারে।
আমি পাইথন ব্যবহার করে ডেটা আপলোড করতে চাই, অথবা একসাথে অনেকগুলো ফাইল আপলোড করতে চাই।
কমান্ড-লাইন আপলোড ব্যবহার করুন। এই ধরনের আপলোডের জন্য সোর্স ফাইলগুলিকে প্রথমে একটি GCS (Google Cloud Storage ) বাকেটে রাখতে হবে। আপনি যদি ফ্রি টিয়ারের সীমার মধ্যে থাকেন, তাহলে GCS ব্যবহারে কোনো খরচ হয় না - প্রাইসিং পেজটি দেখুন।
আমি অনেকগুলো টাইলে বিভক্ত একটি বড় রাস্টার মোজাইক আপলোড করতে চাই।
যদি ফাইলগুলোর প্রজেকশন এবং পিক্সেল সাইজ একই হয়, তাহলে সেগুলোকে একসাথে একই অ্যাসেটে আপলোড করে দিন — সেগুলো স্বয়ংক্রিয়ভাবে মোজাইক হয়ে যাবে।
যদি ফাইলগুলোর প্রজেকশন বা পিক্সেল সাইজ ভিন্ন হয়, তবে সেগুলোকে একটি একক রাস্টার অ্যাসেটে মোজাইক করা যাবে না। এর পরিবর্তে, প্রতিটি টাইলকে একই ImageCollection এ আলাদা অ্যাসেট হিসেবে আপলোড করুন, যা ImageCollection.mosaic() ব্যবহার করে মোজাইক করা যাবে।
আমি একটি মোজাইক আপলোড করার চেষ্টা করছি এবং টাইলস অমিলের কারণে ত্রুটি পাচ্ছি।
আর্থ ইঞ্জিন রাস্টার মোজাইকের টাইলগুলোর প্রজেকশন এবং পিক্সেল সাইজ অবশ্যই একই হতে হবে। এছাড়াও, টাইলগুলোকে পিক্সেল সীমানায় নিখুঁতভাবে সারিবদ্ধ হতে হবে।
আমি একটি GCS বাকেট থেকে একটি ফাইল আপলোড করার চেষ্টা করছি, কিন্তু আর্থ ইঞ্জিন সেটি খুঁজে পাচ্ছে না।
আপনি হয়তো GCS আপলোড এবং আর্থ ইঞ্জিনে সংযোগ করার জন্য ভিন্ন ভিন্ন গুগল অ্যাকাউন্ট ব্যবহার করেছেন। নিশ্চিত করুন যে, আপনি আর্থ ইঞ্জিনে সংযোগ করার জন্য যে অ্যাকাউন্টটি ব্যবহার করছেন, সেই অ্যাকাউন্ট দিয়ে GCS ফাইলটি পড়া যায়। যদি ব্রাউজারের মাল্টিলগইন এই বিষয়টিকে বিভ্রান্তিকর করে তোলে, তবে একটি ইনকগনিটো ব্রাউজার উইন্ডোতে আর্থ ইঞ্জিনে সংযোগ করুন।
আমি একসাথে অনেকগুলো অ্যাসেট এক্সপোর্ট করতে চাই।
আপনাকে প্রতিটি ছবি আলাদাভাবে এক্সপোর্ট করতে হবে।
আমি একটিমাত্র কমান্ডের মাধ্যমে একটি Folder অথবা একটি ImageCollection সরাতে বা মুছে ফেলতে চাই।
আপনাকে প্রথমে প্রতিটি অ্যাসেট সরাতে বা মুছে ফেলতে হবে, তারপর তার প্যারেন্ট ফোল্ডার বা কালেকশনটি সরাতে বা মুছে ফেলতে হবে। যদি অনেকগুলো চাইল্ড অ্যাসেট থাকে, তবে সেগুলোর ওপর পুনরাবৃত্তি করার জন্য একটি শেল বা পাইথন লুপ লিখুন।
আমি EE-এর বাইরে থেকে সরাসরি আর্থ ইঞ্জিন ডেটা অ্যাক্সেস করতে চাই।
QGIS-এ একটি আর্থ ইঞ্জিন প্লাগইন রয়েছে।
জিডিএএল-এর একটি আর্থ ইঞ্জিন ড্রাইভার রয়েছে।
অন্যান্য সিস্টেমগুলো EE REST API ব্যবহার করতে পারে।
আমি আমার আর্থ ইঞ্জিন অ্যাসেটটির একটি অংশ সম্পূর্ণভাবে পুনরায় ইনজেস্ট না করেই আপডেট করতে চাই।
EE-তে আপলোড করা রাস্টার বা ভেক্টর ডেটা আপডেট করা সম্ভব নয়। শুধুমাত্র অ্যাসেট মেটাডেটা প্রোপার্টিগুলোই আপডেট করা যায়।
আমি আমার অ্যাকাউন্টের অ্যাক্সেস হারাচ্ছি। আমার সম্পদগুলো নিয়ে আমি কী করব?
যদি মূল অ্যাকাউন্টের নীতিমালা ডেটা স্থানান্তরের অনুমতি দেয়, তবে অনুগ্রহ করে আপনার অ্যাসেটগুলো অন্য একটি অ্যাকাউন্টের সাথে শেয়ার করুন, তারপর নতুন অ্যাকাউন্টের মালিকানাধীন অ্যাসেটগুলো কপি করুন। যদি অনেক অ্যাসেট স্থানান্তর করতে হয়, তবে কমান্ড-লাইন কপি ইউটিলিটি ব্যবহার করুন।
কোনো অ্যাকাউন্ট মুছে ফেলা হলে, তার মালিকানাধীন সম্পদগুলো আর ব্যবহার করা যায় না।
আমার এক্সপোর্ট করা ছবিটি ভুল জায়গায় আছে।
কিছু প্রজেকশনের ক্ষেত্রে, যেমন সাইনুসয়েডাল বা কনিক, GeoTIFF ফাইলগুলো কখনও কখনও সমস্ত প্রয়োজনীয় প্রজেকশন প্যারামিটার সংরক্ষণ করতে পারে না। এর ফলে, এক্সপোর্ট করা ফাইলটি ডেস্কটপ জিআইএস টুলে দেখলে বা EE-তে পুনরায় অন্তর্ভুক্ত করলে ভুল জায়গায় প্রদর্শিত হয়।
এর সমাধান করতে, এমন একটি এক্সপোর্ট crs প্যারামিটার নির্দিষ্ট করুন যা GeoTIFF ফাইলের সাথে ভালোভাবে কাজ করে বলে পরিচিত—উদাহরণস্বরূপ, আপনার কাঙ্ক্ষিত এলাকা ধারণকারী UTM জোনের EPSG কোডটি ব্যবহার করুন।
COG অ্যাসেটগুলো সংরক্ষণ করার জন্য আমার কোন ক্লাউড স্টোরেজ বাকেট লোকেশন ব্যবহার করা উচিত?
উত্তরটি নির্ভর করে আপনি কীসের জন্য অপ্টিমাইজ করতে চাইছেন তার উপর। আপনি যদি কম ল্যাটেন্সিতে কম্পিউটেশন অ্যাক্সেসের জন্য অপ্টিমাইজ করতে চান, তাহলে COG অ্যাসেট সংরক্ষণের জন্য সেরা GCS বাকেট লোকেশন হলো US-CENTRAL *। অন্যান্য বিবেচ্য বিষয় সম্পর্কে তথ্যের জন্য বাকেট লোকেশন পেজটি দেখুন।
এক্সপোর্ট করা ফিচার কালেকশন অ্যাসেটগুলোতে আমার সেট করা প্রোপার্টিগুলো সংরক্ষিত থাকে না।
কোনো Export.table.* ফাংশনই আউটপুটে টেবিল-স্তরের প্রোপার্টি সংরক্ষণ করে না। অনেক আউটপুট ফরম্যাটের (যেমন CSV, GeoJSON) জন্য এই ধরনের মেটাডেটার কোনো সমর্থন নেই। Export.table.toAsset ফাংশনটি টেবিল-স্তরের প্রোপার্টি সমর্থন করতে পারত, কিন্তু বর্তমানে তা করে না।
ড্রাইভে CSV ফরম্যাটে এক্সপোর্ট করা টেবিলগুলো XLSX ফরম্যাটে রূপান্তরিত হয়।
আপনার গুগল ড্রাইভ সেটিংসের উপর নির্ভর করে, আর্থ ইঞ্জিন থেকে এক্সপোর্ট করা CSV টেবিলগুলো XLSX ফাইলে রূপান্তরিত হওয়ার সময় কিছু অনাকাঙ্ক্ষিত প্রভাব ফেলতে পারে, যেমন ডেটা টাইপের পরিবর্তন। পরবর্তী এক্সপোর্টগুলোর জন্য এই আচরণটি পরিবর্তন করতে এই ধাপগুলো অনুসরণ করুন।
- ওয়েবে গুগল ড্রাইভে, উপরের ডানদিকে থাকা সেটিংস গিয়ার আইকনে ক্লিক করুন।
- সেটিংসে ক্লিক করুন।
- স্ক্রল করে 'আপলোড করা ফাইলগুলিকে গুগল ডক্স এডিটর ফরম্যাটে রূপান্তর করুন' বিকল্পটি থেকে টিক চিহ্ন তুলে দিন।
কোড সম্পাদক
আমি কোড এডিটরে সাইন ইন করতে পারছি না, কারণ এটি আমাকে ভুল অ্যাকাউন্ট ব্যবহার করতে বলছে।
লগ আউট করুন , "একটি অ্যাকাউন্ট বেছে নিন" পৃষ্ঠা থেকে আর্থ ইঞ্জিন ব্যবহার করার জন্য নিবন্ধিত অ্যাকাউন্টটি নির্বাচন করুন, এবং তারপর দ্বিতীয় "আর্থ ইঞ্জিন কোড এডিটর-এ যাওয়ার জন্য একটি অ্যাকাউন্ট বেছে নিন" পৃষ্ঠায় একই অ্যাকাউন্টটি পুনরায় নির্বাচন করুন (সঠিক শব্দচয়ন ভিন্ন হতে পারে)।
আমি একটি বিশ্ব মানচিত্রের স্ক্রিনশট নিতে চাই, কিন্তু ওয়েব মারকেটর প্রজেকশনটি আমার পছন্দ নয়।
কোড এডিটরে ব্যবহৃত ম্যাপ প্রজেকশনটি হলো ওয়েব মারকেটর ('EPSG:3857')। এটি নিরক্ষরেখা থেকে দূরে অবস্থিত বস্তুগুলোর আকার বাড়িয়ে দেয়, যার ফলে নিরক্ষরেখার কাছাকাছি অঞ্চলের তুলনায় উচ্চ অক্ষাংশের অঞ্চলগুলো তাদের প্রকৃত আকারের চেয়ে অনেক বড় দেখায়। আপনি কোড এডিটরের ম্যাপ ক্যানভাসের প্রজেকশন পরিবর্তন করতে পারবেন না, কিন্তু ee.Image.changeProj মেথডটি ব্যবহার করে ওয়েব মারকেটর ক্যানভাসে আপনার পছন্দের প্রজেকশনে একটি ইমেজ "পেইন্ট" করতে পারেন। রবিনসন প্রজেকশনে কোড এডিটর ম্যাপে একটি গ্লোবাল DEM প্রদর্শনের উদাহরণের জন্য মেথডটির API রেফারেন্স পেজটি দেখুন। মনে রাখবেন যে, এই কৌশলটি শুধুমাত্র ভিজ্যুয়ালাইজেশনের উদ্দেশ্যে ব্যবহার করা উচিত, কারণ কোড এডিটরের ইন্সপেক্টর এবং ড্রয়িং টুলগুলো তখনও ওয়েব মারকেটর প্রজেকশনেই কাজ করে।
আমার স্ক্রিপ্টটি সেভ হচ্ছে না ( Script error: Unknown commit )।
কোনো স্ক্রিপ্ট সেভ করার সময় যদি আপনি ' Script error: Unknown commit message' এই ত্রুটিটি পান, তাহলে সম্ভবত এর মানে হলো যে রিপোজিটরিটি আপনি সেভ করছেন সেটি সিঙ্ক-এর বাইরে রয়েছে। এই অবস্থার কারণ বিভিন্ন হতে পারে এবং তা শনাক্ত করা কঠিন। সমস্যাটি সমাধান করতে, 'Script' ট্যাবের উপরের ডান কোণায় থাকা বাটনটি ব্যবহার করে স্ক্রিপ্ট তালিকাটি রিফ্রেশ করার চেষ্টা করুন। যদি তাতেও কাজ না হয়, তাহলে 'Script' ট্যাবের 'New' বাটন থেকে একটি নতুন রিপোজিটরি তৈরি করে সেখানে আপনার স্ক্রিপ্টটি সেভ করার চেষ্টা করুন (এর জন্য আপনাকে সিঙ্ক-এর বাইরে থাকা রিপোজিটরি থেকে স্ক্রিপ্টগুলো নতুন রিপোজিটরিতে সরাতে হতে পারে)।