Nous vous présentons un programme destiné à l’importation de fichiers KMZ provenant de points définis à l’aide du logiciel Google Earth. L’objectif de ce programme est de rechercher des alignements composés d’au moins trois points parmi ceux fournis. Parallèlement, la carte située à droite génère un jeu de points aléatoires, permettant ainsi de comparer le nombre d’alignements réels identifiés avec ceux détectés parmi les points aléatoires.
Nous avons développer deux autres méthodes dans le cadre du film « Arpenteurs du Néolithique » dans le but de partager nos outils et méthodes avec les internautes passionnés et curieux.
- Calculateur de probabilité d’alignement et de distances géométriques
- Détecteur d’alignement VC randomisation (ci dessous)
- Comparateur d’alignement avec une randomisation aléatoire.
La combinaison de ces 3 outils permet d’affirmer si oui ou non nous avons à faire à un alignement qui n’est pas explicable par le hasard.
Les paramètres à régler sont :
- Le nombre de points alignés (entre 3 et 5 c’est déjà bien) au delà c’est très rares.
- La distance de laquelle s’écarte les points de la ligne théorique parfaite.
- Et enfin, nous avons mi un paramètre d’exclusion des points trop proches que vous pouvez régler au cas par cas. Par exemple pour les dolmens il n’est pas rare que 2 à 5 dolmens se trouvent dans un périmètre de quelques dizaines de mètres. De fait, si la bande de tolérance est trop grande vous pouvez avoir des dolmens compté dans l’alignement qui ne devaient pas l’être.
Il est impératif, si vous devez manipuler cet outil, de faire preuve de prudence. En effet, si vous cherchez à démontrer que les églises Saint-Michel sont alignées, il est nécessaire de prendre en compte toutes les églises Saint-Michel de la zone dans votre jeu KMZ issu de Google Earth, tout en intégrant avec précision la distance à laquelle s’écartent les points.
Il y a deux versions du codes qui parfois ne fonctionne pas sur certain navigateurs :
CODE 1
Résultats
Nombre d'alignements réels détectés: 0
Nombre d'alignements aléatoires détectés: 0
CODE 2
Détection d’alignements dans un fichier KMZ
Résultats
Nombre d’alignements réels détectés: 0
Nombre d’alignements aléatoires détectés: 0
Toutefois, attention à certaines interprétations loufoques. Si vous testez des menhirs dans une vallée, ou à proximité d’un cours d’eau, il est probable que la topographie conditionne en partie votre alignement. On peut aussi prendre l’exemple des antennes de relais téléphoniques qui sont réparties en suivant à peu près des axes de communication routiers, et de fait, cela génère plus d’alignement. Mais cela ne veut pas dire qu’il était intentionnel d’aligner les antennes de relais téléphoniques. On sait aussi que le maillage des antennes relais repose sur un modèle de cellules hexagonales — c’est ce qu’on appelle le maillage cellulaire idéal. Une station de base typique (antenne relais) utilise généralement : 3 antennes directionnelles sur un même pylône, chaque antenne couvrant un secteur de 120° (360° ÷ 3). Cela permet d’utiliser les fréquences plus efficacement, de maximiser la couverture circulaire et de réduire les interférences intersectorielles. On peut rencontrer le même cas de figure avec les réseaux de fibres optiques qui limitent autant que possible les changements de direction depuis les Points de Mutualisation de Zone (PMZ). C’est pour cela que nous avons mis un générateur de points aléatoires.
Enfin, si l’on découvre un alignement de montagnes, cela ne veut pas dire non plus que les humains ont placé ces montagnes là, mais que des conditions géologiques et volcaniques peuvent expliquer certains alignements de montagnes. Cela est particulièrement connu avec les volcans qui se forment sur des lignes de failles, comme c’est le cas de la Chaîne des Puys, dans le Puy-de-Dôme.
En revanche, si l’on découvre un alignement de dolmens, ou de menhirs, ou d’églises qui ne sont pas soumis à des contraintes topographiques, on peut dès lors envisager qu’il s’agit d’une disposition intentionnelle, car ce sont bien des œuvres de conceptions humaines.
- point, index, self) => self.findIndex(p => haversine(p, point) = minAlignPoints) { alignedPoints.sort((a, b) => a.lat - b.lat || a.lng - b.lng); let key = alignedPoints.map(p => `${p.lat},${p.lng}`).join("-"); if (!alignments.some(a => a.key === key[↩]
- ) => ({ lat: bounds.getSouth() + (Math.random() * (bounds.getNorth() - bounds.getSouth([↩]
- y2 - y1) * x0 - (x2 - x1) * y0 + x2 * y1 - y2 * x1); let den = Math.sqrt((y2 - y1) ** 2 + (x2 - x1) ** 2); return num / den * 111139; // Conversion en mètres } function haversine(p1, p2) { let R = 6371e3; let φ1 = p1.lat * Math.PI / 180, φ2 = p2.lat * Math.PI / 180; let Δφ = (p2.lat - p1.lat) * Math.PI / 180; let Δλ = (p2.lng - p1.lng) * Math.PI / 180; let a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ/2) * Math.sin(Δλ/2); return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a[↩]
Soyez le premier à commenter