Modeling Economic Well-being through AI, Satellite Imagery, and Census Data

Published
Nov 16, 2020
Reading Time
Rate this post
(7 votes)
Modeling Economic Well-being through AI, Satellite Imagery, and Census Data

Execution time: 0.0003 seconds

Execution time: 0.0002 seconds

 

This article is written by Harshita Chopra along with collaborators Arpan Mishra, Precioso Gabrillo, and Raghunath Pal.

Economic well-being is a broad concept that goes beyond statistical metrics. When you plan on moving to another place, do you primarily check complex economic measures like the GDP of that region? When making such decisions, generally what matters to most people, in layman terms, is the standard of living. The standard of living refers to the necessities, comforts, and lux­uries which a person is likely to enjoy. It refers to the quantity and quality of their consumption. The fundamental reason for differences in the standards of living between regions is the difference in their levels of economic productivity.

Hence, it is important for nations to record a source of primary data that provides valuable information for planning and formulating policies by governments, international agencies, scholars, business people, industrialists, and many more.

This data is usually collected through on-site surveys that need to be performed across vast areas. A list of questions is asked from families and individuals which leads to a huge database.

The Problem

These surveys are conducted over a period of a few years and involve huge manpower and expenditure.

Indian Census 2011 costed INR 2200 Crores (USD 295 million)

There are also associated risks of abuse of data and corruption. Also, the temporal variation of factors affecting economic well-being makes it all the more difficult to compare the progress of regions.

Instead, we try training AI models to learn features related to the changing agricultural and urban landscape thus providing a better understanding of economic well-being.

World Resources Institute (WRI) is a global research organization that spans more than 60 countries and works towards turning big ideas into action at the nexus of environment, economic opportunity, and human well-being. 

WRI


WRI brings up an enlightening problem statement — Creating a machine learning algorithm that can be used as a proxy for socio-economic well-being in India, using a remote sensing approach through satellite images.

In order to make this possible, Omdena brought together 40 AI -Engineers from 20+ countries, to collaborate on this project. The aim was to create a prototype that can be used to predict variables or features that represent the standard of living of a place, particularly in data-poor regions. This remote approach would use AI and Computer Vision to extract latent features from satellite images, that can help build a baseline model.

How we solved it

In this article, we’re going to highlight one of the final delivered models based on Indian Census Data. The aim of this economic well-being AI model is to use satellite images and classify each region as a high, medium, or low economic well-being region.

1. Preparing the Ground Truth

In anticipation of the upcoming Census 2021, WRI expressed a major interest in working on its census dataset as there was a need to prepare the model for the upcoming release.

The census data (AI) is an official survey of the population which attempts to gather socio-economic well-being information of households in a specific region and time frame.

Our panel data team mobilized to quickly scrape the Census-2011 website for the District-level household data. There are a number of features representing the condition of houses and assets owned. We wrote a script that extracted these features for each of the 640 districts present in India, in one single CSV file.

We followed the methodology described in this research paper as a guide for our workflow. The census data were subdivided into groups and the features were reduced. We formulated these six variables according to existing research:

  • Fuel for Cooking
  • Main Source of Water
  • Main Source of Light
  • Condition of Household
  • Material of Roof
  • Assets Owned

All of these six variables had three categories —

  • RUD (rudimentary): Features that represent primitive methods such as using firewood, river water, poor house condition, grass roof, etc.
  • INT (intermediate): Features that represent medium-grade methods such as using kerosene for lighting, tubewell water, owning a liveable house, etc.
  • ADV (advance): Features that represent the better condition of households such as owning a car. using electricity, tap water, etc.

After this division, we applied K-means clustering to identify three clusters belonging to the above categories. Each cluster was AI-visualized using a box-plot to associate it with a level of economic well-being.

Example: Three Clusters for Variable — Main Source of Water / Source: Omdena


In the above image, we see three clusters represented by three plots. Each one is telling if it belongs to the Low, Medium, or High economic well-being class. Cluster 1 depicts ‘High’ (since water_adv is the highest), cluster 2 depicts ‘Medium’ (since water_int is the highest) and cluster 3 depicts ‘Low’ (since water_rud is the highest).

This was done for all 6 variables. After this pre-processing of Census data, our dataset looked like this:

 
Source: Omdena 

2. Satellite Image Acquisition

After the ground truth was set up we needed satellite images corresponding to those 640 districts. We had to rely on open-source satellite images, so we selected Google Earth Engine’s services to download these images.

Google Earth Engine provides datasets from various satellites. Since we used census data from 2011 we required the images for the districts corresponding to that year. From the two popular satellites: Sentinel 2 (which has AI data is available from 2015) and Landsat 7 (which has data available from 1999), we selected Landsat 7 Tier 1 TOA Reflectance as our satellite imagery collection, in order to acquire images from 2011.

Landsat 7 images have 30m/pixel resolution which means that every pixel of the image covers 30 meters on earth!

Jalgaon, Maharashtra / Source: Omdena


Next, we decided on the bands we would need in our satellite image. The images stored in our devices contain 3 bands (Red, Green, and Blue). However, satellite images are multi-banded in nature and may contain up to 12 bands. Not all of them would be useful for us, so we settled on Red, Green, Blue, NIR (Near InfraRed), and SWIR-1 (Shortwave InfraRed) bands.

The image of any particular region will vary depending on what time it was taken, the cloud cover, angle of the satellite, etc. Google Earth Engine allows us to filter out all the best images that we can get for a region throughout our time period and then aggregate them into one single image composite. We downloaded 640 median aggregated image composites, each image corresponding to our districts.

3. Creating Features from Images

Every raster that we downloaded contains 5 bands, we merged these bands in different ways to analyze the geographical features of that region.

For example, if we merge the Near Infrared and the Red bands together using the formula, (NIR  —  RED) / (NIR + RED), we will get a single-band image. We call this the NDVI of our image, which stands for Normalized Difference Vegetation Index. 

The special thing about this image is that all the pixels with any shade of green are highlighted. This basically tells us where in the district there is a higher concentration of vegetation. Vegetation is also an indicator of economic well-being, so we can use the NDVI image as an input to our AI model.

Different indices highlight different features on the map. See below for more details on each index. Source: Omdena


<

Similarly, we can combine the SWIR band with the other bands to get other indices. Apart from the NDVI we also calculated the NDBI (Normalized Difference Built-Up Index) and the NDWI (Normalized Difference Water Index). As the name suggests the NDBI highlights the concentration of the built-up areas and NDWI highlights the water content, both of which could be indicators of social well-being.

4. Model Architecture

The inputs and expected outputs were ready! The task was to build an image classification model. Most of the available pre-trained models are for RGB images. However, satellite images contain multiple bands. So we decided to generate 3-band images using the extracted indices.

To be able to use transfer learning, as well as utilize all the features in our images, we came up with the following architecture:

A Multi-modal Multi-task Deep Learning Model — It inputs two images and outputs values for multiple variables.

The Multi-modal Multi-task Deep Learning Model. Source: Omdena


We take two inputs:

  • The first is an RGB image, which is just like any normal image we look at, containing the Red, Green, Blue bands.
  • The second is a combination of the NDVI, NDBI, and NDWI of our image.
    NDVI — Normalized Difference Vegetation Index
    NDBI — Normalized Difference Built-up Index
    NDWI — Normalized Difference Water Index
    This new image highlights a mixture of features corresponding to vegetation cover, built-up area, and water bodies of that region.

We then rescale the pixels to the 0–255 range so that the pre-trained models can be used with them.

Our data was divided such that all states are represented well in the model. 80% of districts of each state went to the training set and 20% went to the test set. Our model was subjected to a clever 10-fold cross-validation scheme, which means that the entire dataset was given a chance to undergo the economic well-being prediction by the AI model.

Images are passed through a popular Deep Learning Neural Network architecture — RESNET-18, combined with a fully connected layer to get our desired outputs. The model outputs three classes (high, medium, low) for multiple indicators as mentioned above. Hence, we solved a multi-modal multi-task learning problem. The model achieved an overall accuracy close to 70%.

Results and Insights

To analyze the overall development of a region based on the six different indices, we curated an Overall Development Index (ODI) to judge the economic well-being of a region as a whole. The index score calculated for each district ranged from 6 to 18 and was calculated as follows:

Overall Development Index (ODI) = A1+A2+A3+A4+A5+A6, where

Ax = 1 if Ax = “Low”
   = 2 if Ax = “Medium”
   = 3 if Ax = “High”
x: Type of Index

Ground Truth vs Model Predictions of Overall Development Index for Census 2011 / Source: Omdena


Driven by our curiosity and project interests, we also decided to deep dive into our data to uncover hidden statistics and actionable insights. Subjecting the data to a popular technique called Exploratory Data Analysis and with the help of BI tools like Tableau, Google Data Studio — we created dashboards to visualize the data in different customizable views.

We discovered that the districts of India were almost evenly distributed in terms of High, Medium, and Low Overall Development.

Distribution of Districts by the Overall Development Index for each indicator of economic well-being. Source: Omdena


Conclusion

Satellite images can act as a great proxy for existing data collection techniques such as surveys and census to predict the economic well-being of a region. It also makes it possible to determine the economic well-being of areas that are inaccessible to humans, for example, the rocky terrains of the northeastern region of India, the Himalayas or villages in the deserts.

The model is highly scalable and adaptable and can be trained on existing satellite imagery and surveys of other countries as well. It can help save a lot of manpower and time which acts as a major challenge in our existing development assessment initiatives. The prototype developed by our team in this eight-week challenge can be a springboard to a wider and in-depth expansion of this machine learning tool for predicting economic well-being.

With rapid advancements in technology, possible future work can include using high-resolution images or other popular datasets such as the Demographic and Health Survey (DHS) or Living Standards Measurement Surveys (LSMS) as the ground truth. Future applications also include tracking urbanization along with vegetation cover over a period of time. This can reflect on how the socio-economic conditions of regions evolve along with changing environmental factors.

ACF

ID58157
keyfield_623341deec7d0
labelPhoto
namephoto
prefixacf
typeimage
valueArray ( [ID] => 88119 [id] => 88119 [title] => Favicon [filename] => Favicon.png [filesize] => 69919 [url] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [link] => https://omdena.com/favicon/ [alt] => Favicon [author] => 19 [description] => Favicon [caption] => Favicon [name] => favicon [status] => inherit [uploaded_to] => 16994 [date] => 2022-10-10 12:36:26 [modified] => 2022-10-10 13:36:24 [menu_order] => 0 [mime_type] => image/png [type] => image [subtype] => png [icon] => https://omdena.com/wp-includes/images/media/default.png [width] => 512 [height] => 512 [sizes] => Array ( [thumbnail] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [thumbnail-width] => 96 [thumbnail-height] => 96 [medium] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [medium-width] => 512 [medium-height] => 512 [medium_large] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [medium_large-width] => 512 [medium_large-height] => 512 [large] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [large-width] => 512 [large-height] => 512 [1536x1536] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [1536x1536-width] => 512 [1536x1536-height] => 512 [2048x2048] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [2048x2048-width] => 512 [2048x2048-height] => 512 [et-pb-post-main-image] => https://omdena.com/wp-content/uploads/2022/10/Favicon-400x250.png [et-pb-post-main-image-width] => 400 [et-pb-post-main-image-height] => 250 [et-pb-post-main-image-fullwidth] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-post-main-image-fullwidth-width] => 512 [et-pb-post-main-image-fullwidth-height] => 512 [et-pb-portfolio-image] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-portfolio-image-width] => 284 [et-pb-portfolio-image-height] => 284 [et-pb-portfolio-module-image] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-portfolio-module-image-width] => 382 [et-pb-portfolio-module-image-height] => 382 [et-pb-portfolio-image-single] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-portfolio-image-single-width] => 512 [et-pb-portfolio-image-single-height] => 512 [et-pb-gallery-module-image-portrait] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-gallery-module-image-portrait-width] => 400 [et-pb-gallery-module-image-portrait-height] => 400 [et-pb-post-main-image-fullwidth-large] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-post-main-image-fullwidth-large-width] => 512 [et-pb-post-main-image-fullwidth-large-height] => 512 [et-pb-image--responsive--desktop] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-image--responsive--desktop-width] => 512 [et-pb-image--responsive--desktop-height] => 512 [et-pb-image--responsive--tablet] => https://omdena.com/wp-content/uploads/2022/10/Favicon.png [et-pb-image--responsive--tablet-width] => 512 [et-pb-image--responsive--tablet-height] => 512 [et-pb-image--responsive--phone] => https://omdena.com/wp-content/uploads/2022/10/Favicon-480x480.png [et-pb-image--responsive--phone-width] => 270 [et-pb-image--responsive--phone-height] => 270 ))
menu_order1
parent58155
wrapperArray ( [width] => [class] => [id] => )
return_formatarray
preview_sizethumbnail
libraryall
_namephoto
_valid1

Module Settings

custom_identifierImage
acf_namefield_623341deec7d0
is_author_acf_fieldoff
post_object_acf_namenone
author_field_typeauthor_post
linked_user_acf_namenone
type_taxonomy_acf_namenone
acf_tagdiv
show_labeloff
label_seperator:
visibilityon
empty_value_optionhide_module
use_iconoff
icon_color#7EBEC5
use_circleoff
circle_color#7EBEC5
use_circle_borderoff
circle_border_color#7EBEC5
use_icon_font_sizeoff
icon_image_placementleft
image_mobile_stackingcolumn
return_formatarray
image_link_urloff
image_link_url_acf_namenone
checkbox_stylearray
checkbox_radio_returnlabel
checkbox_radio_value_typeoff
checkbox_radio_linkoff
link_buttonoff
email_subjectnone
email_body_afternone
add_css_classoff
add_css_loop_layoutoff
add_css_class_selectorbody
link_new_tabon
link_name_acfoff
link_name_acf_namenone
url_link_iconoff
image_sizefull
true_false_conditionoff
true_false_condition_css_selector.et_pb_button
true_false_text_trueTrue
true_false_text_falseFalse
is_audiooff
is_videooff
video_loopon
video_autoplayon
is_oembed_videooff
defer_videooff
defer_video_iconI||divi||400
video_icon_font_sizeoff
pretify_textoff
pretify_seperator,
number_decimal.
show_value_if_zerooff
text_imageoff
is_options_pageoff
is_repeater_loop_layoutoff
linked_post_stylecustom
link_post_seperator,
link_to_post_objecton
loop_layoutnone
columns4
columns_tablet2
columns_mobile1
repeater_dyn_btn_acfnone
button_alignmentcenter
text_before_positionsame_line
label_positionsame_line
vertical_alignmentmiddle
image_max_width_last_editedon|phone
admin_labelPhoto
_builder_version4.16
_module_presetdefault
title_css_font_size14px
title_css_letter_spacing0px
title_css_line_height1em
acf_label_css_font_size14px
acf_label_css_letter_spacing0px
acf_label_css_line_height1em
label_css_letter_spacing0px
text_before_css_font_size14px
text_before_css_letter_spacing0px
text_before_css_line_height1em
seperator_font_size14px
seperator_letter_spacing0px
seperator_line_height1em
relational_field_item_font_size14px
relational_field_item_letter_spacing0px
relational_field_item_line_height1em
background_enable_coloron
use_background_color_gradientoff
background_color_gradient_repeatoff
background_color_gradient_typelinear
background_color_gradient_direction180deg
background_color_gradient_direction_radialcenter
background_color_gradient_stops#2b87da 0%|#29c4a9 100%
background_color_gradient_unit%
background_color_gradient_overlays_imageoff
background_color_gradient_start#2b87da
background_color_gradient_start_position0%
background_color_gradient_end#29c4a9
background_color_gradient_end_position100%
background_enable_imageon
parallaxoff
parallax_methodon
background_sizecover
background_image_widthauto
background_image_heightauto
background_positioncenter
background_horizontal_offset0
background_vertical_offset0
background_repeatno-repeat
background_blendnormal
background_enable_video_mp4on
background_enable_video_webmon
allow_player_pauseoff
background_video_pause_outside_viewporton
background_enable_pattern_styleoff
background_pattern_stylepolka-dots
background_pattern_colorrgba(0,0,0,0.2)
background_pattern_sizeinitial
background_pattern_widthauto
background_pattern_heightauto
background_pattern_repeat_origintop_left
background_pattern_horizontal_offset0
background_pattern_vertical_offset0
background_pattern_repeatrepeat
background_pattern_blend_modenormal
background_enable_mask_styleoff
background_mask_stylelayer-blob
background_mask_color#ffffff
background_mask_aspect_ratiolandscape
background_mask_sizestretch
background_mask_widthauto
background_mask_heightauto
background_mask_positioncenter
background_mask_horizontal_offset0
background_mask_vertical_offset0
background_mask_blend_modenormal
custom_buttonoff
button_text_size20
button_bg_use_color_gradientoff
button_bg_color_gradient_repeatoff
button_bg_color_gradient_typelinear
button_bg_color_gradient_direction180deg
button_bg_color_gradient_direction_radialcenter
button_bg_color_gradient_stops#2b87da 0%|#29c4a9 100%
button_bg_color_gradient_unit%
button_bg_color_gradient_overlays_imageoff
button_bg_color_gradient_start#2b87da
button_bg_color_gradient_start_position0%
button_bg_color_gradient_end#29c4a9
button_bg_color_gradient_end_position100%
button_bg_enable_imageon
button_bg_parallaxoff
button_bg_parallax_methodon
button_bg_sizecover
button_bg_image_widthauto
button_bg_image_heightauto
button_bg_positioncenter
button_bg_horizontal_offset0
button_bg_vertical_offset0
button_bg_repeatno-repeat
button_bg_blendnormal
button_bg_enable_video_mp4on
button_bg_enable_video_webmon
button_bg_allow_player_pauseoff
button_bg_video_pause_outside_viewporton
button_use_iconon
button_icon_placementright
button_on_hoveron
positioningnone
position_origin_atop_left
position_origin_ftop_left
position_origin_rtop_left
width100%
max_widthnone
max_width_tablet25%
max_width_phone25%
max_width_last_editedon|tablet
module_alignmentcenter
min_heightauto
heightauto
max_heightnone
custom_margin_tablet||0px||false|false
custom_margin_phone||0px||false|false
custom_margin_last_editedon|phone
filter_hue_rotate0deg
filter_saturate100%
filter_brightness100%
filter_contrast100%
filter_invert0%
filter_sepia0%
filter_opacity100%
filter_blur0px
mix_blend_modenormal
animation_stylenone
animation_directioncenter
animation_duration1000ms
animation_delay0ms
animation_intensity_slide50%
animation_intensity_zoom50%
animation_intensity_flip50%
animation_intensity_fold50%
animation_intensity_roll50%
animation_starting_opacity0%
animation_speed_curveease-in-out
animation_repeatonce
hover_transition_duration300ms
hover_transition_delay0ms
hover_transition_speed_curveease
link_option_url_new_windowoff
sticky_positionnone
sticky_offset_top0px
sticky_offset_bottom0px
sticky_limit_topnone
sticky_limit_bottomnone
sticky_offset_surroundingon
sticky_transitionon
motion_trigger_startmiddle
hover_enabled0
title_css_text_shadow_stylenone
title_css_text_shadow_horizontal_length0em
title_css_text_shadow_vertical_length0em
title_css_text_shadow_blur_strength0em
title_css_text_shadow_colorrgba(0,0,0,0.4)
acf_label_css_text_shadow_stylenone
acf_label_css_text_shadow_horizontal_length0em
acf_label_css_text_shadow_vertical_length0em
acf_label_css_text_shadow_blur_strength0em
acf_label_css_text_shadow_colorrgba(0,0,0,0.4)
label_css_text_shadow_stylenone
label_css_text_shadow_horizontal_length0em
label_css_text_shadow_vertical_length0em
label_css_text_shadow_blur_strength0em
label_css_text_shadow_colorrgba(0,0,0,0.4)
text_before_css_text_shadow_stylenone
text_before_css_text_shadow_horizontal_length0em
text_before_css_text_shadow_vertical_length0em
text_before_css_text_shadow_blur_strength0em
text_before_css_text_shadow_colorrgba(0,0,0,0.4)
seperator_text_shadow_stylenone
seperator_text_shadow_horizontal_length0em
seperator_text_shadow_vertical_length0em
seperator_text_shadow_blur_strength0em
seperator_text_shadow_colorrgba(0,0,0,0.4)
relational_field_item_text_shadow_stylenone
relational_field_item_text_shadow_horizontal_length0em
relational_field_item_text_shadow_vertical_length0em
relational_field_item_text_shadow_blur_strength0em
relational_field_item_text_shadow_colorrgba(0,0,0,0.4)
border_radiion|100%|100%|100%|100%
border_radii_tableton||||
border_radii_phoneon|100%|100%|100%|100%
border_radii_last_editedon|phone
button_text_shadow_stylenone
button_text_shadow_horizontal_length0em
button_text_shadow_vertical_length0em
button_text_shadow_blur_strength0em
button_text_shadow_colorrgba(0,0,0,0.4)
box_shadow_stylenone
box_shadow_colorrgba(0,0,0,0.3)
box_shadow_positionouter
box_shadow_style_buttonnone
box_shadow_color_buttonrgba(0,0,0,0.3)
box_shadow_position_buttonouter
text_shadow_stylenone
text_shadow_horizontal_length0em
text_shadow_vertical_length0em
text_shadow_blur_strength0em
text_shadow_colorrgba(0,0,0,0.4)
disabledoff
global_colors_info{}
Favicon

Execution time: 0.0038 seconds

ACF

ID58156
keyfield_623341caec7cf
labelName
nameblog_author_name
prefixacf
typetext
valueOmdena
parent58155
wrapperArray ( [width] => [class] => [id] => )
_nameblog_author_name
_valid1

Module Settings

custom_identifierACF Item
acf_namefield_623341caec7cf
is_author_acf_fieldoff
post_object_acf_namenone
author_field_typeauthor_post
linked_user_acf_namenone
type_taxonomy_acf_namenone
acf_tagp
show_labeloff
label_seperator:
visibilityon
empty_value_optionhide_module
use_iconoff
icon_color#7EBEC5
use_circleoff
circle_color#7EBEC5
use_circle_borderoff
circle_border_color#7EBEC5
use_icon_font_sizeoff
icon_image_placementleft
image_mobile_stackinginitial
return_formatarray
image_link_urloff
image_link_url_acf_namenone
checkbox_stylearray
checkbox_radio_returnlabel
checkbox_radio_value_typeoff
checkbox_radio_linkoff
link_buttonoff
email_subjectnone
email_body_afternone
add_css_classoff
add_css_loop_layoutoff
add_css_class_selectorbody
link_new_tabon
link_name_acfoff
link_name_acf_namenone
url_link_iconoff
image_sizefull
true_false_conditionoff
true_false_condition_css_selector.et_pb_button
true_false_text_trueTrue
true_false_text_falseFalse
is_audiooff
is_videooff
video_loopon
video_autoplayon
is_oembed_videooff
defer_videooff
defer_video_iconI||divi||400
video_icon_font_sizeoff
pretify_textoff
pretify_seperator,
number_decimal.
show_value_if_zerooff
text_imageoff
is_options_pageoff
is_repeater_loop_layoutoff
linked_post_stylecustom
link_post_seperator,
link_to_post_objecton
loop_layoutnone
columns4
columns_tablet2
columns_mobile1
repeater_dyn_btn_acfnone
text_before_positionsame_line
label_positionsame_line
vertical_alignmentmiddle
admin_labelName
_builder_version4.21.0
_module_presetdefault
title_css_text_alignleft
title_css_font_size14px
title_css_letter_spacing0px
title_css_line_height1em
acf_label_css_text_alignleft
acf_label_css_font_size14px
acf_label_css_letter_spacing0px
acf_label_css_line_height1em
label_css_fontRoboto|700|||||||
label_css_text_alignleft
label_css_letter_spacing0px
text_before_css_font_size14px
text_before_css_letter_spacing0px
text_before_css_line_height1em
seperator_font_size14px
seperator_letter_spacing0px
seperator_line_height1em
relational_field_item_font_size14px
relational_field_item_letter_spacing0px
relational_field_item_line_height1em
background_enable_coloron
use_background_color_gradientoff
background_color_gradient_repeatoff
background_color_gradient_typelinear
background_color_gradient_direction180deg
background_color_gradient_direction_radialcenter
background_color_gradient_stops#2b87da 0%|#29c4a9 100%
background_color_gradient_unit%
background_color_gradient_overlays_imageoff
background_color_gradient_start#2b87da
background_color_gradient_start_position0%
background_color_gradient_end#29c4a9
background_color_gradient_end_position100%
background_enable_imageon
parallaxoff
parallax_methodon
background_sizecover
background_image_widthauto
background_image_heightauto
background_positioncenter
background_horizontal_offset0
background_vertical_offset0
background_repeatno-repeat
background_blendnormal
background_enable_video_mp4on
background_enable_video_webmon
allow_player_pauseoff
background_video_pause_outside_viewporton
background_enable_pattern_styleoff
background_pattern_stylepolka-dots
background_pattern_colorrgba(0,0,0,0.2)
background_pattern_sizeinitial
background_pattern_widthauto
background_pattern_heightauto
background_pattern_repeat_origintop_left
background_pattern_horizontal_offset0
background_pattern_vertical_offset0
background_pattern_repeatrepeat
background_pattern_blend_modenormal
background_enable_mask_styleoff
background_mask_stylelayer-blob
background_mask_color#ffffff
background_mask_aspect_ratiolandscape
background_mask_sizestretch
background_mask_widthauto
background_mask_heightauto
background_mask_positioncenter
background_mask_horizontal_offset0
background_mask_vertical_offset0
background_mask_blend_modenormal
custom_buttonoff
button_text_size20
button_bg_use_color_gradientoff
button_bg_color_gradient_repeatoff
button_bg_color_gradient_typelinear
button_bg_color_gradient_direction180deg
button_bg_color_gradient_direction_radialcenter
button_bg_color_gradient_stops#2b87da 0%|#29c4a9 100%
button_bg_color_gradient_unit%
button_bg_color_gradient_overlays_imageoff
button_bg_color_gradient_start#2b87da
button_bg_color_gradient_start_position0%
button_bg_color_gradient_end#29c4a9
button_bg_color_gradient_end_position100%
button_bg_enable_imageon
button_bg_parallaxoff
button_bg_parallax_methodon
button_bg_sizecover
button_bg_image_widthauto
button_bg_image_heightauto
button_bg_positioncenter
button_bg_horizontal_offset0
button_bg_vertical_offset0
button_bg_repeatno-repeat
button_bg_blendnormal
button_bg_enable_video_mp4on
button_bg_enable_video_webmon
button_bg_allow_player_pauseoff
button_bg_video_pause_outside_viewporton
button_use_iconon
button_icon_placementright
button_on_hoveron
positioningnone
position_origin_atop_left
position_origin_ftop_left
position_origin_rtop_left
text_orientationleft
widthauto
max_widthnone
module_alignmentleft
min_heightauto
heightauto
max_heightnone
custom_margin_tablet||10px||false|false
custom_margin_phone||10px||false|false
custom_margin_last_editedon|tablet
custom_padding5px||||false|false
filter_hue_rotate0deg
filter_saturate100%
filter_brightness100%
filter_contrast100%
filter_invert0%
filter_sepia0%
filter_opacity100%
filter_blur0px
mix_blend_modenormal
animation_stylenone
animation_directioncenter
animation_duration1000ms
animation_delay0ms
animation_intensity_slide50%
animation_intensity_zoom50%
animation_intensity_flip50%
animation_intensity_fold50%
animation_intensity_roll50%
animation_starting_opacity0%
animation_speed_curveease-in-out
animation_repeatonce
hover_transition_duration300ms
hover_transition_delay0ms
hover_transition_speed_curveease
link_option_url_new_windowoff
sticky_positionnone
sticky_offset_top0px
sticky_offset_bottom0px
sticky_limit_topnone
sticky_limit_bottomnone
sticky_offset_surroundingon
sticky_transitionon
motion_trigger_startmiddle
hover_enabled0
title_css_text_align_tabletcenter
title_css_text_align_phonecenter
title_css_text_align_last_editedon|phone
acf_label_css_text_align_tabletcenter
acf_label_css_text_align_phonecenter
acf_label_css_text_align_last_editedon|phone
label_css_text_align_tabletcenter
label_css_text_align_phonecenter
label_css_text_align_last_editedon|desktop
text_orientation_tabletcenter
text_orientation_phonecenter
text_orientation_last_editedon|phone
module_alignment_tabletcenter
module_alignment_phonecenter
module_alignment_last_editedon|desktop
title_css_text_shadow_stylenone
title_css_text_shadow_horizontal_length0em
title_css_text_shadow_vertical_length0em
title_css_text_shadow_blur_strength0em
title_css_text_shadow_colorrgba(0,0,0,0.4)
acf_label_css_text_shadow_stylenone
acf_label_css_text_shadow_horizontal_length0em
acf_label_css_text_shadow_vertical_length0em
acf_label_css_text_shadow_blur_strength0em
acf_label_css_text_shadow_colorrgba(0,0,0,0.4)
label_css_text_shadow_stylenone
label_css_text_shadow_horizontal_length0em
label_css_text_shadow_vertical_length0em
label_css_text_shadow_blur_strength0em
label_css_text_shadow_colorrgba(0,0,0,0.4)
text_before_css_text_shadow_stylenone
text_before_css_text_shadow_horizontal_length0em
text_before_css_text_shadow_vertical_length0em
text_before_css_text_shadow_blur_strength0em
text_before_css_text_shadow_colorrgba(0,0,0,0.4)
seperator_text_shadow_stylenone
seperator_text_shadow_horizontal_length0em
seperator_text_shadow_vertical_length0em
seperator_text_shadow_blur_strength0em
seperator_text_shadow_colorrgba(0,0,0,0.4)
relational_field_item_text_shadow_stylenone
relational_field_item_text_shadow_horizontal_length0em
relational_field_item_text_shadow_vertical_length0em
relational_field_item_text_shadow_blur_strength0em
relational_field_item_text_shadow_colorrgba(0,0,0,0.4)
button_text_shadow_stylenone
button_text_shadow_horizontal_length0em
button_text_shadow_vertical_length0em
button_text_shadow_blur_strength0em
button_text_shadow_colorrgba(0,0,0,0.4)
box_shadow_stylenone
box_shadow_colorrgba(0,0,0,0.3)
box_shadow_positionouter
box_shadow_style_buttonnone
box_shadow_color_buttonrgba(0,0,0,0.3)
box_shadow_position_buttonouter
text_shadow_stylenone
text_shadow_horizontal_length0em
text_shadow_vertical_length0em
text_shadow_blur_strength0em
text_shadow_colorrgba(0,0,0,0.4)
disabledoff
global_colors_info{}

Omdena

Execution time: 0.0008 seconds

Execution time: 0.0003 seconds

Execution time: 0.0005 seconds

Vetted Senior AI Talent

Work with our top 2% hidden gems, vetted through over 300 real-world projects.

Top Talent

Leave a comment.
0 Comments
Submit a Comment

Your email address will not be published. Required fields are marked *