﻿{"id":15078,"date":"2025-08-13T12:10:59","date_gmt":"2025-08-13T10:10:59","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?page_id=15078"},"modified":"2025-08-27T11:35:46","modified_gmt":"2025-08-27T09:35:46","slug":"fuzzy-aggregation","status":"publish","type":"page","link":"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/","title":{"rendered":"Fuzzy aggregation"},"content":{"rendered":"\n<p id=\"block-c8354265-15ed-4fa8-a2e2-67dd360afb2e\"><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Instructions_for_use\" >Instructions for use<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Settings_window\" >Settings window<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#%E2%80%9CLayer_1%E2%80%9D_and_%E2%80%9CLayer_2%E2%80%9D_fields\" >\u201cLayer 1\u201d and \u201cLayer 2\u201d fields<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#%E2%80%9CFuzzy_field_1%E2%80%9D_and_%E2%80%9CFuzzy_field_2%E2%80%9D_fields\" >\u201cFuzzy field 1\u201d and \u201cFuzzy field 2\u201d fields<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Spatial_operation_type\" >Spatial operation type<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Name_of_the_result_layer\" >Name of the result layer<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Transformation_history\" >Transformation history<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Define_the_aggregation_function\" >Define the aggregation function<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Procedure_for_determining_the_aggregation_operation\" >Procedure for determining the aggregation operation.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#The_three_types_of_functions_implemented\" >The three types of functions implemented<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Criteria_of_equal_importance_symmetrical\" >Criteria of equal importance (symmetrical)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Adjustment_method_for_asymmetric_criteria\" >Adjustment method for asymmetric criteria<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Adjustment_method_for_unusual_symmetrical_criteria\" >Adjustment method for unusual symmetrical criteria<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/fuzzy-aggregation\/#Resulting_layer\" >Resulting layer<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"block-f7019433-aada-456e-a084-dbd8a2e2608b\"><span class=\"ez-toc-section\" id=\"Instructions_for_use\"><\/span>Instructions for use<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-7f5791df-f988-4dce-8cfb-50e1657ca85a\"><span class=\"ez-toc-section\" id=\"Settings_window\"><\/span>Settings window<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image\" id=\"block-d241354b-ae91-4574-96d4-a5b41dc77f5e\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_window.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"604\" width=\"640\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_window.jpg?resize=640%2C604&#038;ssl=1\" alt=\"L\u2019attribut alt de cette image est vide, son nom de fichier est fzyaggr_window-1024x967.jpg.\"\/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-7f556a85-196f-4206-803c-6f2a43673b39\"><span class=\"ez-toc-section\" id=\"%E2%80%9CLayer_1%E2%80%9D_and_%E2%80%9CLayer_2%E2%80%9D_fields\"><\/span>\u201cLayer 1\u201d and \u201cLayer 2\u201d fields<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The \u201clayers\u201d fields display the list of loaded layers, limited to <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/geopackage-format-and-qgis-3\/\">geopackage<\/a> tables. The current version only takes into account data stored in geopackage files (gpkg).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E2%80%9CFuzzy_field_1%E2%80%9D_and_%E2%80%9CFuzzy_field_2%E2%80%9D_fields\"><\/span>\u201cFuzzy field 1\u201d and \u201cFuzzy field 2\u201d fields<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Once the input layers have been selected, these drop-down menus display all the fields suffixed with _fuzzy for each layer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Spatial_operation_type\"><\/span>Spatial operation type<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"block-c41d0e90-8340-475f-8b2e-b6fff4a73e08\">This option allows you to manage the spatial extent of the resulting layer.<\/p>\n\n\n\n<figure class=\"wp-block-image\" id=\"block-2cc8e752-9484-4a34-ba8f-73055365260d\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_spatial_op.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"604\" width=\"640\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_spatial_op.jpg?resize=640%2C604&#038;ssl=1\" alt=\"L\u2019attribut alt de cette image est vide, son nom de fichier est fzyaggr_spatial_op-1024x967.jpg.\"\/><\/a><\/figure>\n\n\n\n<p id=\"block-a362e16f-9c38-4e30-b6f3-35b50bd66b12\">The <strong><em>intersection<\/em><\/strong> option keeps in the result layer the extent corresponding to the overlap of the two input layers. For each intersection, the result attribute is calculated using the function defined below. However, this means that if a layer has no data for an area, that area is ignored in the result layer. In a process involving several aggregations of different extents, the result layer will be significantly reduced. Furthermore, the absence of data for an area will prevent it from being \u201ccaught up\u201d in subsequent aggregations.<\/p>\n\n\n\n<p>The <strong><em>union <\/em><\/strong>option keeps the extent corresponding to the two input layers in the result layer. For each overlapping area, the result attribute is calculated using the function defined below. For areas where one of the two layers has no data, the result attribute is calculated using the function defined below, considering that the value of the missing layer is \u201cvery bad.\u201d In a process involving several aggregations of different extents, the resulting layer will not be truncated at all. Furthermore, the absence of data in an area will not prevent it from being \u201ccaught up\u201d in subsequent aggregations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Name_of_the_result_layer\"><\/span>Name of the result layer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"block-3f64b3b3-b43d-4c6e-a363-dfca0ce552d6\">You can name the aggregated layer freely, but it will have the suffix \u201c<strong><em>_agg<\/em><\/strong>\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-7eef0eee-2760-498a-8c3a-586f1117c09b\"><span class=\"ez-toc-section\" id=\"Transformation_history\"><\/span>Transformation history<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"block-f3e5eece-17df-4177-8112-20257d178352\">Each time a transformation or aggregation is performed by the plugin, a line is added to a history management table, metafuzzy, which is created and maintained within the data geopackage.<\/p>\n\n\n\n<figure class=\"wp-block-image\" id=\"block-fbf590f1-c68a-4ff4-9ccd-1b66a599402e\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyattr_history.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"243\" width=\"640\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyattr_history.jpg?resize=640%2C243&#038;ssl=1\" alt=\"L\u2019attribut alt de cette image est vide, son nom de fichier est fzyattr_history-1024x388.jpg.\"\/><\/a><\/figure>\n\n\n\n<p id=\"block-7539fdca-6298-4f8d-b511-bf2188ff5b07\">In the case of fuzzy aggregations, the fields filled in are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>field: the name of the aggregated field<\/li>\n\n\n\n<li>function: the type of spatial operation and the selected function with a numerical code representing the answer to each of the three questions (1=very good, 5=very bad)<\/li>\n\n\n\n<li>params: details of the numerical parameters used to generate unlisted functions<\/li>\n\n\n\n<li>source1: the name of source layer 1 and its attribute<\/li>\n\n\n\n<li>source2: the name of source layer 2 and its attribute<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-c2b0c4ea-e729-47bd-9334-df63f1ba13d8\"><span class=\"ez-toc-section\" id=\"Define_the_aggregation_function\"><\/span>Define the aggregation function<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image\" id=\"block-1d944084-270c-4db5-b412-f89c3af4cf1e\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_fonction.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"249\" width=\"640\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_fonction.jpg?resize=640%2C249&#038;ssl=1\" alt=\"L\u2019attribut alt de cette image est vide, son nom de fichier est fzyaggr_fonction-1024x399.jpg.\"\/><\/a><\/figure>\n\n\n\n<p id=\"block-1c0b56e4-9736-44ce-8c5f-50b95f588bbd\">You must select an answer for each of the three questions.<\/p>\n\n\n\n<p id=\"block-b4a29892-85a3-4e23-8afd-82a0613b8784\">If you consider that reversing the two criteria changes your answers (asymmetry of criteria), check the Verify symmetry box. A fourth question will allow you to enter your answer.<\/p>\n\n\n\n<figure class=\"wp-block-image\" id=\"block-fd1c4707-fe63-4e0a-a9a9-22864ec8b7cc\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_fonction_assym.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"341\" width=\"640\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/fzyaggr_fonction_assym.jpg?resize=640%2C341&#038;ssl=1\" alt=\"L\u2019attribut alt de cette image est vide, son nom de fichier est fzyaggr_fonction_assym-1024x545.jpg.\"\/><\/a><\/figure>\n\n\n\n<p id=\"block-f6146936-e33e-42db-8e9f-15b10bffc980\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Procedure_for_determining_the_aggregation_operation\"><\/span>Procedure for determining the aggregation operation.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>When aggregating two objectives, there is a simple procedure for determining the type of operation to be performed. It consists of presenting the decision-maker with three typical situations and asking them to evaluate them. Based on the three responses given, a catalog of functions is searched to find the one that best matches the decision-maker&rsquo;s wishes.<\/p>\n\n\n\n<p>The three typical situations (S1, S2, S3) are chosen according to two criteria (C1, C2) so that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8211; S1 is incompatible (grade E or 0) with C1, but fully compatible (grade A or 1) with C2;<\/li>\n\n\n\n<li>&#8211; S2 is moderately compatible (grade C or 0.5) with both objectives C1 and C2;<\/li>\n\n\n\n<li>&#8211; S3 is moderately compatible (grade C or 0.5) with C1 and fully compatible (grade A or 1) with C2.<\/li>\n<\/ul>\n\n\n\n<p>This gives us three answers (R1, R2, R3), from which we seek the aggregation operation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"The_three_types_of_functions_implemented\"><\/span>The three types of functions implemented<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Two situations are to be studied:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a) two criteria of equal importance;<\/li>\n\n\n\n<li>b) two criteria of unequal importance<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Criteria_of_equal_importance_symmetrical\"><\/span>Criteria of equal importance (symmetrical)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Two criteria are of equal importance if the aggregation function is symmetrical, i.e. if the answer to the three evaluation questions is the same when the order of the criteria is reversed.<\/p>\n\n\n\n<p>In this case, based on the three answers (A1, A2, A3), the aggregation operation is sought in the following table:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"1024\" data-attachment-id=\"15104\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/agregation-floue\/agreg_fonctions1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?fit=948%2C2489&amp;ssl=1\" data-orig-size=\"948,2489\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"agreg_fonctions1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?fit=390%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?resize=390%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-15104\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?resize=390%2C1024&amp;ssl=1 390w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?resize=114%2C300&amp;ssl=1 114w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?resize=768%2C2016&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?resize=585%2C1536&amp;ssl=1 585w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?resize=780%2C2048&amp;ssl=1 780w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/agreg_fonctions1-1.jpg?w=948&amp;ssl=1 948w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/a><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adjustment_method_for_asymmetric_criteria\"><\/span>Adjustment method for asymmetric criteria<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>When a user defines a fuzzy aggregation function based on non-symmetrical responses (e.g., certain criteria deemed more important than others, or combinations deemed atypical), the plugin uses an approximation method to automatically generate a custom aggregation function.<\/p>\n\n\n\n<p>The generate_asymmetric_function(code) function:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Key points defined by the user\n<ul class=\"wp-block-list\">\n<li>The user chooses four aggregation values corresponding to reference situations:\n<ul class=\"wp-block-list\">\n<li>(1, 0): criterion A completely true, criterion B completely false-&gt;<strong><em>vA1B0<\/em><\/strong><\/li>\n\n\n\n<li>(0.5, 0.5): both criteria average-&gt;<strong><em>vA05B05<\/em><\/strong><\/li>\n\n\n\n<li>(0.5, 1): criterion A average, criterion B completely true-&gt;<strong><em>vA05B1<\/em><\/strong><\/li>\n\n\n\n<li>(0, 1): criterion A completely false, criterion B completely true-&gt;<strong><em>vA0B1<\/em><\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>These values are encoded as a 4-digit code (each digit from 0 to 4 corresponds to a degree of satisfaction between 1.0 and 0.0).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Construction of the fuzzy function\n<ul class=\"wp-block-list\">\n<li>For the four key points, the values are assigned directly.<\/li>\n\n\n\n<li>For all other combinations (x, y), the value is calculated by weighted bilinear interpolation, using the formula:\n<ul class=\"wp-block-list\">\n<li>vA05B05\u22c5x\u22c5y+vA05B1\u22c5x\u22c5\u2223x\u2212y\u2223+vA0B1\u22c5(1\u2212x)\u22c5y<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>This formula produces a continuous surface that remains consistent with the defined key points.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Result\n<ul class=\"wp-block-list\">\n<li>The returned function can be applied to any pair (x, y) of fuzzy values.<\/li>\n\n\n\n<li>A parameter dictionary is also returned, documenting the type, code, points<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adjustment_method_for_unusual_symmetrical_criteria\"><\/span>Adjustment method for unusual symmetrical criteria<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The triplets presented in the function table above comply with the following constraints:<\/p>\n\n\n\n<p>1) R3 &gt;= max( R1,R2), the evaluation of a situation that completely satisfies criterion 2 and moderately satisfies criterion 1 must be at least equal to the best evaluation of the other two situations (R1 and R2), one of which does not satisfy the first criterion at all and the other of which only moderately satisfies both criteria;<\/p>\n\n\n\n<p>2) R3 &gt;= grade C or 0.5, full satisfaction of the second criterion cannot cause the overall satisfaction to fall below the level of satisfaction of the first criterion.<\/p>\n\n\n\n<p>However, although this logic is used in most applications, it may not be appropriate in very specific situations. In this case, the plugin uses the generate_fuzzy_function(code) function to automatically generate a suitable aggregation function.<\/p>\n\n\n\n<p>A warning message indicates that an unusual combination of responses has been encountered.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Key points defined by the user\n<ul class=\"wp-block-list\">\n<li>The user defines three reference situations, coded with three digits (from 0 to 4) representing a degree of aggregation between 1.0 and 0.0:\n<ul class=\"wp-block-list\">\n<li>(1, 0) or (0, 1): one criterion is completely true, the other completely false-&gt;<strong><em>v1<\/em><\/strong><\/li>\n\n\n\n<li>(0.5, 0.5): both criteria are average -&gt;<strong><em>v2<\/em><\/strong><\/li>\n\n\n\n<li>(0.5, 1) or (1, 0.5): one criterion is average, the other is completely true-&gt;<strong><em>v3<\/em><\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Construction of the symmetric fuzzy function\n<ul class=\"wp-block-list\">\n<li>The values of the three key points are assigned directly according to the code provided.<\/li>\n\n\n\n<li>For all other pairs (x, y), the value is estimated by continuous interpolation using the formula:\n<ul class=\"wp-block-list\">\n<li>v2\u22c5x\u22c5y+v3\u22c5\u2223x\u2212y\u2223<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Symmetry is respected because the formula and key points are identical if x and y are swapped.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Result\n<ul class=\"wp-block-list\">\n<li>The returned function can be applied to any pair (x, y) of fuzzy values.<\/li>\n\n\n\n<li>A parameter dictionary is also returned, documenting the type, code, key points, and approximation formula.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Resulting_layer\"><\/span>Resulting layer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The resulting layer is automatically added to the current QGIS project, with a \u201cgraded\u201d symbology on the aggregation attribute field..<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"340\" data-attachment-id=\"15351\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/agregation-floue\/resultat-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?fit=1920%2C1020&amp;ssl=1\" data-orig-size=\"1920,1020\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"resultat\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?fit=640%2C340&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?resize=640%2C340&#038;ssl=1\" alt=\"\" class=\"wp-image-15351\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?resize=1024%2C544&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?resize=300%2C159&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?resize=768%2C408&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?resize=1536%2C816&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?w=1920&amp;ssl=1 1920w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/08\/resultat.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Instructions for use Settings window \u201cLayer 1\u201d and \u201cLayer 2\u201d fields The \u201clayers\u201d fields display the list of loaded layers, limited to geopackage tables. The current version only takes into account data stored in geopackage files&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-15078","page","type-page","status-publish","hentry"],"aioseo_notices":[],"campaignId":"","jetpack_shortlink":"https:\/\/wp.me\/P6XU0A-3Vc","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages\/15078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=15078"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/pages\/15078\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=15078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}