equals is overridden because PyramidMetadata.nodata can be Double.NaN and == is not what you'd expect on Double.NaN (see below). I've added a comment documenting that. hashCode is overridden because equals is overridden 

scala> Double.NaN == Double.NaN
res0: Boolean = false