FeatureView
یک نمایش تسریع شده از یک FeatureCollection
فقط برای مشاهده است. برخلاف FeatureCollection
که کاشی های نقشه شطرنجی آن به سرعت تولید می شوند، کاشی های شطرنجی FeatureView
برای ارائه رندر سریع از پیش محاسبه شده اند. دارایی های FeatureView
علاوه بر رندر سریعتر، نازک شدن ویژگی وابسته به سطح زوم را پیاده سازی می کنند. اثر این است که مجموعه دادههای متراکم ممکن است در صورت کوچکنمایی ناقص به نظر برسند (ویژگیهای کوچک ترسیم نمیشوند)، اما با بزرگنمایی بیشتر دادهها قابل مشاهده میشوند، که میتواند زیباییشناسی نقشه را در سطوح زوم پایینتر بهبود بخشد. رفتار نازک شدن یک مجموعه داده توسط چندین پارامتر بهینهسازی کنترل میشود که در حین صدور یک FeatureCollection
به یک دارایی FeatureView
تنظیم میشوند.
بهعنوان یک دارایی فقط برای مشاهده، اشیاء FeatureView
نمیتوانند در محاسبات یا عبارات گنجانده شوند، اما میتوانند در ویرایشگر کد جاوا اسکریپت و برنامههای Earth Engine به عنوان یک FeatureViewLayer
تجسم و بازرسی شوند. آنها همچنین می توانند در برنامه های Google Maps API ادغام شوند.
ایجاد FeatureView
ایجاد FeatureView
شامل تهیه FeatureCollection
با داده های شما، فراخوانی تابع Export.table.toFeatureView
و شروع کار صادرات است. مثال زیر صادرات نماهای مجموعه داده های چند ضلعی WDPA را نشان می دهد. در برنامه خود، از هر مجموعه داده FeatureCollection
که در کاتالوگ داده موتور زمین بایگانی شده است استفاده کنید یا مجموعه خود را با آپلود یک مجموعه داده برداری به عنوان دارایی Earth Engine ایجاد کنید.
یک FeatureView
می توان با استفاده از چندین پارامتر در تابع Export.table.toFeatureView
سفارشی کرد.
-
maxFeaturesPerTile
- حداکثر تعداد ویژگی های نمایش داده شده در کاشی نقشه را در یک سطح بزرگنمایی مشخص تعیین می کند. از این پارامتر برای بهینه سازی سرعت یا چگالی ویژگی استفاده کنید. -
thinningStrategy
- کنترل می کند که آیا نازک شدن ویژگی برای یک کاشی معین و سطح زوم باید برای تراکم بالاتر یا ثبات در تراکم بین کاشی ها بهینه شود یا خیر. توجه داشته باشید که بهینه سازی برای تراکم بالاتر می تواند باعث شود که مرزهای کاشی متمایز شوند، زیرا چگالی ویژگی در هر کاشی مستقل است. -
thinningRanking
- اولویت نازک شدن ویژگی را مشخص می کند. به عنوان مثال، می توانید نازک شدن را برای هدف قرار دادن حفظ یک ویژگی خاص با مقادیر بالا بهینه کنید - به عبارت دیگر، با بزرگنمایی، ویژگی هایی که مقدار کمی برای ویژگی انتخاب شده دارند ابتدا نازک می شوند و مهم ترین ویژگی ها (طبق قوانین شما) قابل مشاهده خواهند بود. -
zOrderRanking
- ترتیب z (ترتیب پشته) ویژگی های نمایش داده شده روی نقشه را مشخص می کند. این پارامتر نحوه نمایش ویژگی های همپوشانی را کنترل می کند و به شما امکان می دهد قوانین اولویت را بر اساس ویژگی های ویژگی، نوع هندسه و سطح بزرگنمایی تنظیم کنید. برای مثال، میتوانید ویژگیهایی را با مقادیر بالای یک ویژگی خاص اولویتبندی کنید تا روی ویژگیهای متقاطع با مقادیر کم قرار بگیرند.
برای جزئیات بیشتر در مورد این پارامترها و آرگومان های پذیرفته شده آنها به صفحه FeatureView
Optimization مراجعه کنید.
در مثال زیر، آرگومانهای مشخص شده برای این پارامترها یک FeatureView
ایجاد میکنند که در آن حداکثر ویژگیهای هر کاشی در یک سطح بزرگنمایی معین 1500 است، چگالی ویژگیها در هر کاشی مستقل است و اجازه میدهد به حداکثر 1500 برسد، چند ضلعیهای کوچکتر ابتدا نازک میشوند، و چند ضلعیهای کوچکتر روی چند ضلعیهای بزرگتر قرار میگیرند.
ویرایشگر کد (جاوا اسکریپت)
// Import the WDPA feature collection. var wdpa = ee.FeatureCollection('WCMC/WDPA/current/polygons'); // Export the WDPA FeatureCollection as a FeatureView asset. Export.table.toFeatureView({ collection: wdpa, assetId: 'wdpa-featureview-demo', description: 'wdpa-featureview-demo', maxFeaturesPerTile: 1500, thinningStrategy: 'HIGHER_DENSITY', thinningRanking: ['REP_AREA DESC'], zOrderRanking: ['REP_AREA DESC'], });
اجرای قطعه کد بالا در ویرایشگر کد، یک کار صادراتی ایجاد می کند. برای شروع صادرات، وظیفه را اجرا کنید.
مکان های دارایی FeatureView
دارایی های FeatureView
را می توان در کاتالوگ داده های عمومی و در میان دارایی های شخصی شما در برگه دارایی های ویرایشگر کد پیدا کرد. همه داراییهای FeatureCollection
مربوطه در کاتالوگ دادهها دارای یک دارایی FeatureView
همراه با تنظیمات عمومی قابل اجرا هستند. بایگانی دارایی شخصی شما شامل هر گونه دارایی FeatureView
است که ایجاد می کنید .
وارد کردن دارایی های FeatureView به اسکریپت ها
داراییهای FeatureView
را میتوان با استفاده از دکمههای موجود در گفتگوهای دارایی ویرایشگر کد و ورودیهای دارایی شخصی، و با ارائه شناسه دارایی FeatureView
به عنوان ورودی به سازنده ui.Map.FeatureViewLayer
، به اسکریپتهای ویرایشگر کد وارد کرد.
گفتگوی دارایی کاتالوگ داده
دیالوگهای دارایی جدول کاتالوگ داده، که از نوار جستجوی ویرایشگر کد قابل دسترسی هستند، دارای یک دکمه واردات در پایین سمت راست با منوی کشویی هستند. از منوی کشویی، "Import FeatureView" را انتخاب کنید. دارایی در قسمت واردات در بالای اسکریپت شما گنجانده می شود.
گفتگوی دارایی های شخصی
گفتگوهای دارایی FeatureView
شخصی که با انتخاب یک دارایی از برگه دارایی ویرایشگر کد قابل دسترسی هستند، دارای یک دکمه Import در سمت راست بالا هستند. با فعال کردن دکمه، دارایی در قسمت Imports در بالای اسکریپت شما قرار می گیرد. همچنین میتوانید از دکمه میانبر وارد کردن (نماد فلش رو به راست) استفاده کنید که وقتی ماوس را روی یک دارایی در برگه Assets نگه میدارید ظاهر میشود.
شناسه دارایی
دارایی های FeatureView
دارای شناسه ای هستند که می تواند به عنوان ورودی سازنده ui.Map.FeatureViewLayer
ارائه شود که به شما امکان دسترسی به دارایی موجود در اسکریپت خود را می دهد. قطعات وارداتی از پیش ساخته شده را می توان در صفحات دارایی کاتالوگ داده و گفتگوهای دارایی در ویرایشگر کد پیدا کرد.
شکل 1. دیالوگ دارایی کاتالوگ داده که روش های واردات FeatureView
را برجسته می کند.
متادیتا FeatureView
اطلاعات FeatureView
و ابرداده ها در گفتگوهای دارایی ذکر شده در بخش مکان های دارایی FeatureView در بالا موجود است. علاوه بر توضیحات و ویژگی هایی که ممکن است با منبع FeatureCollection
به اشتراک گذاشته شود، پنج ویژگی منحصر به فرد برای FeatureView
وجود دارد. آنها شامل تنظیمات پارامتر جذب توصیف شده در بخش Creating a FeatureView و sourceVersion
میشوند که «آخرین تغییر» مهر زمانی دارایی جدول است که FeatureView
از آن ایجاد شده است. شکل 1 در بالا ویژگی های خاص FeatureView
در گفتگوی دارایی کاتالوگ داده نشان می دهد. مانند سایر داراییها، میتوانید ویژگیها را به صورت برنامهنویسی از فرهنگ لغت برگردانده شده توسط ee.data.getAsset
واکشی کنید.
تجسم FeatureView
یک شی FeatureView
را می توان در ویرایشگر کد، برنامه های Earth Engine و Google Maps تجسم کرد.
ویرایشگر کد
ویرایشگر کد شامل مولفه ui.Map.FeatureViewLayer
برای تجسم دارایی های FeatureView
بر روی نقشه است. مثال زیر یک شناسه دارایی FeatureView
را تعریف می کند، دارایی را به عنوان یک FeatureViewLayer
وارد می کند و آن را روی نقشه نمایش می دهد.
ویرایشگر کد (جاوا اسکریپت)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId); // Add the FeatureViewLayer to the map. Map.add(layer);
یک ظاهر طراحی شده
میتوانید FeatureViewLayer
را با ارسال یک فرهنگ لغت به تابع ui.Map.FeatureViewLayer
یا اضافه کردن آنها به یک لایه با استفاده از متد setVisParams
استایل دهید. در زیر نمونه ای از سبک ها آورده شده است:
- رنگ ها را بر اساس ویژگی "MARINE" ترسیم کنید (خواه منطقه حفاظت شده به طور کامل یا جزئی در محیط دریایی قرار گیرد)،
- پر کردن رنگ بر اساس ویژگی "IUCN_CAT" (رده اتحادیه بین المللی حفاظت از طبیعت (IUCN))، و
- کدورت را بر اساس اندازه منطقه محافظت شده که توسط ویژگی "REP_AREA" تعریف شده است، پر کنید .
برای جزئیات بیشتر در مورد گزینه های استایل موجود، از صفحه FeatureView Styling دیدن کنید.
ویرایشگر کد (جاوا اسکریپت)
// Set visualization properties for the defined layer. layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, });
فیلتر کردن
قوانین فیلتر را می توان برای سبک انتخابی یا پنهان کردن ویژگی ها بر اساس ویژگی های آنها اعمال کرد. به عنوان مثال، برای فیلتر کردن مناطق محافظت شده کوچکتر از یک منطقه خاص که توسط ویجت اسلایدر ارائه شده است، می توانید از کد زیر استفاده کنید. برای کسب اطلاعات بیشتر در مورد فیلد rules
، به بخش قوانین خاص صفحه FeatureView
Styling مراجعه کنید.
ویرایشگر کد (جاوا اسکریپت)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId, null, 'WDPA FeatureViewLayer'); // Callback function to update FeatureViewLayer style. var updateVisParams = function() { layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, rules: [ { filter: ee.Filter.lt('REP_AREA', filterSlider.getValue()), isVisible: false, }, ], }); }; // Slider widget that calls the updateVisParams function on change. var filterSlider = ui.Slider({ min: 0, max: 10000, step: 10, value: 0, style: { stretch: 'horizontal'}, onChange: updateVisParams, }); var filterSliderLabel = ui.Label( 'Adjust slider to hide features less than the specified area (km²)'); // Add the slider to the map. Map.add(ui.Panel([filterSliderLabel, filterSlider])); // Initialize the FeatureViewLayer style. updateVisParams(); // Add the FeatureViewLayer to the map. Map.add(layer);
شکل 2. تجسم FeatureViewLayer
با ویجت لغزنده برای پنهان کردن ویژگی های کوچکتر از ناحیه مشخص شده.
Google Maps API
فرآیند تجسم یک دارایی FeatureView
با استفاده از Google Maps API یک فرآیند چهار قسمتی است: یک کلید tiles با استفاده از ee.data.getFeatureViewTilesKey
به دست آورید، آن را به نمونه ای از FeatureViewTileSource
منتقل کنید، یک ee.layer.ImageOverlay
بسازید و سپس همپوشانی را به google.maps.Map
خود اضافه کنید. کد نمونه برای ساخت ImageOverlay
در جاوا اسکریپت در زیر نشان داده شده است.
var tilesKey = ee.data.getFeatureViewTilesKey({
assetId: 'WCMC/WDPA/current/polygons_FeatureView',
visParams: { … },
});
var tileSource = new ee.layers.FeatureViewTileSource(tilesKey);
var overlay = new ee.layers.ImageOverlay(tileSource);
پس از انجام این کار، میتوانید مطابق شکل زیر پوشش را به نمونه google.maps.Map
خود اضافه کنید.
// embeddedMap is your google.maps.Map instance.
embeddedMap.overlayMapTypes.setAt(0, overlay);
بازرسی FeatureView
یک لایه FeatureViewLayer
که به نقشه پیشفرض ویرایشگر کد اضافه شده است را میتوان با استفاده از ابزار Inspector بازرسی کرد. عملکرد مانند یک FeatureCollection
است. توجه داشته باشید که نتایج برگردانده شده برای مکان کلیک شده فقط ویژگی هایی را فهرست می کند که در سطح بزرگنمایی فعلی قابل مشاهده هستند. هندسه ها برای ویژگی های بازرسی شده نشان داده نمی شوند زیرا آنها به عنوان بخشی از فرآیند صادرات FeatureView
ساده شده اند.
شکل 3. بازرسی یک FeatureViewLayer
. بازرس لایه، ویژگی ها، شناسه دارایی و پارامترهای تجسم را نشان می دهد.