【问题标题】:FutureWarning: comparison to 'None' errorFutureWarning:与“无”错误比较
【发布时间】:2016-05-11 20:40:47
【问题描述】:

我是 Python 新手,已经在互联网上寻求帮助,但没有解决我当前遇到的问题,所以希望得到任何反馈。有谁知道我为什么会收到这个警告?

我已下载并尝试使用开源模块 (CloudRasterizer.py) 来使用 Windows 编辑来自 EcosynthAerial 工具箱的点云(激光雷达/空间数据)。模块中有一个类“CloudRasterizer”,我将从中调用一个特定的方法。但是,每当我尝试启动课程时,我都会收到以下警告,并且无法通过...

在 Python 命令行中

EastAreaTest = np.loadtxt("C:\....TestFile.txt", use cols=(0,1,2,3,4,5))  
EastAreaArray = np.array(EastAreaTest)  
Import CloudRasterizer  
from CloudRasterizer import CloudRasterizer  
RasterizedTest = CloudRasterizer(EastAreaArray)

CloudRasterizer.py:290:FutureWarning:与“None”的比较将在未来进行元素对象比较。 if (xyzrgb_array==None): get_aoi time:0.0 subset_cloud_array time: 0.0 get_aoi time: 0.015 cloud_to_grid time: 0.015

这是模块代码的开始:

_all__ = ['CloudRasterizer']

    import time

    import numpy as np
    import pylab as pl
    import scipy.stats as stats


    class CloudRasterizer(object):
    """
         CloudRasterizer Class for processing Point Cloud and enabling 2D analysis

    :param np.array xyzrgb_array: XYZRGB numpy array
    :param int resolution: (Optional) grid size relative to units of
        point cloud (assumed to be meters)
    :pararm list aoi: (Optional) [xMin, xMax, yMin, yMax, zMin, zMax]

    :var int resolution: grid size relative to units of point cloud
    :var np.array cloud_array: points in given AOI
    :var int xMin:
    :var int yMin:
    :var int zMin:
    :var np.array grid: 2D grid of arrays filled with XYZRGB points

    """
    def __init__(self, xyzrgb_array, resolution=1):
        """

        """
        self.aoi = self.get_aoi(xyzrgb_array=xyzrgb_array)
        self.resolution = resolution
        self.cloud_array = self.subset_cloud_array(xyzrgb_array, self.aoi)
        self.grid = self.cloud_to_grid(self.cloud_array, resolution)

如果有帮助,这里是我导入 CloudRasterizer 时的当前目录(CloudRasterizer.py 位于后期处理文件夹中):

C:\Users\MillerEF\Documents\Miniconda2\Lib\site-packages\ecosynth\postprocess

非常感谢您的帮助!

【问题讨论】:

  • 检查您下载的代码是否与您使用的 Python 版本兼容。例如,您可能使用的是 Python 3.5,但代码可能是为 2.7 或更早版本编写的。
  • 感谢@cdarke的回复,代码和Python都是2.7
  • 您是说警告正在停止您的应用程序吗?
  • 警告有效,您应该将其报告为错误。您可以禁止它,请参阅docs.python.org/2/library/warnings.html,“临时禁止警告”,或使用-W 命令行选项。另见stackoverflow.com/questions/14463277/…
  • @PadraicCunningham,它并没有停止它,但是当我稍后调用其中一种方法来过滤数组然后打印结果时,我得到“无”。我认为这两个错误消息可能是相关的。此警告消息会影响后续流程吗?

标签: python class module point-clouds miniconda


【解决方案1】:

在模块的第290行,将if (xyzrgb_array==None):改为if (xyzrgb_array is None):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 2020-09-07
    • 1970-01-01
    • 2020-03-04
    • 2021-05-22
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    相关资源
    最近更新 更多