Trier un énorme fichier GeoJson

Bonjour,

J’ai un fichier contenant toutes les communes de France au format GeoJson avec des milliers de bouts de code comme celui ci. Dès que j’ouvre le fichier mon vs code plante.

J’aimerais trier ce fichier par départements dans plusieurs fichiers en fonctions du code insee. Ex: Pour l’Herault on récupère toutes les lignes avec un code commencant par 34. Y’aurait il un moyen de faire ça rapidement ?

{« type »:« Feature »,« geometry »:{« type »:« Polygon »,« coordinates »:[[[4.03464,43.65735],[4.03921,43.65459],[4.04321,43.65267],[4.04706,43.65159],[4.04696,43.65],[4.05042,43.64739],[4.05092,43.64333],[4.05255,43.64172],[4.05487,43.64094],[4.05735,43.64098],[4.06149,43.63835],[4.05816,43.63638],[4.05005,43.63232],[4.0462,43.63021],[4.04656,43.62516],[4.04755,43.62317],[4.04327,43.62297],[4.03548,43.62128],[4.03211,43.62677],[4.03002,43.62806],[4.02866,43.6279],[4.02721,43.63136],[4.02689,43.63311],[4.02423,43.63544],[4.02256,43.6353],[4.01675,43.63826],[4.01348,43.63925],[4.01297,43.6475],[4.01564,43.64994],[4.02291,43.64821],[4.02607,43.64784],[4.03118,43.64894],[4.02958,43.65153],[4.02722,43.65367],[4.02636,43.65617],[4.02657,43.65891],[4.02714,43.65953],[4.02981,43.6594],[4.03214,43.65671],[4.03464,43.65735]]]},« properties »:{« code »:« 34176 »,« nom »:« Mudaison »}}

Merci bcp pour votre temps,

Cordialement,

Bienvenue à toi !

Il y a plein de façons de faire:

  • un grep ‹ « code »:"34 › sur le fichier geojson si chaque feature est sur une ligne unique
  • l’utilisation de jq qui permet de manipuler du json
  • un coup d’ogr2ogr avec du pseudo SQL est le plus efficace (si gdal/ogr est installé):

Exemple (non testé):
ogr2ogr -f geojson communes_34.json communes_france.json -sql 'SELECT * WHERE code LIKE "34%"'

https://gdal.org/programs/ogr2ogr.html
https://gdal.org/user/ogr_sql_dialect.html#ogr-sql-dialect

Sinon, c’est une manip de base à faire dans QGis, via un filtre attributaire (cf. ce message).
Et dans QGis, il y a une fonction pour « séparer une couche vecteur » selon les valeurs d’un champs.
Elle se trouve dans le menu « vecteur > outils de gestion de données > Séparer une couche vecteur ... »