Wszystkie aktualne odpowiedzi dają dobre porady. Ogólną zasadą (od społeczności naukowców zajmujących się komputerami), która działa dobrze w przypadkach, w których nie można przechowywać prawdziwych wartości zerowych lub NaN, jest stosowanie najmniejszej (najbardziej negatywnej) wartości, którą pole (ważnie) będzie przechowywać.
Przykłady:
Pole dziesiętne 7,2 może zawierać wartość tak małą jak -9999.99.
Raster liczb całkowitych może przechowywać liczby tak małe jak -32768, ale często (z powodu awersji do binarnych i powinowactwa do podstawy 10) używana jest zamiast tego wartość -9999.
Liczba zmiennoprzecinkowa może zawierać liczby rzędu -10 ^ (38). Jeśli nie możesz umieścić NaN w polu, znajdź najmniejszy pływak, który będzie pasował (co jest bólem) lub po prostu użyj czegoś takiego jak -10 ^ (38). W przypadku podwójnych, -10 ^ (303) działa dobrze, ale tak samo działa -10 ^ (38): jest wystarczająco duży i ujemny, aby służyć jako wyraźny znacznik wartości zerowej.
Ta reguła jest łatwa do zapamiętania, spójna, łatwa do zastosowania, łatwa do udokumentowania w prosty sposób (dla twoich metadanych) i rzadko prowadzi do niezamierzonych błędów (ponieważ najbardziej ujemna liczba jest zwykle tak różna od danych, że jej niewłaściwe użycie jako rzeczywista wartość, zamiast zerowego, psuje podsumowania statystyczne i inne obliczenia wystarczające, aby podnieść flagę, że występuje problem).
Większość rastrów, z którymi się zetknąłem, używa jako standardu -9999.0 dla danych zmiennoprzecinkowych, a GDAL użyje -dbl_inf podczas pisania kodu dla obrazu, który nie ma wartości nodata / dummy. 8-bitowy RGB zwykle używa 0 0 0 lub 255 255 255 lub ma kanał alfa lub maskowy.
Pokrycia w GML 3 (na które obecnie nie ma dużego wsparcia, ale zmieni się to po ratyfikacji specyfikacji WCS 2) ma kilka fałszywych wartości, które są reprezentowane jako tekst, taki jak „brak” i „wstrzymany”.
Z mojego doświadczenia wynika, że wszelkie ustawienia domyślne są związane z domeną lub dostawcą. Jeśli jesteś producentem danych, a nie konsumentem, wybierz numer i trzymaj się go, a także upewnij się, że twoi konsumenci są tego świadomi.
źródło
Użyłbym NaN ponieważ operacje matematyczne będzie produkować inne Nans lub wyjątki rzut. W ten sposób możesz wykryć, że popsułeś się, ponieważ używasz fałszywej wartości
źródło