أكثر

هل تريد مجموعة فرعية من ملف tiff متعدد النطاقات باستخدام Python في ArcGIS for Desktop؟

هل تريد مجموعة فرعية من ملف tiff متعدد النطاقات باستخدام Python في ArcGIS for Desktop؟


لدي ملف نقطي متعدد النطاقات (1140) بتنسيق tiff أريد تجميعه جزئيًا. يمثل كل نطاق تنبؤًا بهطول الأمطار شهريًا (12 نطاقًا لكل عام) على مدار 95 عامًا (12 * 95 = 1140). أحتاج إلى تقسيم مجموعة البيانات النقطية إلى زيادات قدرها 10 سنوات (120 نطاقًا) ، لكن لا يمكنني معرفة كيفية القيام بذلك باستخدام ملف متعدد النطاقات. سيكون ملف الإخراج ببساطة مجموعة فرعية من مجموعة البيانات النقطية الأصلية.

هل أحتاج أولاً إلى الانفصال في مجموعات فردية؟ لقد وجدت طريقة لإنشاء ملف نقطي مركب متعدد النطاقات من نطاقات فردية (http://resources.arcgis.com/en/help/main/10.1/index.html#//00170000009p000000) ، ولكن لم أتمكن من العثور على طريقة لتقسيم ملف نقطي متعدد النطاقات في ArcGIS 10.1 for Desktop.


بشكل أساسي ، يمكنك معاملة كل فرقة على أنها خطوط نقطية منفصلة واستخدامها كمدخل لأداة Composite Band. إذا كنت تريد أتمتة العملية ، فيجب أن يكون هناك هيكل باسم العصابات ، مثلraster.tif rain_year_month.

إذا كان لديك مثل هذا الهيكل (على الأقل مع السنة المذكورة) ، فيمكنك استخدام هذا الرمز (لم يتم اختباره بالكامل):

arcpy.env.workspace = r'D:  raster.tif '# نعم ، يمكنك استخدام مجموعة البيانات النقطية كمساحة عمل لـ x في النطاق (1900 ، 1994): # نطاق السنوات التي تتوفر بها البيانات listras = [] السنة = "* {} *". format (x) # يحول القيمة الرقمية للسنة إلى سلسلة مع حرف بدل لـ ras في arcpy.ListRasters (السنة): # التكرار على النطاقات لسنة معينة listras.append (ras) # أضف نطاقات إلى a list arcpy.CompositeBands_management (listras، r'D:  folder  rain_ '+ str (x)) # استخدم هذه القائمة كمدخلات لأداة Composite Bands

إذا كنت تريد معالجة النطاقات حسب العقد ، فيجب عليك تعديل نطاق القيم التي يتم تكرارها ، على سبيل المثال:

لـ x في النطاق (190 ، 199):


OutRas = ExtractByMask (InRas1 ، InMsk1)

سيتم ترحيل السمات الإضافية من البيانات النقطية المدخلة ، إن وجدت ، كما هي إلى جدول البيانات النقطية للإخراج. بناءً على الخاصية التي يتم تسجيلها ، قد يلزم إعادة حساب بعض قيم السمات.

عندما يتم تحديد البيانات النقطية متعددة النطاقات على أنها مدخلات نقطية (in_raster في Python) ، سيتم استخدام جميع النطاقات.

لمعالجة مجموعة مختارة من النطاقات من خطوط نقطية متعددة النطاقات ، قم أولاً بإنشاء مجموعة بيانات نقطية جديدة تتكون من تلك النطاقات المعينة باستخدام أداة Composite Bands. ثم استخدم النتيجة كـ Input Raster (in_raster in Python).

تنسيق الإخراج الافتراضي هو قاعدة بيانات جغرافية نقطية. إذا تم تحديد مكدس شبكة Esri كتنسيق إخراج ، فلا يمكن أن يبدأ اسم المكدس برقم ، أو استخدام مسافات ، أو أن يكون طوله أكثر من تسعة أحرف.

عند تحديد خطوط نقطية متعددة النطاقات لقناع الإدخال النقطي ، سيتم استخدام النطاق الأول فقط في العملية.

عندما تكون البيانات النقطية للإدخال (in_raster in Python) وقناع البيانات النقطية للإدخال النقطي أو بيانات بيانات قناع الميزة (in_mask_data في Python) من نفس حجم الخلية ، ويتم محاذاة الخلايا ، سيتم استخدامها مباشرة في الأداة. لن يتم إعادة تشكيلها داخليًا أثناء تنفيذ الأداة.

إذا كان حجم الخلية مختلفًا ، فسيكون حجم خلية الإخراج هو الحد الأقصى للإدخالات ، وسيتم استخدام البيانات النقطية للإدخال (in_raster في Python) كنقطية المفاجئة داخليًا. إذا كان حجم الخلية متماثلًا ، ولكن الخلايا غير محاذية ، فسيتم استخدام البيانات النقطية للإدخال كنقطية سريعة داخليًا. ستؤدي أي من هاتين الحالتين إلى إعادة أخذ عينات داخلية قبل إجراء عملية الاستخراج.

يتوفر المزيد من المعلومات في موضوعات البيئة "حجم الخلية" و "Snap Raster".

إذا كان إدخال القناع ميزة ، فسيتم تحويله إلى نقطية داخليًا ، باستخدام حجم الخلية ومحاذاة الخلية من البيانات النقطية للإدخال.

إذا تم تحديد Mask في إعداد البيئة أثناء تنفيذ أداة Extract by Mask ، فسيكون للمخرج النقطي قيم خلية فقط للمنطقة التي تقع ضمن تقاطع قناع البيئة وبيانات قناع الإدخال.

راجع بيئات التحليل والمحلل المكاني للحصول على تفاصيل إضافية حول بيئات المعالجة الجغرافية التي تنطبق على هذه الأداة.


مناقشة

يمكن استخدام الكائن النقطي الذي تم إنشاؤه من البيانات الموجودة في تعبيرات Map Algebra اللاحقة وسيتضمن جميع الخصائص والأساليب النقطية المرتبطة.

أي أداة أو عامل تشغيل (راجع العمل مع عوامل التشغيل في Map Algebra) ينتج عنه ناتج نقطي على يسار علامة التساوي يُنشئ كائنًا نقطيًا. على سبيل المثال ، في التعبير التالي ، out_raster هو كائن نقطي.

عندما يتم إرجاع كائن نقطي من تعبير Map Algebra ، بشكل افتراضي ، يكون الكائن (المتغير ومجموعة البيانات المرتبطة به) مؤقتًا.

يمكن أن تصبح مجموعة البيانات المؤقتة المرتبطة بكائن نقطي دائمة عن طريق استدعاء طريقة حفظ الكائن النقطي.

إذا لم يتم جعل البيانات النقطية المشار إليها دائمة ، فسيتم حذف المتغير ومجموعة البيانات النقطية المرجعية عندما يخرج المتغير عن النطاق ، مثل عند اكتمال برنامج نصي مستقل أو إغلاق ArcGIS. عندما يشير كائن نقطي إلى بيانات دائمة على القرص ، لا يتم حذف البيانات.

توجد عوامل معينة في كل من Map Algebra و Python. إذا كنت تريد أن يعمل عامل التشغيل على البيانات النقطية (على عكس الحجمي) ، فيجب أن يتم تحويل البيانات النقطية المدخلة ككائن نقطي عن طريق استدعاء مُنشئ فئة Raster: Raster ("inRaster").

تتوفر بعض الخصائص المرتبطة بالكائن النقطي فقط إذا كانت مجموعة البيانات النقطية المشار إليها دائمة. عندما تكون مجموعة البيانات النقطية المشار إليها مؤقتة ، فسيتم تعيين قيمة بلا قيمة لهذه الخصائص. الخصائص المتأثرة هي indexPath و compressionType و format و hasRAT والاسم والمسار.

بمجرد أن تكون دائمة ، لا يمكن لمجموعة البيانات النقطية المشار إليها العودة إلى الحالة المؤقتة.

عندما يتم إنشاء كائن نقطي عن طريق توفير المسار إلى بيانات نقطية موجودة على القرص ، تكون خاصية readOnly الخاصة به هي True افتراضيًا ويمكن قراءة قيم الخلية الخاصة به باستخدام تدوين الفهرس [row، column].

عندما يتم إنشاء كائن نقطي عن طريق توفير كائن RasterInfo كمدخل ، فإنه سينشئ بيانات نقطية مؤقتة في دليل ArcGIS المؤقت. الخاصية readOnly لمثل هذا الكائن النقطي هي False بشكل افتراضي ويمكن تعديل قيم الخلية الخاصة به باستخدام تدوين الفهرس [row، column].

في حلقة RasterCellIterator ، تُستخدم الكائنات النقطية لقراءة البيانات وكتابتها على مستوى الخلية باستخدام تدوين الفهرس [الصف ، العمود].


طبقة الصور¶

تعرض طريقة attribute_table تعيينًا فئويًا لقيم البكسل (على سبيل المثال ، فئة أو مجموعة أو فئة أو عضوية).

وصف

يحدد قاعدة العرض لكيفية معالجة الصورة المطلوبة. يتم تحديث الاستجابة من خلال معلومات الطبقة التي تعكس معالجة مخصصة على النحو المحدد بواسطة قاعدة العرض. على سبيل المثال ، إذا احتوت renderingRule على دالة attributeTable ، فستشير الاستجابة إلى "hasRasterAttributeTable": صحيح إذا كانت renderingRule تحتوي على وظائف تغير عدد النطاقات ، فستشير الاستجابة إلى قيمة bandCount صحيحة.

يعرض عدد النطاقات لطبقة الصور

يتم حل وحدات البكسل المتداخلة في نفس الموقع عن طريق مزج كل وحدات البكسل المتداخلة

طبقة الصور هذه مع عملية فسيفساء مضبوطة على "مزج"

يوفر الوصول إلى الأدوات لتحديث وإضافة وإزالة ذاكرة التخزين المؤقت على ImageLayer

ImageryLayerCacheManager أو لا شيء

حساب الحجم ( الهندسة , base_type = لا شيء , mosaic_rule = لا شيء , Constant_z = بلا , pixel_size = لا شيء ) ¶

يقوم بحساب حجمي على خدمة ارتفاع. النتائج دائما بالمتر المربع (المنطقة) والمتر المكعب (الحجم). إذا لم يكن للخدمة إسناد مكاني عمودي وكانت الوحدة z ليست بالأمتار ، يحتاج المستخدم إلى تطبيق عامل تحويل عند تفسير النتائج.

متوفر في الإصدار 10.7+ فقط

وصف

مطلوب قائمة كائنات هندسة المضلع أو قائمة كائنات هندسة المغلف. هندسة تحدد الهندسة التي يتم من خلالها حساب الحجم. يمكن أن تكون الهندسة مغلفًا أو مضلعًا

عدد صحيح اختياري. 0 - ثابت z 1 - أفضل مستوى مناسب 2 - أدنى ارتفاع على المحيط 3 - أعلى ارتفاع في المحيط 4 - متوسط ​​الارتفاع على المحيط

القاموس الاختياري. تستخدم لتحديد DEMs مختلفة في مجموعة بيانات فسيفساء

عدد صحيح اختياري. معلمة لتحديد قيمة z ثابتة

سلسلة اختيارية أو قاموس. يحدد الدقة المكانية التي يتم بها حساب الحجم.

  • بنية القاموس: pixel_size =

  • بناء الجملة البسيط للنقطة: pixel_size = "& ltx & gt، & lty & gt"

قاموس يعرض قيم الحجم لكل هندسة في مصفوفة هندسة الإدخال

تمثل الخاصية Raster Catalog Item عنصر كتالوج نقطي واحد

وصف

العدد الصحيح المطلوب. المعرف هو "معرف نقطي".

تقوم طريقة colormap بإرجاع تمثيل ألوان RGB لقيم البكسل. يتم دعم هذه الطريقة إذا كانت خاصية hasColormap للطبقة صحيحة.

وصف

قاموس اختياري. يحدد قاعدة العرض لكيفية عرض الصورة المطلوبة. انظر كائنات الدالة النقطية لبناء جملة JSON والأمثلة. https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm

سلسلة اختيارية. يمكن استخدام هذه المعلمة لطلب خريطة ملونة لكل متغير لخدمة صورة تحتوي على معلومات متعددة الأبعاد. سيعود خريطة ألوان لخدمة الصورة بأكملها إذا لم يتم تحديدها. يمكن الاستعلام عن أسماء المتغيرات المؤهلة من خاصية multidimensional_info لكائن طبقة الصور. هذه المعلمة متاحة من 10.8.1

تُرجع عدد الأعمدة في طبقة الصور

compute_class_stats ( الأوصاف , mosaic_rule = 'defaultMosaicMethod' , rendering_rule = لا شيء , pixel_size = لا شيء ) ¶

حساب تواقيع إحصائيات الفئة (يستخدمها مصنف الاحتمالية القصوى)

وصف

القائمة المطلوبة. أوصاف الفصل هي مضلعات موقع التدريب وأوصاف فئاتها. بنية الهندسة هي نفس بنية كائنات JSON الهندسية التي يتم إرجاعها بواسطة ArcGIS REST API.

“id”: & ltid & gt، “name”: “& ltname & gt”، “geometry”: & ltgeometry & gt // polygon

"الهندسة": & ltgeometry & gt // polygon

سلسلة اختيارية. يحدد قاعدة الفسيفساء عند تعريف كيفية تجميع الصور الفردية. عندما لا يتم تحديد قاعدة فسيفساء ، سيتم استخدام قاعدة الفسيفساء الافتراضية لطبقة الصورة (كما هو معلن في المورد الجذر: defaultMosaicMethod ، mosaicOperator ، sortField ، sortValue). راجع تعليمات كائنات قاعدة الفسيفساء لمزيد من المعلومات: https://developers.arcgis.com/documentation/common-data-types/mosaic-rules.htm

قاموس اختياري. يحدد قاعدة العرض لكيفية عرض الصورة المطلوبة. انظر كائنات الدالة النقطية لبناء جملة JSON والأمثلة. https://developers.arcgis.com/documentation/common-data-types/raster-function-objects.htm

قائمة اختيارية أو قاموس. مستوى البكسل المستخدم (أو الدقة التي يتم النظر إليها). إذا لم يتم تحديد حجم البكسل ، فسيتم تعيين حجم البكسل افتراضيًا على الدقة الأساسية لمجموعة البيانات. بنية المعلمة pixel_size هي نفس بنية كائن النقطة التي يتم إرجاعها بواسطة ArcGIS REST API. بالإضافة إلى بنية القاموس ، يمكنك تحديد حجم البكسل باستخدام صيغة مفصولة بفواصل.

  • بنية القاموس: pixel_size =

  • بناء الجملة البسيط للنقطة: pixel_size = "& ltx & gt، & lty & gt"

  • pixel_size =

  • pixel_size = "0.18،0.18"

حساب_الرسوم البيانية ( الهندسة , mosaic_rule = لا شيء , rendering_rule = لا شيء , pixel_size = لا شيء , الوقت = لا شيء ) ¶

يتم تنفيذ عملية compute_histograms على طريقة طبقة الصور. يتم دعم هذه العملية بواسطة أي طبقة صور منشورة بمجموعات بيانات فسيفساء أو مجموعة بيانات نقطية. تحتوي نتيجة هذه العملية على كل من الإحصائيات والرسوم البيانية المحسوبة من المدى المحدد.

وصف

مطلوب مضلع أو مدى. هندسة تحدد الهندسة التي يتم من خلالها حساب المدرج التكراري. يمكن أن تكون الهندسة مغلفًا أو مضلعًا

سلسلة اختيارية. يحدد قاعدة الفسيفساء عند تعريف كيفية تجميع الصور الفردية. عندما لا يتم تحديد قاعدة فسيفساء ، سيتم استخدام قاعدة الفسيفساء الافتراضية لطبقة الصورة (كما هو معلن في المورد الجذر: defaultMosaicMethod ، mosaicOperator ، sortField ، sortValue). راجع تعليمات كائنات قاعدة الفسيفساء لمزيد من المعلومات: https://developers.arcgis.com/documentation/common-data-types/mosaic-rules.htm

يحدد قاعدة العرض لكيفية معالجة الصورة المطلوبة. يتم تحديث الاستجابة من خلال معلومات الطبقة التي تعكس معالجة مخصصة على النحو المحدد بواسطة قاعدة العرض. على سبيل المثال ، إذا احتوت renderingRule على دالة attributeTable ، فستشير الاستجابة إلى "hasRasterAttributeTable": صحيح إذا كانت renderingRule تحتوي على وظائف تغير عدد النطاقات ، فستشير الاستجابة إلى قيمة bandCount صحيحة.

قائمة اختيارية أو قاموس. مستوى البكسل المستخدم (أو الدقة التي يتم النظر إليها). إذا لم يتم تحديد حجم البكسل ، فسيتم تعيين حجم البكسل افتراضيًا على الدقة الأساسية لمجموعة البيانات. بنية المعلمة pixel_size هي نفس بنية كائن النقطة التي يتم إرجاعها بواسطة ArcGIS REST API. بالإضافة إلى بنية القاموس ، يمكنك تحديد حجم البكسل بسلسلة مفصولة بفاصلة.

بنية القاموس: pixel_size =

بناء الجملة البسيط للنقطة: pixel_size = "& ltx & gt، & lty & gt"

datetime.date الاختيارية أو datetime.datetime أو سلسلة الطابع الزمني. الوقت الحالي أو المدى الزمني للصورة المصدرة. الوقت الفوري المحدد على أنه datetime.date أو datetime.datetime أو الطابع الزمني بالمللي ثانية منذ بناء الجملة: time = & lttimeInstant & gt

المدى الزمني المحدد كقائمة [& ltstartTime & gt، & ltendTime & gt] بالنسبة للنطاقات الزمنية ، يمكن أن يكون أحد & ltstartTime & gt أو & ltendTime & gt بلا. ستمثل أي قيمة محددة لوقت البدء أو وقت الانتهاء اللانهاية لوقت البدء أو وقت الانتهاء على التوالي. بناء الجملة: time = [& ltstartTime & gt، & ltendTime & gt] محدد على أنه datetime.date أو datetime.datetime أو timestamp

باستخدام هندسة الإدخال المحددة ، فإنه يحسب موقع البكسل المقابل في العمود والصف في عنصر كتالوج البيانات النقطية المحدد. من المتطلبات الأساسية أن يحتوي عنصر الكتالوج النقطي على مورد icsToPixel صالح.

حساب_الحسابات_و_المخططات ( الهندسة , mosaic_rule = لا شيء , rendering_rule = لا شيء , pixel_size = لا شيء , الوقت = لا شيء ) ¶

تحتوي نتيجة هذه العملية على كل من الإحصائيات والرسوم البيانية المحسوبة من المدى المحدد.

وصف

مطلوب مضلع أو مدى. هندسة تحدد الهندسة التي يتم من خلالها حساب المدرج التكراري. يمكن أن تكون الهندسة مغلفًا أو مضلعًا

قاموس اختياري. يحدد قاعدة الفسيفساء عند تعريف كيفية تجميع الصور الفردية. عندما لا يتم تحديد قاعدة فسيفساء ، سيتم استخدام قاعدة الفسيفساء الافتراضية لطبقة الصورة (كما هو معلن في المورد الجذر: defaultMosaicMethod ، mosaicOperator ، sortField ، sortValue).

قاموس اختياري. يحدد قاعدة العرض لكيفية عرض الصورة المطلوبة.

سلسلة اختيارية أو ديكت. مستوى البكسل المستخدم (أو الدقة التي يتم النظر إليها). إذا لم يتم تحديد حجم البكسل ، فسيتم تعيين حجم البكسل افتراضيًا على الدقة الأساسية لمجموعة البيانات. سيتم استخدام البيانات النقطية بحجم البكسل المحدد في مجموعة بيانات الفسيفساء لحساب الرسم البياني.

بنية القاموس: pixel_size =

بناء الجملة البسيط للنقطة: pixel_size = "& ltx & gt، & lty & gt"

datetime.date الاختيارية أو datetime.datetime أو سلسلة الطابع الزمني. الوقت الحالي أو المدى الزمني للصورة المصدرة. الوقت الفوري المحدد على أنه datetime.date أو datetime.datetime أو الطابع الزمني بالمللي ثانية منذ بناء الجملة: time = & lttimeInstant & gt

المدى الزمني المحدد كقائمة [& ltstartTime & gt، & ltendTime & gt] بالنسبة للنطاقات الزمنية ، يمكن أن يكون أحد & ltstartTime & gt أو & ltendTime & gt بلا. ستمثل أي قيمة محددة لوقت البدء أو وقت الانتهاء اللانهاية لوقت البدء أو وقت الانتهاء على التوالي. بناء الجملة: time = [& ltstartTime & gt، & ltendTime & gt] محدد على أنه datetime.date أو datetime.datetime أو timestamp

تحتوي نتيجة هذه العملية على نقاط ربط يمكن استخدامها لمطابقة الصورة المصدر بالصورة المرجعية. يتم تكوين الصورة المرجعية بواسطة ناشر طبقة الصورة. لمزيد من المعلومات ، راجع أساسيات الإسناد الجغرافي لمجموعة البيانات النقطية.

وصف

العدد الصحيح المطلوب. معرف المصدر النقطية.

القاموس المطلوب. تحويل البيانات الجغرافية الذي يوفر ملاءمة تقريبية للصورة المصدر للصورة المرجعية. على سبيل المثال ، تحويل متعدد الحدود من الدرجة الأولى يناسب الصورة المصدر للموقع المتوقع.

رسم الرسم البياني ( show_attributes = خطأ , Graph_size = '14 .25، 15.25 ' ) ¶

يعرض تمثيلًا هيكليًا لسلسلة الوظائف وقيم إدخال البيانات النقطية. إذا تم تعيين show_attributes على True ، فإن الدالة draw_graph تعرض أيضًا سمات جميع الوظائف في سلسلة الوظائف ، والتي تمثل البيانات النقطية في مربع مستطيل أزرق ، والسمات في المربع المستطيل الأخضر ، وأسماء الوظائف النقطية باللون الأصفر.

وصف

منطقي اختياري. إذا كان صحيحًا ، فإن الرسم البياني المعروض يشتمل على جميع سمات الوظيفة وليس فقط اسم الوظيفة والمدخلات النقطية التي تم ضبطها على False افتراضيًا ، لعرض اسم الدالة النقطية ومدخلات البيانات النقطية فقط.

سلسلة اختيارية. أقصى عرض وارتفاع للرسم ، بالبوصة ، مفصولة بفاصلة. إذا تم إعطاء رقم واحد فقط ، فسيتم استخدامه لكل من العرض والارتفاع. إذا تم تعريفه وكان الرسم أكبر من الحجم المحدد ، فسيتم تصغير الرسم بشكل موحد بحيث يتناسب مع الحجم المحدد.

تصدير_صورة ( bbox = لا شيء , image_sr = لا شيء , bbox_sr = لا شيء , الحجم = لا شيء , الوقت = لا شيء , export_format = 'jpgpng' , pixel_type = لا شيء , no_data = لا شيء , no_data_interpretation = 'esriNoDataMatchAny' , الاستيفاء = لا شيء , ضغط = لا شيء , compression_quality = لا شيء , band_ids = لا شيء , mosaic_rule = لا شيء , rendering_rule = لا شيء , f = 'json' , save_folder = لا شيء , save_file = لا شيء , compression_tolerance = لا شيء , Adjust_aspect_ratio = لا شيء , lerc_version = لا شيء , slice_id = لا شيء ) ¶

يتم تنفيذ عملية export_image على طبقة الصور. نتيجة هذه العملية هي طريقة الصورة. توفر هذه الطريقة معلومات حول الصورة المصدرة ، مثل عنوان URL الخاص بها والمدى والعرض والارتفاع. بالإضافة إلى تنسيقات الاستجابة المعتادة لـ HTML و JSON ، يمكنك أيضًا طلب تنسيق الصورة أثناء إجراء هذه العملية. عند إجراء تصدير بتنسيق الصورة ، يستجيب الخادم عن طريق دفق بايت الصورة مباشرةً إلى العميل. باستخدام هذا الأسلوب ، لا تحصل على أي معلومات مرتبطة بالصورة المصدرة بخلاف الصورة نفسها.

وصف

ديكت أو سلسلة اختيارية. المدى (المربع المحيط) للصورة المصدرة. ما لم يتم تحديد المعلمة bbox_sr ، يُفترض أن يكون bbox في الإسناد المكاني لطبقة الصور.

يجب تحديد bbox كعنصر arcgis.geometry.Envelope ، وهو تمثيل json أو كقائمة أو سلسلة بهذا التنسيق: "& ltxmin & gt، & ltymin & gt، & ltxmax & gt، & ltymax & gt" إذا تم حذفه ، فسيتم استخدام مدى طبقة الصور

سلسلة اختيارية ، SpatialReference. الإسناد المكاني للصورة المصدرة. يمكن تحديد المرجع المكاني إما كمعرف معروف أو تمثيل json أو ككائن arcgis.geometry.SpatialReference. إذا لم يتم تحديد image_sr ، فسيتم تصدير الصورة في الإسناد المكاني لطبقة الصور.

سلسلة اختيارية ، SpatialReference. الإسناد المكاني للببوكس. يمكن تحديد المرجع المكاني إما كمعرف معروف أو تمثيل json أو ككائن arcgis.geometry.SpatialReference. إذا لم يتم تحديد image_sr ، يُفترض أن يكون bbox في الإسناد المكاني لطبقة الصور.

قائمة اختيارية. حجم (العرض * الارتفاع) للصورة المصدرة بالبكسل. إذا لم يتم تحديد الحجم ، فسيتم تصدير صورة بحجم افتراضي 1200 * 450. التركيب: قائمة [العرض ، الارتفاع]

datetime.date الاختيارية أو datetime.datetime أو سلسلة الطابع الزمني. الوقت الحالي أو المدى الزمني للصورة المصدرة. الوقت الفوري المحدد على أنه datetime.date أو datetime.datetime أو الطابع الزمني بالمللي ثانية منذ بناء الجملة: time = & lttimeInstant & gt

المدى الزمني المحدد كقائمة [& ltstartTime & gt، & ltendTime & gt] بالنسبة للنطاقات الزمنية ، يمكن أن يكون أحد & ltstartTime & gt أو & ltendTime & gt بلا. ستمثل أي قيمة محددة لوقت البدء أو وقت الانتهاء اللانهاية لوقت البدء أو وقت الانتهاء على التوالي. بناء الجملة: time = [& ltstartTime & gt، & ltendTime & gt] محدد على أنه datetime.date أو datetime.datetime أو timestamp

سلسلة اختيارية. تنسيق الصورة المصدرة. التنسيق الافتراضي هو jpgpng. يقوم تنسيق jpgpng بإرجاع ملف JPG إذا لم تكن هناك وحدات بكسل شفافة في النطاق المطلوب وإلا فإنه يقوم بإرجاع PNG (png32).

سلسلة اختيارية. نوع البكسل ، المعروف أيضًا باسم نوع البيانات ، يتعلق بنوع القيم المخزنة في البيانات النقطية ، مثل عدد صحيح بعلامة أو عدد صحيح بدون إشارة أو نقطة عائمة. الأعداد الصحيحة هي أعداد صحيحة ، في حين أن النقاط العائمة بها كسور عشرية.

تعويم اختياري. لا تمثل قيمة البكسل أي معلومات.

سلسلة اختيارية. تفسير إعداد no_data. الافتراضي هو NoDataMatchAny عندما يكون no_data رقمًا ، و NoDataMatchAll عندما تكون no_data سلسلة مفصولة بفاصلة: NoDataMatchAny ، NoDataMatchAll.

سلسلة اختيارية. عملية إعادة التشكيل لاستقراء قيم البكسل أثناء تحويل مجموعة البيانات النقطية عند خضوعها للالتواء أو عند تغيير مساحة الإحداثيات. واحد من: RSP_BilinearInterpolation ، RSP_CubicConvolution ، RSP_Majority ، RSP_NearestNeighbor

سلسلة اختيارية. يتحكم في كيفية ضغط الصورة عند التصدير إلى تنسيق TIFF: لا شيء ، JPEG ، LZ77. لا يتحكم في ضغط التنسيقات الأخرى.

عدد صحيح اختياري. يتحكم في مقدار الخسارة التي ستتعرض لها الصورة بواسطة خوارزمية الضغط. تتراوح نطاقات القيمة الصالحة لجودة الضغط من 0 إلى 100.

قائمة اختيارية. إذا كان هناك نطاقات متعددة ، يمكنك تحديد نطاق واحد للتصدير ، أو يمكنك تغيير مجموعة النطاق (أحمر ، أخضر ، أزرق) عن طريق تحديد رقم النطاق. رقم النطاق هو 0 على أساس. محددة كقائمة ints ، على سبيل المثال [2،1،0]

ديكت اختياري. يحدد قاعدة الفسيفساء عند تعريف كيفية تجميع الصور الفردية. عندما لا يتم تحديد قاعدة فسيفساء ، سيتم استخدام قاعدة الفسيفساء الافتراضية لطبقة الصورة (كما هو معلن في المورد الجذر: defaultMosaicMethod ، mosaicOperator ، sortField ، sortValue).

ديكت اختياري. يحدد قاعدة العرض لكيفية عرض الصورة المطلوبة.

سلسلة اختيارية. تنسيق الاستجابة. القيم الافتراضية هي json: json ، image ، kmz إذا تم اختيار تنسيق الصورة ، يتم إرجاع بايتات الصورة المصدرة ما لم يتم أيضًا تمرير معلمات save_folder و save_file ، وفي هذه الحالة تتم كتابة الصورة إلى الملف المحدد

سلسلة اختيارية. المجلد الذي يتم فيه حفظ الصورة المصدرة عندما تكون f = image

سلسلة اختيارية. الملف الذي يتم فيه حفظ الصورة المصدرة عندما تكون f = image

تعويم اختياري. يتحكم في تحمل خوارزمية ضغط lerc. يحدد التفاوت الحد الأقصى للخطأ المحتمل لقيم البكسل في الصورة المضغوطة. مثال: compression_tolerance = 0.5 هو عديم الفقد للصور 8 و 16 بت ، لكن لديه دقة + -0.5 لبيانات النقطة العائمة. يعمل تفاوت الضغط مع تنسيق LERC فقط.

منطقي اختياري. يشير إلى ما إذا كان سيتم ضبط نسبة العرض إلى الارتفاع أم لا. بشكل افتراضي ، يكون Adjust_aspect_ratio صحيحًا ، وهذا يعني أنه سيتم تعديل bbox الفعلي لمطابقة نسبة العرض / الارتفاع لمعلمة الحجم ، وتحتوي صورة الاستجابة على وحدات بكسل مربعة.

عدد صحيح اختياري. إصدار تنسيق Lerc إذا قام المستخدم بتعيين التنسيق على أنه lerc. القيم: 1 أو 2 إذا تم تحديد إصدار ، يقوم الخادم بإرجاع الإصدار المطابق ، أو بخلاف ذلك أعلى إصدار متاح.

عدد صحيح اختياري. يصدر الشريحة المحددة من البيانات النقطية متعددة الأبعاد. للحصول على فهرس الشرائح ، استخدم طريقة الشرائح على كائن ImageryLayer.

مجال الاهتمام. تُستخدم لعرض طبقة الصور عند الاستعلام عنها

مصنف بواسطة ( حيث = لا شيء , الهندسة = لا شيء , الوقت = لا شيء , lock_rasters = صحيح ) ¶

يقوم بتصفية الطبقة من حيث شرط ، والهندسة ، والمرشحات الزمنية

وصف

سلسلة اختيارية. عبارة أين في هذه الطبقة لتصفية طبقة الصور من خلال جملة التحديد sql. أي SQL قانوني حيث شرط يعمل على الحقول في البيانات النقطية

مرشحات arcgis.geometry.filters الاختيارية. لتصفية النتائج بعلاقة مكانية مع هندسة أخرى

التاريخ والوقت الاختياري أو التاريخ أو الطابع الزمني. مرشح مؤقت لهذه الطبقة لتصفية طبقة الصور حسب الوقت باستخدام الوقت الفوري المحدد أو المدى الزمني.

المدى الزمني المحدد كقائمة [& ltstartTime & gt، & ltendTime & gt] بالنسبة للنطاقات الزمنية ، يمكن أن يكون أحد & ltstartTime & gt أو & ltendTime & gt بلا. ستمثل أي قيمة محددة لوقت البدء أو وقت الانتهاء اللانهاية لوقت البدء أو وقت الانتهاء على التوالي. بناء الجملة: time_filter = [& ltstartTime & gt، & ltendTime & gt] محدد على أنه datetime.date أو datetime.datetime أو timestamp بالملي ثانية

منطقي اختياري. إذا كان صحيحًا ، فسيتم تطبيق قاعدة فسيفساء LockRaster على الطبقة ، ما لم يتم تجاوزها

ImageryLayer مع الصور المفلترة التي تلبي معايير التصفية

معرّفات الكائنات الخاصة بالنقطيات التي تمت تصفيتها في طبقة الصور هذه ، من خلال تطبيق عبارة where والمرشحات المكانية والزمانية. إذا لم يتم تصفية البيانات النقطية ، يتم إرجاع بلا. إذا تم تصفية كافة البيانات النقطية ، يتم إرجاع قائمة فارغة

يتم حل وحدات البكسل المتداخلة في نفس الموقع عن طريق اختيار الصورة الأولى: إرجاع: طبقة الصور هذه مع عملية الفسيفساء التي تم ضبطها على "الأولى"

طريقة الفصل fromitem ( العنصر ) ¶

تُرجع الطبقة في الفهرس المحدد من عنصر طبقة.

وصف

السلسلة المطلوبة. معرف عنصر يمثل طبقة.

اختياري int. فهرس الطبقة بين طبقات العنصر

الطبقة في الفهرس المحدد.

get_download_info ( النقطية , مضلع = لا شيء , المدى = لا شيء , out_format = لا شيء ) ¶

تقوم عملية Download Rasters بإرجاع المعلومات (معرف الملف) التي يمكن استخدامها لتنزيل الملفات النقطية الأولية المرتبطة بمجموعة محددة من البيانات النقطية في كتالوج البيانات النقطية.

وصف

السلسلة المطلوبة. قائمة مفصولة بفواصل لمعرفات البيانات النقطية التي سيتم تنزيل ملفاتها.

مضلع اختياري ، الهندسة المطلوب تطبيقها للقطع

سلسلة اختيارية. الهندسة المراد تطبيقها على مثال القطع: "-104،35.6، -94.32،41"

سلسلة اختيارية. عاد تنسيق البيانات النقطية. إذا لم يتم تحديدها ، فستكون البيانات النقطية بتنسيقها الأصلي. يتم تطبيق التنسيق عندما يتم تحديد هندسة المقطع أيضًا ، ولن يتم احترام التنسيق إلا عند قص البيانات النقطية.

لفرض عملية Download Rasters لتحويل الصور المصدر إلى تنسيق مختلف ، قم بإلحاق: التحويل بعد سلسلة التنسيق. تتضمن التنسيقات الصالحة: TIFF و Imagine Image و JPEG و BIL و BSQ و BIP و ENVI و JP2 و GIF و BMP و PNG. مثال: out_format = "TIFF"

يمكن لـ get_histograms () إرجاع المدرج التكراري لكل متغير إذا تم استخدامه مع كائن ImageryLayer متعدد الأبعاد من خلال تحديد قيمة للمعامل المتغير.

إذا لم يتم العثور على المدرج التكراري ، يتم إرجاع بلا. في هذه الحالة ، قم باستدعاء compute_histograms (). (get_histograms () هي نسخة محسنة من خاصية المدرج التكراري في فئة ImageryLayer مع معلمة متغيرة إضافية.)

get_raster_file ( download_info , out_folder = لا شيء ) ¶

تمثل طريقة Raster File ملف نقطي خام واحد. يتم الحصول على download_info باستخدام عملية get_download_info.

وصف

القاموس المطلوب. هذا مشتق من get_downlad_info ().

سلسلة اختيارية. المسار إلى موقع حفظ الملف. إذا كانت القيمة بلا ، فسيتم استخدام الدليل المؤقت لنظام التشغيل.

get_samples ( الهندسة , geometry_type = لا شيء , sample_distance = لا شيء , sample_count = لا شيء , mosaic_rule = لا شيء , pixel_size = لا شيء , return_first_value_only = لا شيء , الاستيفاء = لا شيء , out_fields = لا شيء ) ¶

يتم دعم عملية get_samples بواسطة كل من طبقات صور مجموعة البيانات الفسيفسائية ومجموعة البيانات النقطية. تتضمن نتيجة هذه العملية مواقع نقاط العينة وقيم البكسل والاستبانة المكانية المقابلة لبيانات المصدر لهندسة معينة. عندما تكون هندسة الإدخال عبارة عن شكل متعدد الخطوط أو مغلف أو مضلع ، فإن أخذ العينات يعتمد على sample_count أو sample_distance عندما تكون هندسة الإدخال عبارة عن نقطة أو نقاط متعددة ، يتم استخدام النقطة أو النقاط مباشرة. يعتمد عدد مواقع العينة في الاستجابة على معلمة sample_distance أو sample_count ولا يمكن أن يتجاوز حد طبقة الصورة (الافتراضي هو 1000 ، وهو حد تقريبي).

وصف

هندسة تحدد الموقع (المواقع) التي سيتم أخذ عينات منها. بنية الهندسة هي نفس بنية كائنات JSON الهندسية التي يتم إرجاعها بواسطة ArcGIS REST API. أنواع الهندسة القابلة للتطبيق هي النقطة ، ومتعددة النقاط ، والمتعددة الخطوط ، والمضلع ، والمغلف. عند حذف الإسناد المكاني في هندسة الإدخال ، سيتم افتراض أنه المرجع المكاني لطبقة الصورة.

سلسلة اختيارية. نوع الهندسة المحدد بواسطة معلمة الهندسة. يمكن أن يكون نوع الهندسة نقطة أو متعدد النقاط أو متعدد الخطوط أو مضلع أو مغلف.

تعويم اختياري. فاصل المسافة المستخدم لأخذ عينات من النقاط من المسار المتوفر. الوحدة هي نفس هندسة الإدخال. إذا لم يتم توفير sample_count أو sample_distance ، فلا يمكن إجراء تكثيف للمسارات (خطوط متعددة) ، ويتم استخدام عينة افتراضية (100) للمناطق (المضلعات أو الأظرف).

عدد صحيح اختياري. العدد التقريبي لمواقع العينات من المسار المتوفر. إذا لم يتم توفير sample_count أو sample_distance ، فلا يمكن إجراء تكثيف للمسارات (خطوط متعددة) ، ويتم استخدام عينة افتراضية (100) للمناطق (المضلعات أو الأظرف).

قاموس اختياري. يحدد قاعدة الفسيفساء عند تعريف كيفية تجميع الصور الفردية. عندما لا يتم تحديد قاعدة فسيفساء ، سيتم استخدام قاعدة الفسيفساء الافتراضية لطبقة الصورة (كما هو معلن في المورد الجذر: defaultMosaicMethod ، mosaicOperator ، sortField ، sortValue).

سلسلة اختيارية أو ديكت. مستوى البكسل المستخدم (أو الدقة التي يتم النظر إليها). إذا لم يتم تحديد حجم البكسل ، فسيتم تعيين حجم البكسل افتراضيًا على الدقة الأساسية لمجموعة البيانات. سيتم استخدام البيانات النقطية بحجم البكسل المحدد في مجموعة بيانات الفسيفساء لحساب الرسم البياني.

بنية القاموس: pixel_size =

بناء الجملة البسيط للنقطة: pixel_size = "& ltx & gt، & lty & gt"

منطقي اختياري. يشير إلى ما إذا كان سيتم إرجاع كل القيم في نقطة ما ، أو إرجاع القيمة الأولى غير NoData بناءً على قاعدة الفسيفساء الحالية. الافتراضي هو الصحيح.

سلسلة اختيارية. طريقة إعادة التشكيل. الافتراضي هو أقرب جار. القيم: RSP_BilinearInterpolation ، RSP_CubicConvolution ،

سلسلة اختيارية. قائمة الحقول التي سيتم تضمينها في الرد. هذه القائمة عبارة عن قائمة بأسماء الحقول مفصولة بفواصل. يمكنك أيضًا تحديد حرف البدل (*) كقيمة لهذه المعلمة لتضمين جميع قيم الحقل في النتائج.

إرجاع ارتفاع خدمة الصورة

لعرض الرسوم البيانية لكل نطاق في طبقة الصور كقائمة من القواميس المقابلة لكل نطاق. إذا لم يتم العثور على مدرج تكراري ، يتم إرجاع بلا. في هذه الحالة ، قم باستدعاء compute_histograms ()


تحويل ملف GeoTiff 16 بت كملف JPEG 8 بت باستخدام بيثون

أحاول تحويل ملف RGB GeoTIFF 16 بت 3 نطاقات إلى ملف JPEG 8 بت 3 نطاقات. يبدو أن مكتبة gdal يجب أن تعمل بشكل جيد لهذا الغرض. سؤالي هو كيف يمكنني تحديد التحويل إلى إخراج 8 بت في Python gdal API ، وكيف يمكنني قياس القيم في هذا التحويل؟ أيضًا ، كيف يمكنني التحقق لمعرفة ما إذا كان الإخراج 8 بت أم 16 بت؟

يجب أن تخدم الوظيفة gdal.Translate () الغرض. ومع ذلك ، فإن المثال الوحيد الذي وجدته والذي سيعيد قياس القيم إلى 8 بت يتضمن واجهة C. يقدم المنشوران أدناه أمثلة على ذلك ، لكنهما مرة أخرى لا يتناسبان مع هدفي لأنهما لا يستخدمان واجهة Python.

كود الثعبان الذي توصلت إليه هو:

سيعمل هذا ، لكنني لا أعتقد أن الإخراج مخفي إلى 8 بت أو أنه يتم إعادة قياس القيم. Does anyone know how to apply those specific settings?

Note that this post below is very similar, but uses the PIL package. However the problem is that apparently PIL has trouble ingesting 16 bit images. When I tried this code I got errors about reading the data. Hence, I could not use this solution.


6 Answers 6

It has limited functionality, especially when it comes to writing back to disk non RGB images, but Christoph Gohlke's tifffile module reads in 3 channel 16-bit TIFFs with no problems, I just tested it:

And Photoshop reads without complaining what I get from doing:

In the mean time I managed to also solve the problem using cv2.imread in OpenCV.

By default cv2.imread will convert a 16 bit, three channel image in a.tif to 8 bit as shown in the question.

cv2.imread accepts a flag after the filename ( cv2.imread(filename[, flags]) ) which specifies the colour type of the loaded image cf. the documentation:

  1. >0 returns a 3 channel colour image. This results in conversion to 8 bit as shown above.
  2. 0 returns a greyscale image. Also results in conversion to 8 bit.
  3. <0 returns the image as is. هذه will return a 16 bit image.

So the following will read the image without conversion:

Note that OpenCV returns the R, G and B channels in reverse order so im[. 0] is the B channel, im[. 1] the G channel and im[. 2] is the R channel.

I have also found that cv2.imwrite can write 16 bit, three channel TIFF files.

Checking the bit depth with ImageMagick:

I found an additional alternative to the two methods above.

The scikit-image package can also read 16 bit, three channel TIFF files using both tifffile.py and FreeImage and specifying them as the plugin to be used.

While reading using tifffile.py is probably done more simply in the manner shown by @Jaime, I thought I would show how it is used along with scikit-image in case anyone wants to do it in this manner.

For anyone using Ubuntu, FreeImage is available as libfreeimage3 using apt .


Métodos

The name of the variable to which the dimension will be added. Only multidimensional rasters in Cloud Raster Format ( .crf ) are supported.

The name of the new dimension.

The value to assign to the new dimension.

Only one value can be added, as more values (for example, multiple depths) would require new slices to be added to the dataset. To add more than one dimension value along with the new slices, use the addDimension method, then use the Merge function to merge existing data with the raster object.

A Python dictionary that contains attribute information to be added to the new dimension, such as description or unit. For example, to add a unit attribute, use <"unit": "meters">.

(El valor predeterminado es None)

The list of variable names and the corresponding dimensions of the multidimensional raster.

The multidimensional raster containing the slices to be appended.

This raster must have the same variables, with the same dimension names, as the target raster. The cell sizes, extents, and spatial reference systems must also match.

The slices in this raster must be for dimension values that follow the dimension values of the slices in the target raster.

If a variable has two dimensions, slices will be appended along one dimension. The other dimension must have the same number of slices as the dimension in the target raster. For example, if a salinity variable contains slices over time and depth dimensions, time slices can be appended to another salinity multidimensional raster but only if the same number of depth slices exist in both rasters.

A string containing the variable names and the associated dimensions in the multidimensional raster. For example, if the resulting raster has 10 time slices with precipitation data, it will return 'prcp(StdTime=10)' .

The width of the output image in pixels. If a value is not specified, but the height is provided, the aspect ratio of the original raster will be maintained. If neither width nor height are specified, the width of the original raster dataset will be used.

(El valor predeterminado es None)

The height of the output image in pixels. If a value is not specified, but the width is provided, the aspect ratio of the original raster will be maintained. If neither width nor height are specified, the height of the original raster dataset will be used.

(El valor predeterminado es None)

The image format of the exported data. The supported formats include JPG, PNG, and PNG32.

(El valor predeterminado es PNG32)

The extent or bounding box of the exported image. If a value is not specified, the extent of the raster dataset is used.

(El valor predeterminado es None)

The spatial reference of the exported image. If a value is not specified, the spatial reference of the raster dataset is used.

(El valor predeterminado es None)

Specifies how the input raster data should be mosaicked. This is applicable when the input raster dataset is a mosaic dataset. For information on how to format the mosaic rule, see Mosaic rule objects.

(El valor predeterminado es None)

The exported image as an IPython Image object.

The variable name of the multidimensional raster dataset. If a variable is not specified and the raster is multidimensional, the color map of the first variable will be returned.

A Python dictionary containing the color map of the raster or variable. Pixel values are listed first, followed by the corresponding color map values in HEX color codes—for example, <'type': 'RasterColormap', 'values': [10, 20, 30], 'colors': ['#66FF33', '#0033CC', '#FF00FF']>.

The variable name of the multidimensional raster dataset.

The dimension name of the multidimensional raster dataset.

The attribute information of the dimension, for example, the minimum and maximum dimension values, the time step interval, and the interval units.

The variable name of the multidimensional raster dataset.

The dimension names associated with the variable.

The variable name of the multidimensional raster dataset.

The dimension name of the multidimensional raster dataset.

The dimension values of the variable.

The variable name of the multidimensional raster dataset. If a variable is not specified and the raster is multidimensional, the histogram of the first variable will be returned.

The property name of the raster dataset.

The value of the property.

The index number or names of the bands to return as Raster objects. If not specified, all bands will be extracted.

(El valor predeterminado es None)

The Raster object for each band specified.

The variable name of the multidimensional raster dataset. If a variable is not specified and the raster is multidimensional, the statistics of the first variable will be returned.

The statistics of the raster or variable.

The variable name of the multidimensional raster dataset.

The attribute information of the variable.

The coordinates relative to the origin_coordinate from which to extract the processing block to convert to an array. This should be formatted as a tuple with two values indicating the direction to move in the x- and y-direction, respectively. For example, a value of (2,0) indicates that the array should be extracted starting at the pixel that is two pixels away, in the x-direction, from the origin_coordinate .

If no value is specified, (0,0) is used.

(El valor predeterminado es None)

The point of origin within the Raster object from which to extract the processing block to convert to an array. The coordinates must be in the units of the raster.

If no value is specified, the origin of the raster will be used.

(El valor predeterminado es None)

The number of columns from the upper_left_corner in the Raster object to convert to the NumPy array.

If no value is specified, the number of columns of the raster will be used.

(El valor predeterminado es None)

The number of rows from the upper_left_corner in the Raster object to convert to the NumPy array.

If no value is specified, the number of rows of the raster will be used.

(El valor predeterminado es None)

The pixel value to assign in the NumPy array for those pixels labeled as NoData in the Raster object.

If no value is specified, the NoData value of the raster will be used.

(El valor predeterminado es None)

The cell size to use in the NumPy array. This should be formatted as a tuple with two values indicating the cell size in the x- and y-direction, respectively, and units should match those used by the raster. For example, a value of (2, 1) indicates the output cell size should be 2 units in the x-direction and 1 unit in the y-direction. If the cell size is different from the data source, the cell values are resampled using bilinear interpolation.

If no value is specified, the cell size of the raster will be used.

(El valor predeterminado es None)

If the raster is a single- or multiband raster, the dimensions of the array will be rows, columns, and number of bands.

If the raster is a multidimensional raster, the dimensions of the array will be number of slices, rows, columns, and number of bands.

The variable name or a list of variable names to be removed from the multidimensional raster dataset.

The name or the index of the band to be renamed. The band indexing begins at 1. This argument can be a string or integer value.

The Raster object with renamed bands.

The current name of the variable in a multidimensional raster dataset.

The new name of the variable in a multidimensional raster dataset.

The name to assign to the raster dataset on disk.

This method supports persisting a multidimensional raster dataset as Cloud Raster Format (CRF).

The color map to apply to the raster. This can be a string indicating the name of the color map or color ramp to use, for example, NDVI or Yellow To Red , respectively. This can also be a Python dictionary with a custom color map or color ramp object—for example, a custom color map <'values': [0, 1, 2, 3, 4, 5], 'colors': ['#000000', '#DCFFDF', '#B8FFBE', '#85FF90', '#50FF60','#00AB10']>or a custom color ramp <"type": "algorithmic", "fromColor": [115, 76, 0, 255],"toColor": [255, 25, 86, 255], "algorithm": "esriHSVAlgorithm">.

The variable name of the multidimensional raster dataset. If a variable is not specified and the raster is multidimensional, the color map of the first variable will be set.

A list of Python dictionaries containing histogram information to be set—for example, [<'size': 5, 'min': 19.0, 'max': 42.0, 'counts': [275, 17, 3065, 4, 22]>] .

If the raster is multiband, the histogram for each band will be set with each dictionary in the list. The first band will use the histogram in the first dictionary. The second band will use the histogram in the second dictionary, and so on.

  • size — The number of bins in the histogram
  • min — The minimum pixel value
  • max — The maximum pixel value
  • counts — A list containing the number of pixels in each bin, in the order of bins

The variable name of the multidimensional raster dataset. If a variable is not specified and the raster is multidimensional, the histogram will be set for the first variable.


Arithmetic¶

The Arithmetic function performs an arithmetic operation between two rasters or a raster and a scalar, and vice versa.

raster1 – the first raster- imagery layers filtered by where clause, spatial and temporal filters

raster2 – the 2nd raster - imagery layers filtered by where clause, spatial and temporal filters

extent_type – one of “FirstOf”, “IntersectionOf” “UnionOf”, “LastOf”

cellsize_type – one of “FirstOf”, “MinOf”, “MaxOf “MeanOf”, “LastOf”

operation_type – int 1 = Plus, 2 = Minus, 3 = Multiply, 4=Divide, 5=Power, 6=Mode

the output raster with this function applied to it

The arguments for this function are as follows:

rasters – array of rasters. If a scalar is needed for the operation, the scalar can be a double or string

extent_type – one of “FirstOf”, “IntersectionOf”, “UnionOf”, “LastOf”

cellsize_type – one of “FirstOf”, “MinOf”, “MaxOf, “MeanOf”, “LastOf”

astype – output pixel type


Spatial Data and GIS Lessons

Most scientific data are geographically located and thus have a spatial component. GIS skills are thus important for working with scientific data. R and Python are free and open scientific programming languages that you can use to work with GIS data and do tasks that you may already do with tools like ArcGIS or QGIS.

In the lessons below, learn how to open, manipulate and plot spatial data in the R programming language. Also learn to use tools like Leaflet and ggplot to create custom and interactive maps. Finally learn how to use remote sensing data like Landsat, NAIP and MODIS in R . Come back later this spring for lessons in Python!


Concluding Remarks

In this module, I demonstrated the use of GeoPandas, Rasterio, and Matplotlib for reading, writing, and visualizing geospatial data using Python. I then provides some examples of spatial analysis operations that can be performed using WhiteboxTools. If you have specific interests or needs, I think you will find that my examples, the provided library/module documenation, and online help and forums will be adequate to get you started.

Lastly, there is still active development of geopspatial libraries/modules for use in Python. So, you may find new tools to apply to your work. With an understanding of basic Python, GIS, and data science, you should be able to use examples and documentation to apply techniques to your own analyses.