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

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Des chercheurs qui cherchent on en trouve, des chercheurs qui trouvent, on en cherche !"   Charles de Gaulle