bassin_vienne = FileAttachment("layers/bassin_vienne.geojson").json();
departement = FileAttachment("layers/departement.geojson").json();
region = FileAttachment("layers/region.geojson").json();
epci = FileAttachment("layers/epci.geojson").json();
perimetre = FileAttachment("layers/perimetre.json").json();
slgri = FileAttachment("layers/slgri.json").json();
tri = FileAttachment("layers/tri.json").json();
zone_inondable = FileAttachment("layers/zone_inondable.geojson").json();
indicateurs = FileAttachment("layers/indicateurs.json").json();
cours_d_eau = FileAttachment("layers/cours_d_eau.geojson").json();
indicateursGeojson = FileAttachment("layers/indicateurs.geojson").json();
batiments = FileAttachment("layers/batiments_hauteur.geojson").json();map = {
const container = html`<div class="map-container" id="map" style="height: 665px; width: 100%;"></div>`;
yield container;
<!-- const sourcePlanIGN = { -->
<!-- style: 'normal', -->
<!-- format: 'image/png', -->
<!-- layer: 'GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2' -->
<!-- }; -->
const sourceOrtho = {
style: 'normal',
format: 'image/jpeg',
layer: 'HR.ORTHOIMAGERY.ORTHOPHOTOS'
};
const sourceOSM = {
tiles: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
minzoom: 0,
maxzoom: 19
};
const map = new maplibregl.Map({
container: container,
style: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',
<!-- center: [-0.04, 46.3051], -->
zoom: 11
});
map.addControl(new maplibregl.FullscreenControl(), 'top-right');
map.addControl(new maplibregl.NavigationControl({ visualizePitch: true }), 'top-left');
map.addControl(new maplibregl.ScaleControl({ maxWidth: 80, unit: 'metric' }));
const toggleStyle = (useOrtho) => {
if (useOrtho) {
map.setLayoutProperty('orthoIGN', 'visibility', 'visible');
map.setLayoutProperty('OSM', 'visibility', 'none');
} else {
map.setLayoutProperty('orthoIGN', 'visibility', 'none');
map.setLayoutProperty('OSM', 'visibility', 'visible');
}
};
map.on('load', () => {
map.fitBounds(
[
[-0.04, 46.3051], // Sud-Ouest
[0.7741, 46.8565] // Nord-Est
],
{
padding: 20,
linear: true,
duration: 0
}
);
// Ajout des fonds raster IGN
<!-- map.addSource('raster-planign', { -->
<!-- type: 'raster', -->
<!-- tiles: [ -->
<!-- `https://data.geopf.fr/wmts?SERVICE=WMTS&style=${sourcePlanIGN.style}&VERSION=1.0.0&REQUEST=GetTile&format=${sourcePlanIGN.format}&layer=${sourcePlanIGN.layer}&tilematrixset=PM&TileMatrix={z}&TileCol={x}&TileRow={y}` -->
<!-- ], -->
<!-- tileSize: 256, -->
<!-- attribution: '© <a href="https://www.ign.fr/">IGN</a>', -->
<!-- minzoom: 0, -->
<!-- maxzoom: 22 -->
<!-- }); -->
map.addSource('raster-ortho', {
type: 'raster',
tiles: [
`https://data.geopf.fr/wmts?SERVICE=WMTS&style=${sourceOrtho.style}&VERSION=1.0.0&REQUEST=GetTile&format=${sourceOrtho.format}&layer=${sourceOrtho.layer}&tilematrixset=PM&TileMatrix={z}&TileCol={x}&TileRow={y}`
],
tileSize: 256,
attribution: '© <a href="https://www.ign.fr/">IGN</a>',
minzoom: 0,
maxzoom: 22
});
map.addSource('raster-osm', {
type: 'raster',
tiles: [
'https://tile.openstreetmap.org/{z}/{x}/{y}.png'
],
tileSize: 256,
attribution:
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
minzoom: 0,
maxzoom: 19
});
<!-- map.addLayer({ -->
<!-- id: 'planIGN', -->
<!-- type: 'raster', -->
<!-- source: 'raster-planign', -->
<!-- layout: { visibility: 'visible' } -->
<!-- }); -->
map.addLayer({
id: 'orthoIGN',
type: 'raster',
source: 'raster-ortho',
layout: { visibility: 'none' }
});
map.addLayer({
id: 'OSM',
type: 'raster',
source: 'raster-osm',
layout: { visibility: 'visible' } // tu peux le laisser caché au départ si tu veux le basculer ensuite
});
const layersData = [
{ data: bassin_vienne, type: 'line', id: 'bassinvienneLayer', color: 'green', layout: {visibility:'none'}},
{ data: region, type: 'line', id: 'regionLayer', color: 'red', layout: {visibility:'none'} },
{ data: departement, type: 'line', id: 'departementLayer', color: '#a772b9', width: 2, layout:{visibility:'none'}},
{ data: epci, type: 'line', id: 'epciLayer', color: '#567ae3', layout: {visibility:'none'} },
{ data: indicateursGeojson, // GeoJSON contenant une propriété 's31atx'
type: 'fill',
id: 'indicateurs26aLayer',
opacity: 0.9,
width: 1,
dynamicColor: {
property: 's26a',
// La logique exacte de la légende à appliquer :
// - 0 ou null => #d9d9d9
// - < 150 => #f9f0d9
// - < 500000 => #fdb77a
// - < 2000000 => #ec603F
// - >= 2000000 => #b30000
mapping: {
'0': '#d9d9d9',
'5000': '#f7fcf5',
'24000': '#b2e0ab',
'60000': '#3da75a',
'60001': '#00441b'
},
default: '#d9d9d9' // utilisé si null, undefined ou < 150
},
layout: { visibility: 'visible' }
},
{ data: cours_d_eau, type: 'line', id: 'coursdeauLayer', color: '#b4c3ef' , width: 2, opacity: 1,
layout: {visibility:'visible'} },
{ data: zone_inondable, type: 'fill', id: 'zoneinondableLayer', color: '#b4c3ef' , width: 2, opacity: 1,
layout: {visibility:'visible'} },
{ data: batiments, type: 'fill-extrusion', id: 'batimentsLayer', width:2, opacity: 1, colorByType: 'ff_dteloctxt',
heightProperty: 'hauteur',layout: {visibility:'none'}}
];
// Créer le conteneur
const legend = document.createElement('div');
legend.id = 'legend';
legend.style.position = 'absolute';
legend.style.top = '82%';
legend.style.right = '10px';
legend.style.transform = 'translateY(-50%)';
legend.style.background = 'white';
legend.style.padding = '10px';
legend.style.fontSize = '12px';
legend.style.borderRadius = '4px';
legend.style.boxShadow = '0 1px 4px rgba(0,0,0,0.3)';
legend.style.zIndex = '1'; // pour passer au-dessus de la carte
// Contenu de la légende
legend.innerHTML = `
<strong>Dommages aux cultures en €</strong><br>
<div><span style="background:#d9d9d9;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> 0</div>
<div><span style="background:#f7fcf5;width:12px;height:12px;display:inline-block;margin-right:5px;border:1px solid #ccc;"></span> < 5000 </div>
<div><span style="background:#b2e0ab;width:12px;height:12px;display:inline-block;margin-right:5px;border:1px solid #ccc;"></span> 5000 - 24000 </div>
<div><span style="background:#3da75a;width:12px;height:12px;display:inline-block;margin-right:5px;"></span>24000 - 60000</div>
<div><span style="background:#00441b;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> > 60000</div>
`;
// L’ajouter à la carte (le container MapLibre)
map.getContainer().appendChild(legend);
//afin de lier la légende à l'indicateur
function updateLegendVisibility() {
const visibility = map.getLayoutProperty('indicateurs26aLayer', 'visibility');
if (visibility === 'none') {
legend.style.display = 'none';
} else {
legend.style.display = 'block';
}
}
map.on('idle', updateLegendVisibility);
// Créer le conteneur de légende des bâtiments
const batimentLegend = document.createElement('div');
batimentLegend.id = 'batiment-legend';
batimentLegend.style.position = 'absolute';
batimentLegend.style.top = '81%';
batimentLegend.style.left = '10px';
batimentLegend.style.transform = 'translateY(-50%)';
batimentLegend.style.background = 'white';
batimentLegend.style.padding = '10px';
batimentLegend.style.fontSize = '12px';
batimentLegend.style.borderRadius = '4px';
batimentLegend.style.boxShadow = '0 1px 4px rgba(0,0,0,0.3)';
batimentLegend.style.zIndex = '1';
// Contenu de la légende
batimentLegend.innerHTML = `
<strong>Type de bâtiment</strong><br>
<div><span style="background:#1f77b4;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> Activité</div>
<div><span style="background:#2ca02c;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> Appartement</div>
<div><span style="background:#d9d9d9;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> Aucun local</div>
<div><span style="background:#9467bd;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> Dépendance</div>
<div><span style="background:#ff7f0e;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> Maison</div>
<div><span style="background:#e377c2;width:12px;height:12px;display:inline-block;margin-right:5px;"></span> Mixte</div>
`;
// L’ajouter à la carte
map.getContainer().appendChild(batimentLegend);
batimentLegend.style.display = 'none'; // Permet de supprimer l'affichage de la légende au chargement de la page
// Lier la visibilité à la couche bâtiment
function updateBatimentLegendVisibility() {
const visibility = map.getLayoutProperty('batimentsLayer', 'visibility');
//batimentLegend.style.display = (visibility === 'none') ? 'none' : 'block';
if (visibility === 'none') {
batimentLegend.style.display = 'none';
} else {
batimentLegend.style.display = 'block';
}
}
map.on('idle', updateBatimentLegendVisibility);
// Ajout des couches vectorielles
layersData.forEach(layer => {
map.addSource(layer.id, {
type: 'geojson',
data: layer.data
});
const layerConfig = {
id: layer.id,
type: layer.type,
source: layer.id,
paint: {},
layout: layer.layout
};
if (layer.type === 'fill') {
if (layer.dynamicColor) {
const prop = ['get', layer.dynamicColor.property];
layerConfig.paint['fill-color'] = [
'case',
['!', ['has', layer.dynamicColor.property]], '#d9d9d9', // Propriété absente
['any', ['==', ['get', layer.dynamicColor.property], null], ['==', ['get', layer.dynamicColor.property], 0]], '#d9d9d9', // null ou 0
['<', ['get', layer.dynamicColor.property], 5000], '#f7fcf5',
['<', ['get', layer.dynamicColor.property], 24000], '#b2e0ab',
['<', ['get', layer.dynamicColor.property], 60000], '#3da75a',
['>', ['get', layer.dynamicColor.property], 60000], '#00441b',
'#d9d9d9' // fallback
];
} else {
layerConfig.paint['fill-color'] = layer.color || '#000000';
}
layerConfig.paint['fill-opacity'] = layer.opacity || 0.4;
layerConfig.paint['fill-outline-color'] = '#000000';
} else if (layer.type === 'line') {
layerConfig.paint['line-color'] = layer.color || '#000000';
layerConfig.paint['line-width'] = layer.width || 1;
} else if (layer.type === 'fill-extrusion') {
if (layer.colorByType === 'ff_dteloctxt') {
layerConfig.paint['fill-extrusion-color'] = [
'match',
['get', 'ff_dteloctxt'],
'ACTIVITE', '#1f77b4',
'APPARTEMENT', '#2ca02c',
'AUCUN LOCAL', '#d9d9d9',
'DEPENDANCE', '#9467bd',
'MAISON', '#ff7f0e',
'MIXTE', '#e377c2',
'#000000' // fallback
];
} else {
layerConfig.paint['fill-extrusion-color'] = layer.color || '#000000';
}
layerConfig.paint['fill-extrusion-height'] = ['get', layer.heightProperty || 'hauteur'];
layerConfig.paint['fill-extrusion-base'] = 0;
layerConfig.paint['fill-extrusion-opacity'] = layer.opacity || 0.9;
}
map.addLayer(layerConfig);
map.addLayer({
id: 'indicateurs26aLabels',
type: 'symbol',
source: 'indicateurs26aLayer', // le même id que ta source GeoJSON
layout: {
'text-field': ['get', 'nom'],
'text-size': 11,
'text-font': ['Open Sans Bold', 'Arial Unicode MS Bold'],
'text-offset': [0, 0.6],
'text-anchor': 'top'
},
paint: {
'text-color': '#000000',
'text-halo-color': '#ffffff',
'text-halo-width': 1
}
});
map.addLayer({
id: 'indicateurs26a-hover',
type: 'line',
source: 'indicateurs26aLayer', // même source
paint: {
'line-color': '#000',
'line-width': 2
},
filter: ['==', 'nom', ''] // vide au début
});
map.on('click', 'indicateurs26aLayer', (e) => {
const feature = e.features[0];
const nom = feature.properties.nom || 'Non disponible';
const population = feature.properties.population
? feature.properties.population.toLocaleString('fr-FR') + ' habitants'
: 'Non disponible';
const s26aValue = parseFloat(feature.properties.s26a);
const dommages = (Number(s26aValue) || 0).toLocaleString('fr-FR');
const batimentsValue = feature.properties.nb_batiments;
const batiments = !isNaN(parseFloat(batimentsValue))
? parseInt(batimentsValue).toLocaleString('fr-FR')
: 'Non disponible';
const batindif = feature.properties.nb_bat_indif?.toLocaleString('fr-FR');
const batsportifValue = parseFloat(feature.properties.nb_bat_sportif);
const batsportif = (!isNaN(batsportifValue) ? batsportifValue : 0).toLocaleString('fr-FR');
const batagricolefValue = parseFloat(feature.properties.nb_bat_agricole);
const batagricole = (!isNaN(batagricolefValue) ? batagricolefValue : 0).toLocaleString('fr-FR');
const batresidentielValue = parseFloat(feature.properties.nb_bat_residentiel);
const batresidentiel = (!isNaN(batresidentielValue) ? batresidentielValue : 0).toLocaleString('fr-FR');
const batannexeValue = parseFloat(feature.properties.nb_bat_annexe);
const batannexe = (!isNaN(batannexeValue) ? batannexeValue : 0).toLocaleString('fr-FR');
const batreligieuxValue = parseFloat(feature.properties.nb_bat_religieux);
const batreligieux = (!isNaN(batreligieuxValue) ? batreligieuxValue : 0).toLocaleString('fr-FR');
const batindustrielValue = parseFloat(feature.properties.nb_bat_industriel);
const batindustriel = (!isNaN(batindustrielValue) ? batindustrielValue : 0).toLocaleString('fr-FR');
const batcommercialValue = parseFloat(feature.properties.nb_bat_commercial);
const batcommercial = (!isNaN(batcommercialValue) ? batcommercialValue : 0).toLocaleString('fr-FR');
const popupContent = `
<style>
.maplibregl-popup-content {
padding: 4px !important;
border: 1px solid;
border-radius: 8px;
width: max-content;
box-shadow: rgba(101, 147, 220, 0.2) 0px 4px 8px 0px;
border-color: rgba(101, 147, 220, 0.5);
}
</style>
<div style="font-family: sans-serif; font-size: 13px; margin:10px;">
<div style="background-color: #69774f; border: 1px solid; border-radius:8px; margin-bottom:16px; padding:10px; color:white;"><strong>
<center>${nom}</center>
</strong></div>
<p style="margin:auto;"><strong>Population :</strong> ${population}</p>
<p style="margin:auto;"><strong>Dommages aux cultures en € :</strong> ${dommages}</p>
</div>
`;
new maplibregl.Popup({closeButton: false})
.setLngLat(e.lngLat)
.setHTML(popupContent)
.addTo(map);
// Mettre à jour le conteneur HTML avec les informations spécifiques du marqueur
document.getElementById('donnees').innerHTML = `
<strong style="font-size:1.1em"><i class="bi bi-geo-alt-fill"></i> Commune :</strong> ${nom}<br>
<strong style="font-size:1.1em"><i class="bi bi-people-fill"></i> Nombre d'habitants :</strong> ${population}<br>
<strong style="font-size:1.1em"><i class="bi bi-house-fill"></i> Nombre de bâtiments :</strong> ${batiments}<br>
<div style="margin-left:2vw;">Dont : </div>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batindif}<strong> bâtiments indifférenciés</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batsportif}<strong> bâtiments sportifs</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batagricole}<strong> bâtiments agricoles</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batresidentiel}<strong> bâtiments résidentiels</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batannexe}<strong> bâtiments annexes</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batreligieux}<strong> bâtiments religieux</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batindustriel}<strong> bâtiments industriels</strong></h5></li>
<li style="margin-left:4vw;"><h5 style="font-size:1em;"> ${batcommercial}<strong> bâtiments commerciaux</strong></h5></li>
<div>Conséquences de l'aléa :</div>
<strong style="font-size:1.1em"><i class="fas fa-seedling"></i> Dommages aux cultures en € :</strong> ${dommages}<br>
`;
});
map.on('mousemove', 'indicateurs26aLayer', (e) => {
if (e.features.length > 0) {
const nomCommune = e.features[0].properties.nom;
map.setFilter('indicateurs26a-hover', ['==', 'nom', nomCommune]);
map.getCanvas().style.cursor = 'pointer';
}
});
map.on('mouseleave', 'indicateurs26aLayer', () => {
map.setFilter('indicateurs26a-hover', ['==', 'nom', '']);
map.getCanvas().style.cursor = '';
});
});
// Interface de contrôle des couches
const mapLayersDiv = document.createElement('div');
mapLayersDiv.classList.add('mapLayers');
mapLayersDiv.style.position = 'absolute';
mapLayersDiv.style.zIndex = '1000';
mapLayersDiv.innerHTML = `
<button id="toggleMapMenuButton" class="btn btn-light aria-label="Afficher les couches" title="Afficher les couches">
<img src="Images/icons/layers-half.svg" alt="Icône SVG" width="25" height="25">
</button>
<div id="layersList" style="display: none; background: white; padding: 10px; border: 1px solid #ccc;"></div>
`;
map.getContainer().appendChild(mapLayersDiv);
const toggleableLayerIds = layersData.map(layer => layer.id);
const aliasLayerIds = {
bassinvienneLayer: 'Bassin de la Vienne',
regionLayer: 'Région',
departementLayer: 'Département',
epciLayer: 'Etablissement Public de Coopération Intercommunale',
coursdeauLayer: "Cours d'eau",
zoneinondableLayer: 'Zonage Inondable',
indicateurs26aLayer: "Dommages aux cultures en €",
batimentsLayer: "Bâtiments"
};
function toggleLayerVisibility(id, visible) {
const visibility = visible ? 'visible' : 'none';
if (map.getLayer(id)) {
map.setLayoutProperty(id, 'visibility', visibility);
}
}
const layersListDiv = mapLayersDiv.querySelector('#layersList');
toggleableLayerIds.forEach(id => {
const name = aliasLayerIds[id] || id;
const checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.id = id;
checkbox.className = 'form-check-input';
// ✅ Lire la visibilité actuelle directement dans la carte
map.once('idle', () => {
const visibility = map.getLayoutProperty(id, 'visibility');
checkbox.checked = visibility === 'visible';
});
checkbox.addEventListener('change', () => toggleLayerVisibility(id, checkbox.checked));
const label = document.createElement('label');
label.htmlFor = id;
label.className = 'form-check-label';
label.innerText = name;
const wrapper = document.createElement('div');
wrapper.className = 'form-check';
wrapper.appendChild(checkbox);
wrapper.appendChild(label);
layersListDiv.appendChild(wrapper);
});
document.getElementById('toggleMapMenuButton').addEventListener('click', () => {
layersListDiv.style.display = layersListDiv.style.display === 'none' ? 'block' : 'none';
});
// Menu bascule fond de plan
const mapMenuDiv = document.createElement('div');
mapMenuDiv.classList.add('mapFondDePlan');
mapMenuDiv.style.position = 'absolute';
mapMenuDiv.style.zIndex = '1000';
mapMenuDiv.innerHTML = `
<strong>Fond de plan :</strong>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="orthoCheckbox">
<label class="form-check-label" for="orthoCheckbox">Photos aériennes</label>
</div>
`;
map.getContainer().appendChild(mapMenuDiv);
document.getElementById('orthoCheckbox').addEventListener('change', function (e) {
e.preventDefault();
e.stopPropagation();
toggleStyle(this.checked);
});
});
};import { Plot as PlotTaux } from "@observablehq/plot";
import { Inputs as InputsTaux } from "@observablehq/inputs";
// Charger les données
data = FileAttachment("layers/data_s26a.json").json()
// Label du slider
html`<label for="slider-s114c" style="display: block;
margin-top: 1em;
font-weight: bold;
margin-bottom: 1em;
border: 1px solid rgba(0, 0, 0, 0.6);
box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.8);
border-radius: 8px;
padding: 5px;
text-align: center;
margin-right: 20%;
margin-left: 20%;">
Dommages aux cultures en €
</label>`data_s26a = FileAttachment("layers/data_s26a.json").json()
viewof slider_s26a = InputsTaux.range([0, 120000], {
value: 60000,
step: 10000,
//label: "Dommages aux logements (M€)"
})
sorted_s26a = data_s26a
.map(d => ({ ...d, s26a: +d.s26a || 0 }))
.filter(d => d.s26a <= slider_s26a)
.sort((a, b) => a.s26a - b.s26a)
PlotTaux.plot({
marks: [
PlotTaux.barY(sorted_s26a, {
x: d => d.nom,
y: d => d.s26a,
fill: d => {
const val = d.s26a;
if (val === 0) return "#d9d9d9";
if (val < 5000) return "#f7fcf5";
if (val < 24000) return "#b2e0ab";
if (val < 60000) return "#3da75a";
if (val > 60000) return "#00441b";
return "#67000d"; // >4
}
}),
PlotTaux.text(sorted_s26a, {
x: d => d.nom,
y: d => d.s26a,
text: d => d.s26a.toLocaleString("fr-FR"),
dy: -8,
fontSize: 9,
fill: "black",
textAnchor: "middle"
})
],
y: {
grid: true,
label: "Dommages aux cultures en €",
domain: [0, Math.max(...sorted_s26a.map(d => d.s26a))],
tickFormat: d => d.toLocaleString("fr-FR", { maximumFractionDigits: 0 })
},
x: {
label: "Commune",
tickRotate: -45,
labelAnchor: "right"
},
style: {
fontSize: "11px",
fontFamily: "sans-serif",
fontWeight: "bold"
},
width: window.innerWidth * 0.95,
height: window.innerHeight * 0.65,
marginBottom: 120,
marginTop: 50,
marginLeft: 80
})md`
<table style="width:90%; border-collapse: collapse; border:1px solid; text-align:center; margin:auto;">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<tr>
<th style="background-color:#88A9E3; border:1px solid;" colspan="2">Numéro d'indicateur</th>
<th style="border:1px solid;">Ind2/6a</th>
<th style="background-color:#88A9E3; border:1px solid;">Date de mise à jour</th>
<th style="border:1px solid;">31/05/2025</th>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Intitulé</td>
<td colspan="3" style="border:1px solid;">Dommages aux cultures en fonction de paramètres hydrauliques</td>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Objectif de la SNGRI</td>
<td colspan="3" style="border:1px solid;">Objectif n°2 : Stabiliser à court terme et réduire à moyen terme le coût des dommages liés à l’inondation</td>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Axe de vulnérabilité</td>
<td colspan="3" style="border:1px solid;">Axe 2/3 Les dommages aux activités et aux biens</td>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Source de vulnérabilité</td>
<td colspan="3" style="border:1px solid;">S2/6 Inondation, érosion, dépôts au sein des exploitations agricoles</td>
</tr>
</table>
<br>
<table style="width:90%; border-collapse: collapse; border:1px solid; text-align:center; margin:auto;">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Modalités du calcul</td>
<td colspan="3" style="border:1px solid;">Application de la méthode du référentiel national.
On utilise le tableau du guide AMC sur les dommages aux cultures (pour l’aléa fluvial), qui
dépendent des saisons, des types de culture, de la durée et de la hauteur de submersion.
La couche des cultures RPG de l’IGN (millésime 2019) est croisée avec la zone inondable
contenant l’information de hauteur d’eau. Afin de prendre en compte toutes les saisons, un ratio
est appliqué : 40 % des dommages pour le printemps et l’automne et 10 % pour l’été et l’hiver,
l’ensemble faisant 100 %.</td>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Échelle de représentation</td>
<td colspan="3" style="border:1px solid;">Communale</td>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Points de vigilance</td>
<td colspan="3" style="border:1px solid;">Tous les types de cultures du RPG ne sont pas répertoriés dans le guide AMC. Pour les cultures absentes, une correspondance avec celles existantes a été réalisée.</td>
</tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Table cible</td>
<td colspan="3" style="border:1px solid;">p_obj2_cout_dommages.s26a_dommages_cultures_zi</td>
</tr>
<tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Variables mobilisées</td>
<td colspan="3" style="border:1px solid;">Zx : zone inondable,<br> Zf : durée de submersion, <br> Oc7 : cultures</td>
</tr>
<tr>
<tr>
<td colspan="2" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Indicateur commun SLGRI Vienne/Clain</td>
<td colspan="3" style="border:1px solid;">non</td>
</tr>
<tr>
</table>
<br>
<table style="width:90%; border-collapse: collapse; border:1px solid; text-align:center; margin:auto;">
<colgroup>
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
<col style="width:10%;">
</colgroup>
<tr>
<td colspan="10" style="background-color:#88A9E3; border:1px solid; font-weight: bold;">Données sources</td>
</tr>
<tr>
<th style="background-color:#88A9E3; border:1px solid;" colspan="2">Désignation</th>
<th style="background-color:#88A9E3; border:1px solid;">Millésime</th>
<th style="background-color:#88A9E3; border:1px solid;">Nationale/locale</th>
<th style="background-color:#88A9E3; border:1px solid;">Format</th>
<th style="background-color:#88A9E3; border:1px solid;">Type</th>
<th style="background-color:#88A9E3; border:1px solid;" colspan="2">Producteur</th>
<th style="background-color:#88A9E3; border:1px solid;" colspan="2">Nom fichier</th>
</tr>
<tr>
<td colspan="2" style="border:1px solid;">Zone inondable</td>
<td style="border:1px solid;">2019</td>
<td style="border:1px solid;">Locale</td>
<td style="border:1px solid;">Shape</td>
<td style="border:1px solid;">Polygone</td>
<td colspan="2" style="border:1px solid;">Cerema</td>
<td colspan="2" style="border:1px solid;">zx_zone_inondable.shp</td>
</tr>
<tr>
<td colspan="2" style="border:1px solid;">Hauteurs d’eau par pas de 10 cm </td>
<td style="border:1px solid;">2019</td>
<td style="border:1px solid;">Locale</td>
<td style="border:1px solid;">Shape</td>
<td style="border:1px solid;">Polygone</td>
<td colspan="2" style="border:1px solid;">Cerema</td>
<td colspan="2" style="border:1px solid;">hauteur_pas_10cm.shp</td>
</tr>
<tr>
<td colspan="2" style="border:1px solid;">Parcelles agricoles Nouvelle-Aquitaine</td>
<td style="border:1px solid;">2019</td>
<td style="border:1px solid;">Nationale</td>
<td style="border:1px solid;">Shape</td>
<td style="border:1px solid;">Polygone</td>
<td colspan="2" style="border:1px solid;">IGN</td>
<td colspan="2" style="border:1px solid;">parcelles_graphiques.shp</td>
</tr>
<tr>
<td colspan="2" style="border:1px solid;">Fonction de dommages relative aux logements (pour l’aléa fluvial) du
guide AMC</td>
<td style="border:1px solid;">2016</td>
<td style="border:1px solid;">Nationale</td>
<td style="border:1px solid;">Csv</td>
<td style="border:1px solid;">Tableau</td>
<td colspan="2" style="border:1px solid;">CGDD</td>
<td colspan="2" style="border:1px solid;">amc_dommages_fluvial_cultures.csv</td>
</tr>
<tr>
<td colspan="2" style="border:1px solid;">Communes (BDTOPO)</td>
<td style="border:1px solid;">2020</td>
<td style="border:1px solid;">Nationale</td>
<td style="border:1px solid;">Shape</td>
<td style="border:1px solid;">Polygone</td>
<td colspan="2" style="border:1px solid;">IGN</td>
<td colspan="2" style="border:1px solid;">Commune.shp</td>
</tr>
</table>
` Incliner et faire tourner la carte
Maintenez enfoncé le bouton droit de la souris sur ce symbole
et déplacez le pour incliner le point de vue ou faire tourner la carte.
Zoomer sur la carte
Zoomer sur la carte (molette de la souris) pour visualiser les bâtiments.
Une illustration pour bien comprendre la carte interactive
