This is the current state of the Point and PointGeometry .... not the best....
pt2 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
pt2
<SPAN class="operator token"><</SPAN>Point <SPAN class="punctuation token">(</SPAN><SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0.0</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="comment token">#, #)> # ---- make a point</SPAN>
pg2 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>PointGeometry<SPAN class="punctuation token">(</SPAN>pt2<SPAN class="punctuation token">)</SPAN> <SPAN class="comment token"># ---- make a point geometry</SPAN>
pg2<SPAN class="punctuation token">.</SPAN>WKT <SPAN class="comment token"># ---- why does it have valid X, Y values????</SPAN>
<SPAN class="string token">'POINT (0 0)'</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
So there is no such thing as a 'null' point (but a 'nominal' point as one of our esteemed participants noted).
'None' isn't good enough. You can create an 'empty' geometry recognized by other representations with a little trickery.
<SPAN class="keyword token">import</SPAN> arcpy
n <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>nan
a <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>array<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>n<SPAN class="punctuation token">,</SPAN> n<SPAN class="punctuation token">,</SPAN> n<SPAN class="punctuation token">,</SPAN> n<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
pt <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
pt<SPAN class="punctuation token">.</SPAN>X<SPAN class="punctuation token">,</SPAN> pt<SPAN class="punctuation token">.</SPAN>Y<SPAN class="punctuation token">,</SPAN> pt<SPAN class="punctuation token">.</SPAN>Z<SPAN class="punctuation token">,</SPAN> pt<SPAN class="punctuation token">.</SPAN>M <SPAN class="operator token">=</SPAN> a
pg <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>PointGeometry<SPAN class="punctuation token">(</SPAN>pt<SPAN class="punctuation token">)</SPAN>
pg
<SPAN class="operator token"><</SPAN>PointGeometry object at <SPAN class="number token">0x200c6ed6ac8</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0x200bf9a39e0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="operator token">></SPAN>
pg<SPAN class="punctuation token">.</SPAN>WKT
<SPAN class="string token">'POINT EMPTY'</SPAN>
pt
<SPAN class="operator token"><</SPAN>Point <SPAN class="punctuation token">(</SPAN>nan<SPAN class="punctuation token">,</SPAN> nan<SPAN class="punctuation token">,</SPAN> nan<SPAN class="punctuation token">,</SPAN> nan<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">></SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
And when you look at the PointGeometry, you decide which is best\.
<SPAN class="comment token"># ---- by using NaN (not a number) for point properties ----</SPAN>
pt <SPAN class="comment token"># <Point (nan, nan, nan, nan)></SPAN>
pg <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>PointGeometry<SPAN class="punctuation token">(</SPAN>pt<SPAN class="punctuation token">)</SPAN>
pg<SPAN class="punctuation token">.</SPAN>JSON <SPAN class="comment token"># '{"x":"NaN","y":"NaN","spatialReference":{"wkid":null}}'</SPAN>
pg<SPAN class="punctuation token">.</SPAN>WKT <SPAN class="comment token"># 'POINT EMPTY'</SPAN>
<SPAN class="comment token"># ---- The current state of affairs ----</SPAN>
pt2 <SPAN class="comment token"># <Point (0.0, 0.0, #, #)></SPAN>
pg2 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>PointGeometry<SPAN class="punctuation token">(</SPAN>pt2<SPAN class="punctuation token">)</SPAN>
pg2<SPAN class="punctuation token">.</SPAN>JSON <SPAN class="comment token"># '{"x":0,"y":0,"spatialReference":{"wkid":null}}'</SPAN>
pg2<SPAN class="punctuation token">.</SPAN>WKT <SPAN class="comment token"># 'POINT (0 0)'</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>I should point out that you can use math.nan inplace of np.nan
m <SPAN class="operator token">=</SPAN> math<SPAN class="punctuation token">.</SPAN>nan
b <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>array<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN>m<SPAN class="punctuation token">,</SPAN> m<SPAN class="punctuation token">,</SPAN> m<SPAN class="punctuation token">,</SPAN> m<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
pt3 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Point<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
pt3<SPAN class="punctuation token">.</SPAN>X<SPAN class="punctuation token">,</SPAN> pt3<SPAN class="punctuation token">.</SPAN>Y<SPAN class="punctuation token">,</SPAN> pt3<SPAN class="punctuation token">.</SPAN>Z<SPAN class="punctuation token">,</SPAN> pt3<SPAN class="punctuation token">.</SPAN>M <SPAN class="operator token">=</SPAN> b
pt3 <SPAN class="comment token"># ---- <Point (nan, nan, nan, nan)></SPAN>
pg3 <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>PointGeometry<SPAN class="punctuation token">(</SPAN>pt3<SPAN class="punctuation token">)</SPAN>
pg3<SPAN class="punctuation token">.</SPAN>JSON <SPAN class="comment token"># ---- '{"x":"NaN","y":"NaN","spatialReference":{"wkid":null}}'</SPAN>
pg3<SPAN class="punctuation token">.</SPAN>WKT <SPAN class="comment token"># ---- 'POINT EMPTY'</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>