మీ Google Earth ఇంజిన్‌ని జావాస్క్రిప్ట్‌ని వేగంగా అమలు చేయడం ఎలా

మీ Google Earth ఇంజిన్‌ని జావాస్క్రిప్ట్‌ని వేగంగా అమలు చేయడం ఎలా
మీ Google Earth ఇంజిన్‌ని జావాస్క్రిప్ట్‌ని వేగంగా అమలు చేయడం ఎలా

Google Earth ఇంజిన్ స్క్రిప్ట్‌ల అమలు సమయాన్ని ఆప్టిమైజ్ చేయడం

గూగుల్ ఎర్త్ ఇంజిన్ (GEE) అనేది పెద్ద-స్థాయి జియోస్పేషియల్ డేటాను విశ్లేషించడానికి ఒక శక్తివంతమైన వేదిక. అయినప్పటికీ, వినియోగదారులు వారి స్క్రిప్ట్‌లు ప్రాథమికంగా కనిపించినప్పటికీ, అమలు సమయంలో తరచుగా సమస్యలను ఎదుర్కొంటారు. అమలు చేయడానికి చాలా నిమిషాలు పట్టే స్క్రిప్ట్ ఉత్పాదకతను ప్రభావితం చేస్తుంది మరియు అంతర్దృష్టులను ఆలస్యం చేస్తుంది.

ఈ సందర్భంలో, సెంటినెల్ మరియు ల్యాండ్‌శాట్ 8 డేటాను ప్రాసెస్ చేయడానికి వినియోగదారు సాధారణ స్క్రిప్ట్‌ను సృష్టించారు. దాని సరళత ఉన్నప్పటికీ, స్క్రిప్ట్ అమలు చేయడానికి 3-5 నిమిషాలు పడుతుంది. సమర్థవంతమైన డేటా ప్రాసెసింగ్ కోసం ఇది ఎందుకు జరుగుతుందో మరియు స్క్రిప్ట్‌ను ఎలా ఆప్టిమైజ్ చేయాలో అర్థం చేసుకోవడం చాలా అవసరం.

GEE స్క్రిప్ట్ యొక్క పనితీరు డేటా పరిమాణం, ఫిల్టరింగ్ మరియు గణన సంక్లిష్టతతో సహా అనేక అంశాలపై ఆధారపడి ఉంటుంది. అమలు సమయాన్ని తగ్గించడం అనేది స్క్రిప్ట్‌లోని అడ్డంకులను గుర్తించడం, అనవసరమైన ఆపరేషన్‌లు లేదా ప్రాసెసింగ్‌ను నెమ్మది చేసే పెద్ద డేటాసెట్‌లు వంటివి.

ఈ కథనం GEEలో స్లో ఎగ్జిక్యూషన్ టైమ్‌లకు గల కారణాలను అన్వేషిస్తుంది మరియు ఇచ్చిన స్క్రిప్ట్‌ను ఆప్టిమైజ్ చేయడానికి ఆచరణాత్మక చిట్కాలను అందిస్తుంది. ఈ వ్యూహాలను అమలు చేయడం ద్వారా, వినియోగదారులు తమ జియోస్పేషియల్ డేటా విశ్లేషణ పనుల వేగం మరియు పనితీరును గణనీయంగా మెరుగుపరచగలరు.

ఆదేశం ఉపయోగం యొక్క ఉదాహరణ
normalizedDifference() ఈ ఫంక్షన్ NDVI, NDWI మరియు NDSI వంటి సూచికలను రెండు బ్యాండ్‌ల మధ్య వ్యత్యాసాన్ని గణించడం ద్వారా వాటి మొత్తంతో భాగించబడుతుంది. వృక్షసంపద, నీరు మరియు మంచు సూచికలు అవసరమయ్యే రిమోట్ సెన్సింగ్ విశ్లేషణకు ఇది ప్రత్యేకమైనది.
filterBounds() ఇచ్చిన జ్యామితిని కలిసే చిత్రాలను మాత్రమే చేర్చడానికి చిత్ర సేకరణను ఫిల్టర్ చేస్తుంది. ఈ సందర్భంలో, ఇది అసంబద్ధమైన డేటాను మినహాయించడం ద్వారా ప్రాసెసింగ్‌ను మరింత సమర్ధవంతంగా చేయడం ద్వారా నిర్వచించిన ఆసక్తి ఉన్న ప్రాంతానికి ఉపగ్రహ డేటాను పరిమితం చేస్తుంది.
filterDate() ఈ ఆదేశం చిత్రం సేకరణను నిర్దిష్ట తేదీ పరిధికి పరిమితం చేస్తుంది. మా సమస్య కోసం, సెంటినెల్ మరియు ల్యాండ్‌శాట్ డేటాసెట్‌ల కోసం ఒకే సమయ వ్యవధి మధ్య తేడాలను విశ్లేషించడం చాలా కీలకం.
addBands() సేకరణలోని ప్రతి చిత్రానికి కొత్త లెక్కించబడిన బ్యాండ్‌లను (NDVI, NDWI మరియు NDSI వంటివి) జోడిస్తుంది. వేర్వేరు డేటాసెట్‌లను సృష్టించకుండా ఒకే చిత్ర సేకరణకు బహుళ సూచికలను వర్తింపజేయడానికి ఇది చాలా అవసరం.
unmask() పేర్కొన్న విలువతో ముసుగు పిక్సెల్‌లను నింపుతుంది. మా స్క్రిప్ట్‌లో, శాశ్వత నీటి ప్రాంతాలను అన్‌మాస్క్ చేయడానికి ఇది ఉపయోగించబడుతుంది, మొత్తం ప్రాంతం అంతటా డేటా స్థిరంగా ప్రాసెస్ చేయబడుతుందని నిర్ధారిస్తుంది.
reduce() ee.Reducer.percentile() వంటి పేర్కొన్న రీడ్యూసర్ ఫంక్షన్‌ని ఉపయోగించి చిత్ర సేకరణను తగ్గిస్తుంది. ఇక్కడ, ఇది పిక్సెల్ విలువల 30వ శాతాన్ని గణించడానికి, మిశ్రమ చిత్ర ఉత్పత్తిని ఆప్టిమైజ్ చేయడానికి ఉపయోగించబడుతుంది.
clip() ఆసక్తి ఉన్న నిర్దిష్ట ప్రాంతం యొక్క సరిహద్దులకు చిత్రాన్ని క్లిప్ చేస్తుంది. ఇది ప్రాంతానికి సంబంధించిన డేటా మాత్రమే ప్రాసెస్ చేయబడుతుందని నిర్ధారిస్తుంది, ఇది అమలును వేగవంతం చేస్తుంది.
gt() ఈ కమాండ్ అంటే 'గ్రేటర్ దేన్' మరియు థ్రెషోల్డ్ ఆధారంగా బైనరీ ఇమేజ్‌లను రూపొందించడానికి ఉపయోగించబడుతుంది. ఈ సందర్భంలో, ఇది 80% కంటే ఎక్కువ నీరు సంభవించే ప్రాంతాలను గుర్తిస్తుంది.
map() సేకరణలోని ప్రతి చిత్రానికి ఒక ఫంక్షన్‌ని వర్తింపజేస్తుంది. మా ఉదాహరణలో, ఇది సేకరణలోని అన్ని చిత్రాలలో NDVI, NDWI మరియు NDSI లను గణించడానికి, వర్క్‌ఫ్లోను క్రమబద్ధీకరించడానికి addIndices ఫంక్షన్‌ను వర్తింపజేస్తుంది.

మెరుగైన సామర్థ్యం కోసం GEE స్క్రిప్ట్‌లను ఆప్టిమైజ్ చేయడం

అందించిన స్క్రిప్ట్‌లో, రెండు వేర్వేరు మూలాధారాల నుండి ఉపగ్రహ చిత్రాలను సంగ్రహించడం మరియు ప్రాసెస్ చేయడం లక్ష్యం: సెంటినెల్ మరియు ల్యాండ్‌శాట్. ది Google Earth ఇంజిన్ (GEE) ప్లాట్‌ఫారమ్ వినియోగదారులు అధిక మొత్తంలో ఉపగ్రహ డేటాను యాక్సెస్ చేయడానికి మరియు ఫిల్టరింగ్, ఇండెక్సింగ్ మరియు విజువలైజేషన్ వంటి వివిధ కార్యకలాపాలను వర్తింపజేయడానికి అనుమతిస్తుంది. ఈ స్క్రిప్ట్‌లో ఉపయోగించిన ముఖ్య లక్షణాలలో ఒకటి సాధారణీకరించిన తేడా() ఫంక్షన్, ఇది NDVI, NDWI మరియు NDSI వంటి ముఖ్యమైన సూచికలను లెక్కించడానికి ఉపయోగించబడుతుంది. పేర్కొన్న ప్రాంతంలో వృక్షసంపద, నీరు మరియు మంచు కవచాన్ని విశ్లేషించడానికి ఈ సూచికలు కీలకం. స్క్రిప్ట్ ఆసక్తికర పాయింట్‌ని నిర్వచించడం ద్వారా ప్రారంభమవుతుంది మరియు అందించిన కోఆర్డినేట్‌లను ఉపయోగించి దానిపై మ్యాప్‌ను కేంద్రీకరిస్తుంది.

స్క్రిప్ట్ బహుళ ఫిల్టర్‌లను వర్తింపజేస్తుంది ఫిల్టర్ తేదీ() మరియు ఫిల్టర్‌బౌండ్‌లు(), ప్రాసెస్ చేయబడిన డేటా మొత్తాన్ని తగ్గించడానికి, తద్వారా అమలు సమయం మెరుగుపడుతుంది. ఉదాహరణకు, ఫిల్టర్‌బౌండ్‌లు() ఆసక్తి ఉన్న ప్రాంతాన్ని కలుస్తున్న చిత్రాలు మాత్రమే చేర్చబడిందని నిర్ధారిస్తుంది ఫిల్టర్ తేదీ() చిత్రాలను నిర్దిష్ట తేదీ పరిధికి పరిమితం చేస్తుంది. సెంటినెల్ మరియు ల్యాండ్‌శాట్ ఇమేజరీ వంటి పెద్ద డేటాసెట్‌లను ప్రాసెస్ చేయడానికి ఇది చాలా అవసరం, ఎందుకంటే ఇది గణన లోడ్‌ను తగ్గిస్తుంది. అదనంగా, ది వడపోత క్లౌడ్ కవరేజ్ కోసం చాలా క్లౌడ్ ఉన్న చిత్రాలను విస్మరించడానికి సహాయపడుతుంది, మెరుగైన-నాణ్యత విశ్లేషణకు భరోసా ఇస్తుంది.

స్క్రిప్ట్ యొక్క ఒక ముఖ్యమైన అంశం addBands() ఫంక్షన్, ఇది చిత్రాలకు లెక్కించబడిన సూచికలను (NDVI, NDWI, NDSI) జోడిస్తుంది, తదుపరి విశ్లేషణ కోసం వాటిని అందుబాటులో ఉంచుతుంది. స్క్రిప్ట్ JRC గ్లోబల్ సర్ఫేస్ వాటర్ డేటాసెట్ నుండి డేటాను ఉపయోగించి శాశ్వత వాటర్ మాస్క్‌ను కూడా కలిగి ఉంటుంది. నీటి మాస్క్ (80% కంటే ఎక్కువ) నీరు ఎక్కువగా ఉండే ప్రాంతాలను మినహాయించడంలో సహాయపడుతుంది, ఇది వృక్షసంపద మరియు మంచు విశ్లేషణ ఫలితాలను వక్రీకరించవచ్చు. ద్వారా ఇది జరుగుతుంది gt() మరియు ముసుగు విప్పు() విధులు, ఇది పిక్సెల్ విలువల ఆధారంగా ప్రాంతాలను వేరుచేయడానికి స్క్రిప్ట్‌ను అనుమతిస్తుంది.

చివరగా, స్క్రిప్ట్ ఉపయోగిస్తుంది తగ్గించు() ఎంచుకున్న పిక్సెల్ విలువలలో 30వ శాతాన్ని సూచించే మిశ్రమ చిత్రాన్ని రూపొందించడానికి పర్సంటైల్ రీడ్యూసర్‌తో పని చేస్తుంది. ఈ మిశ్రమ చిత్రం ఆసక్తి ఉన్న ప్రాంతానికి క్లిప్ చేయబడుతుంది మరియు దీన్ని ఉపయోగించి మ్యాప్‌లో దృశ్యమానం చేయబడుతుంది క్లిప్() ఫంక్షన్. సెంటినెల్ మరియు ల్యాండ్‌శాట్ కాంపోజిట్‌ల కోసం దృశ్యమాన పారామితులు నిర్వచించబడ్డాయి, వినియోగదారు వాటిని తగిన రంగు సెట్టింగ్‌లతో వీక్షించడానికి అనుమతిస్తుంది. ఫిల్టరింగ్, మాస్కింగ్ మరియు కాంపోజిట్ జనరేషన్ వంటి వివిధ ఇమేజ్ ప్రాసెసింగ్ దశలను కలపడం ద్వారా, ఈ స్క్రిప్ట్ ఉపగ్రహ చిత్రాలను విశ్లేషించడానికి సమర్థవంతమైన మార్గాన్ని అందిస్తుంది, అయితే అమలు సమయాన్ని తగ్గించడానికి మరింత ఆప్టిమైజేషన్ వర్తించవచ్చు.

వేగవంతమైన ప్రాసెసింగ్ కోసం Google Earth ఇంజిన్ స్క్రిప్ట్ ఎగ్జిక్యూషన్‌ను ఆప్టిమైజ్ చేస్తోంది

డేటా రిట్రీవల్ సమయాన్ని తగ్గించడం మరియు కార్యకలాపాలను సులభతరం చేయడం ద్వారా పనితీరును ఆప్టిమైజ్ చేయడంపై ఈ పరిష్కారం Google Earth ఇంజిన్ (GEE)ని ఉపయోగిస్తుంది. జావాస్క్రిప్ట్ స్క్రిప్టింగ్ భాషగా ఉపయోగించబడుతుంది.

var pointJSP = ee.Geometry.Point([86.465263, 20.168076]);
Map.centerObject(pointJSP, 14);
// Combine date variables for flexibility
var startDate = '2024-02-01';
var endDate = '2024-03-01';
// Function to add NDVI, NDWI, NDSI
var addIndices = function(image) {
  var ndvi = image.normalizedDifference(['NIR', 'RED']).rename('NDVI');
  var ndwi = image.normalizedDifference(['NIR', 'SWIR1']).rename('NDWI');
  var ndsi = image.normalizedDifference(['SWIR1', 'SWIR2']).rename('NDSI');
  return image.addBands(ndvi).addBands(ndwi).addBands(ndsi);
};
// Use fewer data points by filtering for cloud-free pixels only once
var sentinel = ee.ImageCollection('COPERNICUS/S2_SR')
  .filterBounds(pointJSP)
  .filterDate(startDate, endDate)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 30));

స్క్రిప్ట్ ఆలస్యాలను తగ్గించడానికి GEE కోసం సమర్థవంతమైన డేటా ప్రాసెసింగ్‌ని ఉపయోగించడం

ఈ పరిష్కారం సూచికల లెక్కలు మరియు థ్రెషోల్డ్‌లను కలపడం ద్వారా ఆప్టిమైజ్ చేయబడిన డేటా హ్యాండ్లింగ్‌ను అనుసంధానిస్తుంది. Google Earth ఇంజిన్ ప్రాసెసింగ్ కోసం JavaScript వర్తింపజేయబడింది.

var landsat8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
  .filterBounds(pointJSP)
  .filterDate(startDate, endDate)
  .filter(ee.Filter.lt('CLOUD_COVER', 30));
// Apply water mask for permanent water areas
var waterMask = ee.Image('JRC/GSW1_4/GlobalSurfaceWater').select('occurrence').gt(80).unmask();
// Add indices to Landsat 8 imagery
var landsatIndices = landsat8.map(addIndices);
var composite = landsatIndices.reduce(ee.Reducer.percentile([30])).clip(pointJSP).mask(waterMask.eq(0));
Map.addLayer(composite, {bands: ['RED', 'GREEN', 'BLUE'], min: 0, max: 3000}, 'Landsat Composite');
Map.addLayer(waterMask, {min: 0, max: 1, palette: ['white', 'blue']}, 'Water Mask', false);

రిమోట్ సెన్సింగ్ స్క్రిప్ట్‌ల సామర్థ్యాన్ని మెరుగుపరచడం

Google Earth ఇంజిన్ (GEE) స్క్రిప్ట్‌లతో పనిచేసేటప్పుడు ఒక ముఖ్య విషయం ఏమిటంటే, ఆపరేషన్‌లు సమర్ధవంతంగా నిర్వహించబడుతున్నాయని నిర్ధారించుకోవడం. పర్యావరణ విశ్లేషణలో సెంటినెల్ మరియు ల్యాండ్‌శాట్ వంటి పెద్ద డేటాసెట్‌ల ఉపయోగం సాధారణం అయితే, డేటా యొక్క పూర్తి పరిమాణం స్క్రిప్ట్ అమలును నెమ్మదిస్తుంది. పనితీరును మెరుగుపరచడానికి ఒక పద్ధతి ఏమిటంటే, అవసరమైన డేటా మాత్రమే ప్రాసెస్ చేయబడుతుందని నిర్ధారించుకోవడం. వంటి ఆదేశాలను ఉపయోగించడం ఫిల్టర్‌బౌండ్‌లు() మరియు ఫిల్టర్ తేదీ() డేటాసెట్ పరిమాణాన్ని తగ్గిస్తుంది, ఇది గణనలను క్రమబద్ధీకరించడంలో సహాయపడుతుంది. నిర్దిష్ట తేదీ పరిధులు మరియు భౌగోళిక ప్రాంతాలను ఎంచుకోవడం వలన అమలు సమయాన్ని గణనీయంగా తగ్గించవచ్చు.

GEE స్క్రిప్ట్ పనితీరును ప్రభావితం చేసే మరో అంశం డేటా ఎలా ప్రాసెస్ చేయబడుతుంది. స్క్రిప్ట్ ఉదాహరణ NDVI, NDWI మరియు NDSI వంటి ముఖ్యమైన సూచికలను లెక్కించడానికి ఒక ఫంక్షన్‌ను ఉపయోగిస్తుంది. ఈ సూచికలు చిత్ర సేకరణలకు బ్యాండ్‌లుగా జోడించబడ్డాయి, ఇది మరింత సమగ్ర విశ్లేషణ కోసం అనుమతిస్తుంది. అయితే, అటువంటి ఫంక్షన్‌లను ముందుగా ఫిల్టర్ చేయకుండా మొత్తం డేటాసెట్‌కి వర్తింపజేయడం ఒక సాధారణ తప్పు. అసంబద్ధమైన డేటాపై అనవసరమైన గణనలను నివారించడానికి ఫిల్టర్ చేసిన తర్వాత అటువంటి ఆపరేషన్‌లను వర్తింపజేయడం చాలా కీలకం.

విజువలైజేషన్ అనేది ఆప్టిమైజ్ చేయగల స్క్రిప్ట్ యొక్క మరొక అంశం. చాలా లేయర్‌లు లేదా సంక్లిష్ట విజువలైజేషన్‌లను జోడించడం వల్ల ప్రాసెసింగ్ సమయం తగ్గుతుంది. మిశ్రమాలను రెండర్ చేయడానికి స్క్రిప్ట్ ముందే నిర్వచించబడిన దృశ్యమాన పారామితులను ఉపయోగిస్తుంది, అయితే నిర్దిష్ట లేయర్‌లు స్పష్టంగా అవసరమైతే మినహా వాటిని నిలిపివేయడం ద్వారా పనితీరును మెరుగుపరచవచ్చు. స్క్రిప్ట్‌ని దాని కార్యాచరణను కొనసాగిస్తూ తేలికగా ఉంచడంలో ఇది సహాయపడుతుంది. ఉపయోగించి క్లిప్() కమాండ్‌లు అవసరమైన ప్రాంతం మాత్రమే అందించబడిందని నిర్ధారిస్తుంది, మొత్తం ప్రాసెసింగ్ భారాన్ని తగ్గిస్తుంది.

Google Earth ఇంజిన్ స్క్రిప్ట్‌లను ఆప్టిమైజ్ చేయడం గురించి తరచుగా అడిగే ప్రశ్నలు

  1. నేను నా GEE స్క్రిప్ట్‌ల పనితీరును ఎలా మెరుగుపరచగలను?
  2. వినియోగాన్ని ఆప్టిమైజ్ చేయండి filterDate(), filterBounds(), మరియు ప్రాసెస్ చేయడానికి ముందు మీ డేటాసెట్ పరిమాణాన్ని తగ్గించండి.
  3. నా GEE స్క్రిప్ట్ అమలు కావడానికి ఎందుకు ఎక్కువ సమయం పడుతుంది?
  4. పెద్ద డేటాసెట్‌లు మరియు సంక్లిష్ట గణనలు అమలును నెమ్మదిస్తాయి. ఉపయోగించండి reduce() మరియు clip() ప్రాసెసింగ్‌ని సంబంధిత ప్రాంతాలకు పరిమితం చేయడానికి.
  5. నేను GEEలో ప్రాసెస్ చేయబడిన చిత్రాల సంఖ్యను తగ్గించవచ్చా?
  6. అవును, దరఖాస్తు చేయడం ద్వారా filter() క్లౌడ్ కవరేజ్ కోసం మరియు filterDate() నిర్దిష్ట కాలాలపై దృష్టి పెట్టడానికి.
  7. నేను నా స్క్రిప్ట్‌లో సూచిక గణనలను ఎలా సులభతరం చేయగలను?
  8. వంటి ఫంక్షన్ ఉపయోగించండి addBands() ఒక దశలో బహుళ సూచికలను (ఉదా., NDVI, NDWI) జోడించడాన్ని క్రమబద్ధీకరించడానికి.
  9. అవసరమైన పొరలను మాత్రమే దృశ్యమానం చేయడం సాధ్యమేనా?
  10. అవును, అనవసరమైన లేయర్‌లను డిసేబుల్ చేయండి మరియు దీనితో సరళీకృత విజువలైజేషన్ పారామితులను ఉపయోగించండి Map.addLayer() మెరుగైన పనితీరు కోసం.

GEE స్క్రిప్ట్‌లను ఆప్టిమైజ్ చేయడంపై తుది ఆలోచనలు

Google Earth ఇంజిన్ స్క్రిప్ట్‌లను ఆప్టిమైజ్ చేయడంలో పెద్ద డేటాసెట్‌లను సమర్ధవంతంగా నిర్వహించడం, ముందుగా ఫిల్టర్‌లను వర్తింపజేయడం మరియు అనవసరమైన డేటా ఆపరేషన్‌లను తగ్గించడం వంటివి ఉంటాయి. ద్వారా ఫిల్టర్ చేయడం వంటి ముఖ్యమైన ప్రాంతాలపై దృష్టి సారిస్తోంది తేదీ మరియు స్థానం ప్రాసెసింగ్ సమయాన్ని గణనీయంగా తగ్గిస్తుంది.

వంటి విధులను చేర్చడం ద్వారా addBands మరియు అసంబద్ధమైన డేటాను తొలగించడానికి థ్రెషోల్డ్ మాస్క్‌లను ఉపయోగించడం, స్క్రిప్ట్ పనితీరును మరింత మెరుగుపరచవచ్చు. ఈ పద్ధతులు అమలును క్రమబద్ధీకరించగలవు, వేగవంతమైన ఫలితాలను అందిస్తాయి మరియు Google Earth ఇంజిన్ ప్లాట్‌ఫారమ్ యొక్క మెరుగైన వినియోగాన్ని అందిస్తాయి.

Google Earth ఇంజిన్ స్క్రిప్ట్‌లను ఆప్టిమైజ్ చేయడానికి మూలాలు మరియు సూచనలు
  1. ఈ కథనం అధికారిక Google Earth ఇంజిన్ డాక్యుమెంటేషన్ ఆధారంగా కంటెంట్‌ను ఉపయోగించి సృష్టించబడింది, ఇది స్క్రిప్ట్ ఆప్టిమైజేషన్ పద్ధతులపై అంతర్దృష్టులను అందిస్తుంది. Google Earth ఇంజిన్ మార్గదర్శకాలు
  2. సంక్లిష్ట స్క్రిప్ట్‌లలో పనితీరును మెరుగుపరచడానికి చర్చలు మరియు పరిష్కారాలను అందించడం ద్వారా GEE కమ్యూనిటీ ఫోరమ్ నుండి అదనపు సమాచారం సేకరించబడింది. Google Earth ఇంజిన్ సంఘం
  3. పెద్ద డేటాసెట్‌లను నిర్వహించడానికి ఉత్తమ పద్ధతులు క్రింది లింక్‌లో అందుబాటులో ఉన్న రిమోట్ సెన్సింగ్ సాహిత్యం మరియు ట్యుటోరియల్‌ల నుండి సూచించబడ్డాయి. NASA ఎర్త్ అబ్జర్వేటరీ