Suite

Fichier GDB vers la base de données SDE à l'aide de FME


Je suis actuellement bloqué dans mon script FME Workspace. Idéalement, je lis à partir d'une géodatabase fichier et je mettrai à jour la base de données SDE dans le serveur SQL. J'ai des calculatrices CRC pour vérifier les changements dans les attributs et les coordonnées et si les 2 valeurs CRC sont différentes, j'utiliserai les données du fichier GDB pour mettre à jour la base de données SDE.

Voici une capture d'écran de mon espace de travail :

Le problème que je rencontre est qu'il met toujours à jour les données car les géométries stockées dans la base de données SDE ne sont pas les mêmes que celles du fichier GDB.

J'ai modifié le type d'entité du rédacteur SDE pour qu'il corresponde à l'origine et à l'échelle X, Y de la classe d'entités File GDB et désactivé la "Simplifier la géométrie", mais les coordonnées stockées dans la base de données SDE changent toujours.

Ce sont les coordonnées du fichier GDB et les coordonnées stockées dans la base de données SDE :

De plus, le SDE et le fichier GDB ont la même référence spatiale.

Je suis assez perplexe à ce sujet. J'ai essayé beaucoup de choses, mais cela change toujours automatiquement les coordonnées lors de l'enregistrement dans la base de données SDE.

Toutes les idées seront absolument utiles.


Je suggérerais qu'avant vos calculatrices CRC, vous mettiez un arrondisseur de coordonnées pour éliminer les différences en virgule flottante. Je voudrais également enregistrer une copie de la géométrie d'origine en tant que WKB ou quelque chose (Geometry Extractor and Geometry Replacer) avant d'arrondir afin que cela puisse être utilisé pour écrire dans la base de données SDE.

Malheureusement, vous ne pouvez pas vraiment éliminer les modifications apportées aux coordonnées dans SQL Server et il utilise des FLOAT pour stocker les coordonnées. Il s'agit d'un type de données approximatif. Je soupçonne que les FGDB le font aussi, mais avec une précision différente. Arc gère généralement cela en ayant une tolérance. FME est un peu plus littéral.

J'envisagerais également de modifier les étendues de votre géodatabase fichier pour qu'elles correspondent plus à l'étendue de vos données. -400 à 400 est susceptible d'être bien plus que ce que vous aurez jamais dans vos données.