怎样把gis中0值设为nodata

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样把gis中0值设为nodata相关的知识,希望对你有一定的参考价值。

有些区域不要计算在内,想把0值设为nodata

找到“设置栅格属性”工具

如图填写

参考技术A 用地图代数的栅格计算器做下运算,0值的设置为null。其实如果你只是不要把0值的计算在内,你可以查询出非零值的数据,也没必要设置为nodata了

指针行为将值设为 1

【中文标题】指针行为将值设为 1【英文标题】:Pointer behaviour gives value as 1 【发布时间】:2018-08-26 04:25:22 【问题描述】:

明确地说,我知道 C 中指向指针概念的指针以及取消对双、三指针的引用。我唯一的疑问是我编写的以下程序:

#include<stdio.h>
int main()
    int a;
    int* p;
    a=5;
    p=&a;
    int **q;
    printf("*p=%d\n",*p);
    printf("*q=%d\n",*q);

现在我知道,这个程序非常愚蠢而且毫无意义,但这不是问题所在。问题是为什么? 为什么输出是这样的:

*p=5
*q=1

为什么每次运行时 *q=1? 还要记住,如果我现在声明一个 ***r; 并添加以下行:

printf("*r=%d\n",*r);

现在的输出是:

*p=5
*q=-40821602 //garbage
*r=1

现在,*r=1。为什么? ****也一样。在这种情况下,*q,*r 是垃圾,*s=1。为什么?

【问题讨论】:

你有未定义的行为,这就是原因。 两件事:您需要使用"%p" 格式说明符打印void * 指针(需要转换);而且你永远不会初始化q,这意味着它取消引用它会导致undefined behavior 未定义行为(简称UB)通常意味着任何关于行为的讨论都是没有实际意义的。然而,这里发生的是您使用的是未初始化的变量,其值是 indeterminate 并且看似随机。你看到的就是这个“看似随机”的值。 未定义的行为随着时间的推移保持一致并不奇怪。几天来我有一些是一致的,然后发生了一些事情并且行为改变了。也许我进行了防病毒更新或修补程序,谁知道呢。 “为什么”的基本答案是“因为该指针占据了内存的一部分,恰好在其中相当一致地具有“1”。用不同的标志重新编译,看看它是否改变(例如,改变调试设置或优化设置。 如果你在汇编中打开一个调试器,你可以一步一步通过机器指令,这应该提供清晰。你所看到的一切都没有让我感到惊讶,我不知道你为什么觉得这很奇怪。 【参考方案1】:

对未初始化指针的求值是未定义的行为,这就是你所做的。 cppreference 对未定义的行为声明如下:

未定义行为

未定义的行为 - 对程序的行为没有限制。未定义行为的示例包括数组边界之外的内存访问、有符号整数溢出、空指针取消引用、在没有序列点的表达式中多次修改同一标量、通过不同类型的指针访问对象等。不需要诊断未定义的行为(尽管诊断了许多简单的情况),并且编译后的程序不需要做任何有意义的事情。

因此,您不能期望您的程序会产生任何有意义的东西。它可以打印 1,但它也可以做任何其他事情。例如,就我而言,它只是崩溃了。

所以问题“为什么?”根本不是一个有效的问题。

【讨论】:

以上是关于怎样把gis中0值设为nodata的主要内容,如果未能解决你的问题,请参考以下文章

AS3.0中影片剪辑元件嵌套了个动态文本框,怎样才能在文本框上也能显示手型?

请问,access中一个表单号想设为今天的日期,怎样设默认值可以获取当天日期并转换成文本啊,谢谢

怎么把数据库中的某个表的某个字段默认值设为0?

求助!! C# 把一个Label的值设为空,在窗体中看不到这个Label了,点不到了,怎么才能找到这个控件呢?

GIS Office怎样导入背景地图

怎样在sql中把主键值设成是自动加1