Skip to main content

I am experiencing difficulty while transforming data from ArcSDE or FGDB
to MITAB. Reading a <Null> or no value from the reader, MITAB writes it as
'-9,999', which is unacceptable in my operations and queries.

My addressing database contains approx. 4.5million records where majority of records contains <null> for various attributes (e.,g., <Null> for numeric attributes and blank/no value for string attributes).

While writing to MITAB, FME converts represent the value as '-9,999'

whereas, I expect the values same as reader (<Null> or blank).

I tried using all parameters in 'NullAttributeMapper', that worked well on 'String' values but not on 'Numeric' values.

I also tried using 'AttributeCreater' to and 'AttributeValueMapper' which didn't proved well.

So need an expert advise on how to manage Null attribute values in MITAB, so I should get rid of the issue caused by '-9,999' values.

Thanks

Hi @skill_72, unfortunately the MITAB format doesn't support storing the null, so the MITAB writer replaces null value with -9999 (default nodata value in MITAB format) automatically.

If you can define a specific value (other than -9999) to represent null in your project, consider using the NullAttributeValueMapper to replace every null with that value before writing.


Thanks Takashi

I used to specify 'NewValue' as '0' (zero) that works. But, in addressing gazetteer representing FlatNo or LvlNo or HouseNo. as '0' changes the meaning of the address (where level 0 means 'ground' or so).

So we want to keep the values as <Null> or just blank.

But, Numeric attribute value does not accommodate 'blank', which is an issue.

There should be a say to force no value to <Null> in MITAB.


Thanks Takashi

I used to specify 'NewValue' as '0' (zero) that works. But, in addressing gazetteer representing FlatNo or LvlNo or HouseNo. as '0' changes the meaning of the address (where level 0 means 'ground' or so).

So we want to keep the values as <Null> or just blank.

But, Numeric attribute value does not accommodate 'blank', which is an issue.

There should be a say to force no value to <Null> in MITAB.

You can use multiple NullAttributeValueMapper to define different values representing the null for different attributes.

 

Alternatively, if you can change the data type of the fields in the destination MITAB dataset to string type (not numeric), you can represent the null with an empty string.

 

Anyway, you cannot write the null or empty to a numeric type field in a MITAB dataset. It's a restriction according to the MITAB format specifications.

 


Reply