WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Recherche d'un processus d'historisation de base de données d'occupation des sols appliqué au référentiel géographique forestier de l'IGN

( Télécharger le fichier original )
par Romain Louvet
Université Paris Diderot - Paris 7 - M1 Géographie et Sciences des territoires 2013
  

précédent sommaire suivant

Extinction Rebellion

VI.D - « evenements_test.py »

# User : Romain Louvet, stagiaire

# 28/08/2013

# IGN, equipe produit forêt environnement, projet OCS & mise a jour du RGFor # Nom: evenements.py

# DESCRIPTION :

# Ce programme lit la table attributaire de la feature classe matrice_evenements sous forme d'un .csc convertit en

# convertit les colonnes en liste ; effectue des recherches dans ces listes afin de determiner le type d'evenement

# en remplissant la colonne EVEtest, puis attribue un NUMEVE

# Ce programme ne reconnait et n'a ete teste que pour les evenements "INC", "INT", "FUS" et "REM

# IMPORTANT :

# - avoir créé feature class matrice_evenements

# - avoir ajouté evenements de la mise a jour datee par la PVA

# - avoir un fichier texte lisible de la table attributaire :

# - ouvrir matrice_evenements dans arcmap, ouvrir sa table attributaire

# - "turn field off tous" les champs excepte OBJECTID, ENTITE_AV, PARTIE_AV, ENTITE_AP,

PARTIE_AP, NUMEVE, EVEtest

# - "Table options" > "select all"

# - clic droit bordure grise côté gauche du tableau > "copy selected"

# - coller selection dans tableau excel, enregistrer sous ex : EVE2010_65.csv

# liste des codes numeve

fichier = open(" C:/Users/Romain/Desktop/IGN/test_histoRGFOR_OCS/code_NUMEV065.txt","r") lire = fichier.read()

code_numeve = lire.split("\n")

# dernier code NUMEVE dans table "evenements" (entrer manuellement)

dernier = 0

try :

cle = code_numeve.index(dernier)

except ValueError:

cle = 0

fichier.close()

# ouvrir tableau en mode lecture

fichier = open(" C:/Users/Romain/Desktop/IGN/test_histoRGFOR_OCS/EVE2010_65.csv", "r") lire = fichier.read()

# les evenements

INC = "INC" INT = "INT" FUS = "FUS" SCI = "SCI" EXT = "EXT" REC = "REC"

xxi

REA = "REA" REM = "REM" DIV = "DIV"

# creer les listes de colonne

objectid = [] entiteAV = [] entiteAP = [] partieAV = [] partieAP = [] entparAV = [] entparAP = [] numeve = [] eveTEST = []

# listes lignes d'eve liINC = []

liNONINC = []

# transformation du contenu du fichier .csv en liste lignes = lire.splitlines()

lgr = len(lignes)

for i in range(lgr):

if i > 0:

ligne = lignes[i]

colonne = ligne.split(";") objectid.append(colonne[0]) entiteAV.append(colonne[1]) partieAV.append(colonne[2]) entiteAP.append(colonne[3]) partieAP.append(colonne[4]) numeve.append(colonne[5]) eveTEST.append("<Nul>")

entparAV.append(colonne[1]+colonne[2]) entparAP.append(colonne[3]+colonne[4])

### INCHANGE ###

# definition : intersection correspondant a la meme entite avant et apres le ou les evenements

for i in range(lgr-1): ii = int(i)-1

av = entparAV[ii] ap = entparAP[ii] if av == ap :

eveTEST[ii] = INC

liINC.append(objectid[ii])

numeve[ii] = code_numeve[cle] else:

liNONINC.append(objectid[ii])

xxii

lgrINC = len(liINC)

# prochain code cle = cle + 1

### INTEGRATION ###

# definition : l'entite est remplacee par entite preexistante

for i in liNONINC: ii = objectid.index(i)

eve = numeve[ii] av = entparAV[ii] ap = entparAP[ii]

# entite existant en T est unique rech = entparAV.count(av) if rech == 1:

# entite existant en T n'existe plus en T+1 rech1 = entparAP.count(av)

if rech1 == 0:

# successeur est inchange for j in liINC:

jj = objectid.index(j)

rechinv = entparAV[jj] if rechinv == ap: eveTEST[ii] = INT

### FUSION ###

# definition : l'entite est remplacee par une nouvelle entite qui remplace au moins # deux entites distinctes

# attention ! prendre en compte PARTIE sinon confondu avec reaffectation

for i in liNONINC: x = 0

ii = objectid.index(i) eve = numeve[ii] av = entiteAV[ii] ap = entiteAP[ii]

# entite existant en T est unique rech = entiteAV.count(av) if rech == 1:

# entite existant en T n'existe plus en T+1 rech1 = entiteAP.count(av)

if rech1 == 0:

xxiii

# successeur n'est pas inchange

for j in liINC:

jj = objectid.index(j)

rechinv = entiteAV[jj]

if rechinv != ap:

x = x+1

if x == lgrINC:

# successeur existe au moins 2 fois if entiteAP.count(ap)>=2:

# ce n'est pas une reaffectation a definir !!! eveTEST[ii] = FUS

### REMPLACEMENT ###

# definition : nouvelle entite avec la meme geometrie que precedente

for i in liNONINC: x = 0

ii = objectid.index(i) eve = numeve[ii] av = entparAV[ii] ap = entparAP[ii]

# entite existant en T est unique rech = entparAV.count(av) if rech == 1:

# entite existant en T n'existe plus en T+1 rech1 = entparAP.count(av)

if rech1 == 0:

# successeur n'est pas inchange

for j in liINC:

jj = objectid.index(j)

rechinv = entparAV[jj]

if rechinv != ap:

x = x+1

if x == lgrINC:

# successeur existe une seule fois if entparAP.count(ap)==1:

eveTEST[ii] = REM

numeve[ii] = code_numeve[cle]

# prochain code cle = cle + 1

### NUMEVE

# liste des num utilises

xxiv

num_ut = []

# pour chaque ligne de la colonne eveTEST

for i in range(lgr-1): oid = objectid[i] test = numeve[i]

# si la ligne n'a pas deja ete faite

if test == "<Nul>":

# cherche le type d'eve

eve = eveTEST[i]

# cherche l'identifiant ENTITE et PARTIE apres et avant

idAP = entparAP[i]

idAV = entparAV[i]

# INTEGRATION : if eve == INT:

for j in range(lgr-1): eve1 = eveTEST[j] oid1 = objectid[j] idAP1 = entparAP[j]

# meme evenement si deux lignes ont le meme id apres et le meme eve INT if idAP == idAP1 and eve == eve1:

numeve[j] = code_numeve[cle] # meme numeve

numeve[i] = code_numeve[cle]

# prochain code cle = cle + 1

# FUSION :

if eve == FUS:

for j in range(lgr-1): eve1 = eveTEST[j] oid1 = objectid[j] idAP1 = entparAP[j]

# meme evenement si deux lignes ont le meme id apres et le meme eve FUS if idAP == idAP1 and eve == eve1:

numeve[j] = code_numeve[cle] # meme numeve

numeve[i] = code_numeve[cle]

# prochain code cle = cle + 1

fichier1 = open(" C:/Users/Romain/Desktop/IGN/test_histoRGFOR_OCS/EVE2010_65test.csv", "w")

for i in range(lgr):

if i == 0:

fichier1.write(lignes[i]+"\n") else:

xxv

fichier1.write(objectid[i-1]+";"+entiteAV[i-1]+";"+partieAV[i-1]+";"+entiteAP[i-1]+";"+partieAP[i-1]+";"+numeve[i-1]+";"+eveTEST[i-1]+"\n")

fichier.close() fichier1.close()

xxvi

VII - Tableau statistique d'évolution de l'occupation des sols du jeu de données « RGFOR65_test »

Transition

/

événements

Division en

m2

Division en % du total moins (vide)

Extraction en

m2

Extraction % du total moins (vide)

BOSQUET - HRGFOR

 
 
 
 

BOSQUET - LA4

 
 
 
 

FF0 - FF1-00-00

 
 
 
 

FF0 - FO32

 
 
 
 

FF0 - HRGFOR

 
 
 
 

FF1-00 - HRGFOR

 
 
 
 

FF1-00 - TLHF

 
 
 
 

FF1-00-00 - FF31

 
 
 
 

FF1-00-00 - FO1

 
 
 
 

FF1-00-00 - HRGFOR

 
 

39 348,51

100,00

FF1-00-00 - LA4

 
 
 
 

FF1G01-01 - HRGFOR

 
 
 
 

FF1G01-01 - TLHF

 
 
 
 

FF2G61-61 - FF0

 
 
 
 

FF2G61-61 - FF2-90-90

 
 
 
 

FF32 - HRGFOR

 
 
 
 

FF32 - LA4

 
 
 
 

FO2 - FF0

 
 
 
 

FO2 - LA6

 
 
 
 

HRGFOR - BOSQUET

 
 
 
 

HRGFOR - LA4

 
 
 
 

HRGFOR - TLHF

 
 
 
 

LA4 - HRGFOR

 
 
 
 

LA4 - TLHF

 
 
 
 

LA6 - FF0

 
 
 
 

LA6 - HRGFOR

 
 
 
 

LA6 - TLHF

 
 
 
 

TLHFC1 - HRGFOR

 
 
 
 

TLHFC1 - LA4

 
 
 
 

TLHF - BOSQUET

 
 
 
 

TLHF - HRGFOR

6 749,44

27,56

 
 

TLHF - LA4

 
 
 
 
 
 
 
 
 

Total général

6 749,44

2,16

39 348,51

12,59

xxvii

Transition

/

événements

Intégration en

m2

Intégration % du total moins (vide)

Réaffectation en

m2

Réaffectation % du total moins (vide)

BOSQUET - HRGFOR

 
 
 
 

BOSQUET - LA4

2 782,39

100,00

 
 

FF0 - FF1-00-00

44 049,24

100,00

 
 

FF0 - FO32

 
 
 
 

FF0 - HRGFOR

 
 
 
 

FF1-00 - HRGFOR

 
 
 
 

FF1-00 - TLHF

 
 
 
 

FF1-00-00 - FF31

 
 
 
 

FF1-00-00 - FO1

 
 
 
 

FF1-00-00 - HRGFOR

 
 
 
 

FF1-00-00 - LA4

 
 
 
 

FF1G01-01 - HRGFOR

 
 
 
 

FF1G01-01 - TLHF

 
 
 
 

FF2G61-61 - FF0

 
 
 
 

FF2G61-61 - FF2-90-90

 
 
 
 

FF32 - HRGFOR

 
 
 
 

FF32 - LA4

 
 
 
 

FO2 - FF0

 
 

27 024,90

100,00

FO2 - LA6

 
 
 
 

HRGFOR - BOSQUET

 
 
 
 

HRGFOR - LA4

 
 
 
 

HRGFOR - TLHF

 
 
 
 

LA4 - HRGFOR

 
 
 
 

LA4 - TLHF

 
 
 
 

LA6 - FF0

 
 
 
 

LA6 - HRGFOR

 
 
 
 

LA6 - TLHF

 
 
 
 

TLHFC1 - HRGFOR

2 369,71

100,00

 
 

TLHFC1 - LA4

245,86

100,00

 
 

TLHF - BOSQUET

 
 
 
 

TLHF - HRGFOR

17 744,19

72,44

 
 

TLHF - LA4

789,21

100,00

 
 
 
 
 
 
 

Total général

67 980,60

21,75

27 024,90

8,65

xxviii

Transition

/

événements

Rectification en

m2

Rectification % du total moins (vide)

Remplacement en

m2

Remplacement % du total moins (vide)

BOSQUET - HRGFOR

 
 
 
 

BOSQUET - LA4

 
 
 
 

FF0 - FF1-00-00

 
 
 
 

FF0 - FO32

 
 

14 922,75

100,00

FF0 - HRGFOR

 
 
 
 

FF1-00 - HRGFOR

 
 
 
 

FF1-00 - TLHF

 
 
 
 

FF1-00-00 - FF31

 
 
 
 

FF1-00-00 - FO1

 
 
 
 

FF1-00-00 - HRGFOR

 
 
 
 

FF1-00-00 - LA4

 
 
 
 

FF1G01-01 - HRGFOR

34 153,33

100,00

 
 

FF1G01-01 - TLHF

 
 
 
 

FF2G61-61 - FF0

 
 
 
 

FF2G61-61 - FF2-90-90

 
 
 
 

FF32 - HRGFOR

 
 
 
 

FF32 - LA4

 
 
 
 

FO2 - FF0

 
 
 
 

FO2 - LA6

 
 
 
 

HRGFOR - BOSQUET

 
 
 
 

HRGFOR - LA4

 
 
 
 

HRGFOR - TLHF

 
 
 
 

LA4 - HRGFOR

 
 
 
 

LA4 - TLHF

 
 
 
 

LA6 - FF0

 
 
 
 

LA6 - HRGFOR

 
 
 
 

LA6 - TLHF

 
 
 
 

TLHFC1 - HRGFOR

 
 
 
 

TLHFC1 - LA4

 
 
 
 

TLHF - BOSQUET

 
 
 
 

TLHF - HRGFOR

 
 
 
 

TLHF - LA4

 
 
 
 
 
 
 
 
 

Total général

34 153,33

10,93

14 922,75

4,77

xxix

Transition

/

événements

Scission en

m2

Scission

% du total moins (vide)

(vide)

Total général

Total

moins (vide)

% sur le total

BOSQUET - HRGFOR

 
 

2 063,40

2 063,40

0,00

0,22

BOSQUET - LA4

 
 
 

2 782,39

2 782,39

0,30

FF0 - FF1-00-00

 
 
 

44 049,24

44 049,24

4,67

FF0 - FO32

 
 
 

14 922,75

14 922,75

1,58

FF0 - HRGFOR

 
 

3 376,63

3 376,63

0,00

0,36

FF1-00 - HRGFOR

 
 

3 991,18

3 991,18

0,00

0,42

FF1-00 - TLHF

 
 

3 365,39

3 365,39

0,00

0,36

FF1-00-00 - FF31

 
 

10 929,70

10 929,70

0,00

1,16

FF1-00-00 - FO1

 
 

73 410,09

73 410,09

0,00

7,79

FF1-00-00 - HRGFOR

 
 

65 629,81

104

978,32

39 348,51

11,14

FF1-00-00 - LA4

 
 

7 723,93

7 723,93

0,00

0,82

FF1G01-01 - HRGFOR

 
 

72 144,78

106

298,11

34 153,33

11,28

FF1G01-01 - TLHF

 
 

2 745,01

2 745,01

0,00

0,29

FF2G61-61 - FF0

88 417,59

100,00

 

88 417,59

88 417,59

9,38

FF2G61-61 - FF2-90-90

33 982,37

100,00

 

33 982,37

33 982,37

3,61

FF32 - HRGFOR

 
 

4 179,52

4 179,52

0,00

0,44

FF32 - LA4

 
 

25 038,00

25 038,00

0,00

2,66

FO2 - FF0

 
 
 

27 024,90

27 024,90

2,87

FO2 - LA6

 
 

2,27

2,27

0,00

0,00

HRGFOR - BOSQUET

 
 

331,48

331,48

0,00

0,04

HRGFOR - LA4

 
 

15 784,22

15 784,22

0,00

1,67

HRGFOR - TLHF

 
 

1 101,39

1 101,39

0,00

0,12

LA4 - HRGFOR

 
 

291 547,67

291

547,67

0,00

30,94

LA4 - TLHF

 
 

159,99

159,99

0,00

0,02

LA6 - FF0

 
 

23 577,41

23 577,41

0,00

2,50

LA6 - HRGFOR

 
 

13 434,56

13 434,56

0,00

1,43

LA6 - TLHF

 
 

499,41

499,41

0,00

0,05

TLHFC1 - HRGFOR

 
 
 

2 369,71

2 369,71

0,25

TLHFC1 - LA4

 
 
 

245,86

245,86

0,03

TLHF - BOSQUET

 
 

29,76

29,76

0,00

0,00

TLHF - HRGFOR

 
 

8 737,27

33 230,90

24 493,63

3,53

TLHF - LA4

 
 
 

789,21

789,21

0,08

 
 
 
 
 
 
 

Total général

122

399,96

39,16

629 802,89

942

382,38

312 579,49

100,00

VIII - Rapport BDUni

 

Processus d'historisation de la BDUni et adaptabilité au RGFor

REF : XXX DATE : 15/05/2013

Objet : XXX

NOM - FONCTION SIGNATURE

xxx

Commanditaire

Rédacteur

Relecteur

Valideur

Liste de diffusion

Participants - Service

Personnes à informer - Service

XXX - XXX

XXX - XXX

Date Visa Nom Service

XX/XX/XXXX

 

XXX

XXX

xxxi

précédent sommaire suivant






Extinction Rebellion





Changeons ce systeme injuste, Soyez votre propre syndic





"Il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre"   Paul Eluard